summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2020-05-31 20:58:28 +0000
committerDimitry Andric <dim@FreeBSD.org>2020-05-31 20:58:28 +0000
commitbbee6e0814d5875b85b81f26fd4ca7a28b6f9570 (patch)
tree726fcf32b39ca8976d7aa51b67c7236509f1bde4
parent38cef28c88864beaadac7a7cffdec6da952c3eb2 (diff)
downloadsrc-test2-vendor/subversion.tar.gz
src-test2-vendor/subversion.zip
Notes
Notes: svn path=/vendor/subversion/dist/; revision=361669 svn path=/vendor/subversion/subversion-1.14.0/; revision=361670; tag=vendor/subversion/subversion-1.14.0
-rw-r--r--.editorconfig10
-rw-r--r--.swig_pl_checked0
-rw-r--r--.swig_py_checked0
-rw-r--r--.swig_rb_checked0
-rw-r--r--CHANGES409
-rw-r--r--COMMITTERS4
-rw-r--r--INSTALL263
-rw-r--r--LICENSE21
-rw-r--r--Makefile.in55
-rw-r--r--NOTICE5
-rw-r--r--aclocal.m43
-rwxr-xr-xautogen.sh2
-rw-r--r--build-outputs.mk1893
-rw-r--r--build.conf179
-rwxr-xr-xconfigure1845
-rw-r--r--configure.ac128
-rw-r--r--doc/doxygen.conf59
-rw-r--r--doc/programmer/gtest-guide.txt30
-rw-r--r--doc/user/svn-best-practices.html2
-rwxr-xr-xgen-make.py7
-rwxr-xr-xget-deps.sh50
-rw-r--r--subversion/include/private/svn_branch.h2
-rw-r--r--subversion/include/private/svn_client_mtcc.h11
-rw-r--r--subversion/include/private/svn_client_private.h234
-rw-r--r--subversion/include/private/svn_client_shelf.h498
-rw-r--r--subversion/include/private/svn_client_shelf2.h467
-rw-r--r--subversion/include/private/svn_dep_compat.h6
-rw-r--r--subversion/include/private/svn_diff_tree.h1
-rw-r--r--subversion/include/private/svn_dirent_uri_private.h53
-rw-r--r--subversion/include/private/svn_element.h2
-rw-r--r--subversion/include/private/svn_fs_fs_private.h97
-rw-r--r--subversion/include/private/svn_repos_private.h47
-rw-r--r--subversion/include/private/svn_sorts_private.h31
-rw-r--r--subversion/include/private/svn_subr_private.h14
-rw-r--r--subversion/include/private/svn_wc_private.h82
-rw-r--r--subversion/include/svn_client.h610
-rw-r--r--subversion/include/svn_config.h4
-rw-r--r--subversion/include/svn_delta.h164
-rw-r--r--subversion/include/svn_diff.h2
-rw-r--r--subversion/include/svn_dirent_uri.h145
-rw-r--r--subversion/include/svn_error_codes.h22
-rw-r--r--subversion/include/svn_fs.h58
-rw-r--r--subversion/include/svn_opt.h172
-rw-r--r--subversion/include/svn_opt_impl.h86
-rw-r--r--subversion/include/svn_props.h19
-rw-r--r--subversion/include/svn_ra.h44
-rw-r--r--subversion/include/svn_ra_svn.h2
-rw-r--r--subversion/include/svn_repos.h76
-rw-r--r--subversion/include/svn_time.h11
-rw-r--r--subversion/include/svn_types.h128
-rw-r--r--subversion/include/svn_types_impl.h157
-rw-r--r--subversion/include/svn_utf.h2
-rw-r--r--subversion/include/svn_version.h8
-rw-r--r--subversion/include/svn_wc.h33
-rw-r--r--subversion/libsvn_auth_gnome_keyring/gnome_keyring.c10
-rw-r--r--subversion/libsvn_auth_gnome_keyring/libsvn_auth_gnome_keyring.pc.in8
-rw-r--r--subversion/libsvn_auth_kwallet/kwallet.cpp8
-rw-r--r--subversion/libsvn_auth_kwallet/libsvn_auth_kwallet.pc.in8
-rw-r--r--subversion/libsvn_client/add.c7
-rw-r--r--subversion/libsvn_client/blame.c28
-rw-r--r--subversion/libsvn_client/client.h103
-rw-r--r--subversion/libsvn_client/commit.c185
-rw-r--r--subversion/libsvn_client/commit_util.c34
-rw-r--r--subversion/libsvn_client/conflicts.c3729
-rw-r--r--subversion/libsvn_client/copy.c753
-rw-r--r--subversion/libsvn_client/copy_foreign.c575
-rw-r--r--subversion/libsvn_client/delete.c7
-rw-r--r--subversion/libsvn_client/deprecated.c156
-rw-r--r--subversion/libsvn_client/diff.c892
-rw-r--r--subversion/libsvn_client/diff_local.c126
-rw-r--r--subversion/libsvn_client/diff_summarize.c20
-rw-r--r--subversion/libsvn_client/export.c33
-rw-r--r--subversion/libsvn_client/info.c4
-rw-r--r--subversion/libsvn_client/layout.c289
-rw-r--r--subversion/libsvn_client/libsvn_client.pc.in8
-rw-r--r--subversion/libsvn_client/list.c2
-rw-r--r--subversion/libsvn_client/merge.c413
-rw-r--r--subversion/libsvn_client/mtcc.c4
-rw-r--r--subversion/libsvn_client/patch.c15
-rw-r--r--subversion/libsvn_client/ra.c28
-rw-r--r--subversion/libsvn_client/repos_diff.c24
-rw-r--r--subversion/libsvn_client/revert.c30
-rw-r--r--subversion/libsvn_client/revisions.c9
-rw-r--r--subversion/libsvn_client/shelf.c1274
-rw-r--r--subversion/libsvn_client/shelf2.c2124
-rw-r--r--subversion/libsvn_client/shelve.c552
-rw-r--r--subversion/libsvn_client/status.c80
-rw-r--r--subversion/libsvn_client/update.c10
-rw-r--r--subversion/libsvn_client/upgrade.c31
-rw-r--r--subversion/libsvn_client/util.c1
-rw-r--r--subversion/libsvn_client/wc_editor.c655
-rw-r--r--subversion/libsvn_delta/branch.c2
-rw-r--r--subversion/libsvn_delta/branch_compat.c54
-rw-r--r--subversion/libsvn_delta/compat.c50
-rw-r--r--subversion/libsvn_delta/debug_editor.c159
-rw-r--r--subversion/libsvn_delta/deprecated.c73
-rw-r--r--subversion/libsvn_delta/element.c4
-rw-r--r--subversion/libsvn_delta/libsvn_delta.pc.in8
-rw-r--r--subversion/libsvn_delta/path_driver.c313
-rw-r--r--subversion/libsvn_diff/diff_file.c2
-rw-r--r--subversion/libsvn_diff/diff_tree.c75
-rw-r--r--subversion/libsvn_diff/libsvn_diff.pc.in8
-rw-r--r--subversion/libsvn_diff/parse-diff.c104
-rw-r--r--subversion/libsvn_fs/fs-loader.c39
-rw-r--r--subversion/libsvn_fs/fs-loader.h17
-rw-r--r--subversion/libsvn_fs/libsvn_fs.pc.in8
-rw-r--r--subversion/libsvn_fs_base/fs.c4
-rw-r--r--subversion/libsvn_fs_base/libsvn_fs_base.pc.in8
-rw-r--r--subversion/libsvn_fs_fs/cached_data.c2
-rw-r--r--subversion/libsvn_fs_fs/cached_data.h2
-rw-r--r--subversion/libsvn_fs_fs/dag.c2
-rw-r--r--subversion/libsvn_fs_fs/dump-index.c2
-rw-r--r--subversion/libsvn_fs_fs/fs.c84
-rw-r--r--subversion/libsvn_fs_fs/fs_fs.c170
-rw-r--r--subversion/libsvn_fs_fs/fs_fs.h71
-rw-r--r--subversion/libsvn_fs_fs/id.c3
-rw-r--r--subversion/libsvn_fs_fs/index.c4
-rw-r--r--subversion/libsvn_fs_fs/libsvn_fs_fs.pc.in8
-rw-r--r--subversion/libsvn_fs_fs/load-index.c6
-rw-r--r--subversion/libsvn_fs_fs/low_level.c8
-rw-r--r--subversion/libsvn_fs_fs/pack.c18
-rw-r--r--subversion/libsvn_fs_fs/recovery.c12
-rw-r--r--subversion/libsvn_fs_fs/rep-cache-db.h4
-rw-r--r--subversion/libsvn_fs_fs/rep-cache-db.sql2
-rw-r--r--subversion/libsvn_fs_fs/rep-cache.c24
-rw-r--r--subversion/libsvn_fs_fs/revprops.c60
-rw-r--r--subversion/libsvn_fs_fs/revprops.h9
-rw-r--r--subversion/libsvn_fs_fs/stats.c97
-rw-r--r--subversion/libsvn_fs_fs/temp_serializer.c4
-rw-r--r--subversion/libsvn_fs_fs/temp_serializer.h6
-rw-r--r--subversion/libsvn_fs_fs/transaction.c2
-rw-r--r--subversion/libsvn_fs_fs/tree.c49
-rw-r--r--subversion/libsvn_fs_fs/verify.c11
-rw-r--r--subversion/libsvn_fs_util/libsvn_fs_util.pc.in8
-rw-r--r--subversion/libsvn_fs_x/cached_data.c2
-rw-r--r--subversion/libsvn_fs_x/changes.c2
-rw-r--r--subversion/libsvn_fs_x/dag_cache.c6
-rw-r--r--subversion/libsvn_fs_x/dag_cache.h2
-rw-r--r--subversion/libsvn_fs_x/fs.c6
-rw-r--r--subversion/libsvn_fs_x/fs_x.c2
-rw-r--r--subversion/libsvn_fs_x/libsvn_fs_x.pc.in8
-rw-r--r--subversion/libsvn_fs_x/low_level.c8
-rw-r--r--subversion/libsvn_fs_x/pack.c12
-rw-r--r--subversion/libsvn_fs_x/rep-cache-db.h2
-rw-r--r--subversion/libsvn_fs_x/revprops.c6
-rw-r--r--subversion/libsvn_fs_x/temp_serializer.c4
-rw-r--r--subversion/libsvn_fs_x/transaction.c4
-rw-r--r--subversion/libsvn_fs_x/tree.c2
-rw-r--r--subversion/libsvn_fs_x/verify.c2
-rw-r--r--subversion/libsvn_ra/compat.c2
-rw-r--r--subversion/libsvn_ra/deprecated.c13
-rw-r--r--subversion/libsvn_ra/libsvn_ra.pc.in8
-rw-r--r--subversion/libsvn_ra/ra_loader.c11
-rw-r--r--subversion/libsvn_ra/ra_loader.h4
-rw-r--r--subversion/libsvn_ra/wrapper_template.h2
-rw-r--r--subversion/libsvn_ra_local/libsvn_ra_local.pc.in8
-rw-r--r--subversion/libsvn_ra_local/ra_plugin.c3
-rw-r--r--subversion/libsvn_ra_serf/commit.c4
-rw-r--r--subversion/libsvn_ra_serf/inherited_props.c2
-rw-r--r--subversion/libsvn_ra_serf/libsvn_ra_serf.pc.in8
-rw-r--r--subversion/libsvn_ra_serf/list.c13
-rw-r--r--subversion/libsvn_ra_serf/lock.c2
-rw-r--r--subversion/libsvn_ra_serf/options.c40
-rw-r--r--subversion/libsvn_ra_serf/ra_serf.h1
-rw-r--r--subversion/libsvn_ra_serf/replay.c4
-rw-r--r--subversion/libsvn_ra_serf/serf.c8
-rw-r--r--subversion/libsvn_ra_serf/update.c2
-rw-r--r--subversion/libsvn_ra_serf/util.c28
-rw-r--r--subversion/libsvn_ra_svn/client.c22
-rw-r--r--subversion/libsvn_ra_svn/editorp.c2
-rw-r--r--subversion/libsvn_ra_svn/libsvn_ra_svn.pc.in8
-rw-r--r--subversion/libsvn_ra_svn/protocol2
-rw-r--r--subversion/libsvn_repos/authz.c55
-rw-r--r--subversion/libsvn_repos/authz.h15
-rw-r--r--subversion/libsvn_repos/authz_info.c53
-rw-r--r--subversion/libsvn_repos/authz_parse.c95
-rw-r--r--subversion/libsvn_repos/commit.c30
-rw-r--r--subversion/libsvn_repos/config_file.c2
-rw-r--r--subversion/libsvn_repos/config_file.h2
-rw-r--r--subversion/libsvn_repos/delta.c14
-rw-r--r--subversion/libsvn_repos/deprecated.c29
-rw-r--r--subversion/libsvn_repos/dump.c90
-rw-r--r--subversion/libsvn_repos/dump_editor.c1040
-rw-r--r--subversion/libsvn_repos/fs-wrap.c4
-rw-r--r--subversion/libsvn_repos/libsvn_repos.pc.in8
-rw-r--r--subversion/libsvn_repos/list.c2
-rw-r--r--subversion/libsvn_repos/load-fs-vtable.c55
-rw-r--r--subversion/libsvn_repos/load.c58
-rw-r--r--subversion/libsvn_repos/log.c6
-rw-r--r--subversion/libsvn_repos/replay.c13
-rw-r--r--subversion/libsvn_repos/repos.c6
-rw-r--r--subversion/libsvn_subr/cmdline.c104
-rw-r--r--subversion/libsvn_subr/compress_lz4.c2
-rw-r--r--subversion/libsvn_subr/config_file.c38
-rw-r--r--subversion/libsvn_subr/config_keys.inc2
-rw-r--r--subversion/libsvn_subr/config_win.c2
-rw-r--r--subversion/libsvn_subr/deprecated.c412
-rw-r--r--subversion/libsvn_subr/dirent_uri.c175
-rw-r--r--subversion/libsvn_subr/error.c2
-rw-r--r--subversion/libsvn_subr/gpg_agent.c2
-rw-r--r--subversion/libsvn_subr/internal_statements.h2
-rw-r--r--subversion/libsvn_subr/io.c442
-rw-r--r--subversion/libsvn_subr/iter.c66
-rw-r--r--subversion/libsvn_subr/libsvn_subr.pc.in8
-rw-r--r--subversion/libsvn_subr/lz4/lz4.c2
-rw-r--r--subversion/libsvn_subr/lz4/lz4internal.h2
-rw-r--r--subversion/libsvn_subr/mergeinfo.c803
-rw-r--r--subversion/libsvn_subr/object_pool.c2
-rw-r--r--subversion/libsvn_subr/opt.c222
-rw-r--r--subversion/libsvn_subr/pool.c12
-rw-r--r--subversion/libsvn_subr/sorts.c65
-rw-r--r--subversion/libsvn_subr/sqlite3wrapper.c8
-rw-r--r--subversion/libsvn_subr/ssl_client_cert_pw_providers.c14
-rw-r--r--subversion/libsvn_subr/stream.c8
-rw-r--r--subversion/libsvn_subr/sysinfo.c289
-rw-r--r--subversion/libsvn_subr/utf.c2
-rw-r--r--subversion/libsvn_subr/utf8proc/utf8proc_data.c15088
-rw-r--r--subversion/libsvn_subr/version.c2
-rw-r--r--subversion/libsvn_subr/win32_crashrpt.c5
-rw-r--r--subversion/libsvn_subr/win32_crypto.c17
-rw-r--r--subversion/libsvn_subr/x509info.c2
-rw-r--r--subversion/libsvn_subr/x509parse.c2
-rw-r--r--subversion/libsvn_wc/README15
-rw-r--r--subversion/libsvn_wc/conflicts.c95
-rw-r--r--subversion/libsvn_wc/conflicts.h7
-rw-r--r--subversion/libsvn_wc/deprecated.c30
-rw-r--r--subversion/libsvn_wc/diff_local.c29
-rw-r--r--subversion/libsvn_wc/entries.c4
-rw-r--r--subversion/libsvn_wc/libsvn_wc.pc.in8
-rw-r--r--subversion/libsvn_wc/node.c28
-rw-r--r--subversion/libsvn_wc/props.c4
-rw-r--r--subversion/libsvn_wc/questions.c2
-rw-r--r--subversion/libsvn_wc/revert.c54
-rw-r--r--subversion/libsvn_wc/tree_conflicts.c2
-rw-r--r--subversion/libsvn_wc/update_editor.c33
-rw-r--r--subversion/libsvn_wc/upgrade.c4
-rw-r--r--subversion/libsvn_wc/wc-checks.h2
-rw-r--r--subversion/libsvn_wc/wc-metadata.h2
-rw-r--r--subversion/libsvn_wc/wc-queries.h1268
-rw-r--r--subversion/libsvn_wc/wc-queries.sql24
-rw-r--r--subversion/libsvn_wc/wc.h1
-rw-r--r--subversion/libsvn_wc/wc_db.c119
-rw-r--r--subversion/libsvn_wc/wc_db.h48
-rw-r--r--subversion/libsvn_wc/wc_db_update_move.c27
-rw-r--r--subversion/libsvn_wc/wc_db_wcroot.c16
-rw-r--r--subversion/libsvn_wc/wcroot_anchor.c16
-rw-r--r--subversion/svn/auth-cmd.c17
-rw-r--r--subversion/svn/blame-cmd.c42
-rw-r--r--subversion/svn/cl.h158
-rw-r--r--subversion/svn/conflict-callbacks.c162
-rw-r--r--subversion/svn/diff-cmd.c48
-rw-r--r--subversion/svn/filesize.c221
-rw-r--r--subversion/svn/help-cmd.c2
-rw-r--r--subversion/svn/info-cmd.c389
-rw-r--r--subversion/svn/list-cmd.c89
-rw-r--r--subversion/svn/log-cmd.c9
-rw-r--r--subversion/svn/merge-cmd.c40
-rw-r--r--subversion/svn/notify.c2
-rw-r--r--subversion/svn/propset-cmd.c2
-rw-r--r--subversion/svn/resolve-cmd.c2
-rw-r--r--subversion/svn/revert-cmd.c3
-rw-r--r--subversion/svn/shelf-cmd.c1405
-rw-r--r--subversion/svn/shelf-cmd.h49
-rw-r--r--subversion/svn/shelf2-cmd.c1369
-rw-r--r--subversion/svn/shelf2-cmd.h49
-rw-r--r--subversion/svn/shelve-cmd.c369
-rw-r--r--subversion/svn/svn.c1163
-rw-r--r--subversion/svn/util.c2
-rw-r--r--subversion/svn_private_config.h.in15
-rw-r--r--subversion/svnadmin/svnadmin.c473
-rw-r--r--subversion/svnbench/cl.h2
-rw-r--r--subversion/svnbench/help-cmd.c2
-rw-r--r--subversion/svnbench/svnbench.c92
-rw-r--r--subversion/svndumpfilter/svndumpfilter.c58
-rw-r--r--subversion/svnfsfs/dump-index-cmd.c7
-rw-r--r--subversion/svnfsfs/load-index-cmd.c8
-rw-r--r--subversion/svnfsfs/stats-cmd.c10
-rw-r--r--subversion/svnfsfs/svnfsfs.c64
-rw-r--r--subversion/svnlook/svnlook.c160
-rw-r--r--subversion/svnmucc/svnmucc.c4
-rw-r--r--subversion/svnrdump/dump_editor.c967
-rw-r--r--subversion/svnrdump/load_editor.c993
-rw-r--r--subversion/svnrdump/svnrdump.c72
-rw-r--r--subversion/svnrdump/svnrdump.h21
-rw-r--r--subversion/svnrdump/util.c4
-rw-r--r--subversion/svnserve/logger.c47
-rw-r--r--subversion/svnserve/logger.h11
-rw-r--r--subversion/svnserve/serve.c325
-rw-r--r--subversion/svnserve/svnserve.c2
-rw-r--r--subversion/svnsync/svnsync.c89
-rw-r--r--subversion/svnversion/svnversion.c2
-rw-r--r--win-tests.py2
292 files changed, 34505 insertions, 18083 deletions
diff --git a/.editorconfig b/.editorconfig
index 55a3c159e043..13868c63e3f8 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -7,3 +7,13 @@ indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = false
+
+[**/Makefile*]
+indent_style = tab
+
+[build-outputs.mk]
+indent_style = tab
+
+[build/generator/templates/build-outputs.mk.ezt]
+indent_style = tab
+
diff --git a/.swig_pl_checked b/.swig_pl_checked
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/.swig_pl_checked
diff --git a/.swig_py_checked b/.swig_py_checked
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/.swig_py_checked
diff --git a/.swig_rb_checked b/.swig_rb_checked
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/.swig_rb_checked
diff --git a/CHANGES b/CHANGES
index 7c094e0e3ce7..08398a98ac8b 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,323 @@
+# To view a revision listed as (rXXXXXXX), visit:
+# https://svn.apache.org/rXXXXXXX
+#
+# To view an issue listed as (issue #XXXX), visit:
+# https://subversion.apache.org/issue-XXXX
+
+Version 1.14.0
+(6 May 2020, from /branches/1.14.x)
+https://svn.apache.org/repos/asf/subversion/tags/1.14.0
+
+ User-visible changes:
+ - Minor new features and improvements:
+ * Experimental shelving feature is now disabled by default (r1875039)
+ * Reinstate support for experimental shelving v2 from SVN 1.11 (r1875037)
+ * Introduce 'svnadmin build-repcache' command (r1875921 et al)
+
+ - Client-side improvements and bugfixes:
+ * Add 'changelist' option to 'svn info --show-item' (r1869481)
+ * Allow simultaneous use of 'svn log' --quiet and --diff options (r1871916)
+ * Fix 'svn info' for file that was inside replaced directory (issue #4837)
+ * Don't abort if the server redirects to a non-canonical URL (r1873375)
+ * Fix merge assertion failure in svn_sort__array_insert (issue #4840)
+ * Escape filenames when invoking $SVN_EDITOR (r1874057 et al)
+ * Small performance optimization for FSFS rep-cache.db (r1875918)
+ * Fix a crash seen when using git-svn with kwallet (r1875680)
+
+ - Server-side improvements and bugfixes:
+ * Fix 'svnadmin load --normalize-props' for versioned properties (r1868203)
+ * mailer.py: prevent SMTP errors from impeding later emails (issue #1804)
+ * mailer.py: Add option to specify the SMTP port to connect to (r1872398)
+ * Make svn-backup-dump.py work on Python 3
+ * validate-files.py: Fix handling for non-ASCII characters (r1874393)
+ * Fix an undefined behavior problem in FSFS caching code (r1876054)
+
+ Developer-visible changes:
+ * Require at least version 1.5 of APR (r1874094)
+ * Support Python3 in the py-swig bindings; requires py3c (r1869354 et al)
+ * Support building with SWIG 4 on Python 3.x (r1869853)
+ * Fix svnserveautocheck for Python 3 (r1868151)
+ * contribulyze.py: Support Python 3 in addition to Python 2 (r1871211)
+ * Fix Proc.new warnings in Ruby bindings with Ruby >= 2.7 (r1876020)
+
+Version 1.13.0
+(30 Oct 2019, from /branches/1.13.x)
+https://svn.apache.org/repos/asf/subversion/tags/1.13.0
+
+ User-visible changes:
+ - Minor new features and improvements:
+ * New 'svnadmin rev-size' command to report revision size (r1857624)
+ * In 'svn help', hide experimental commands and global options (issue #4828)
+ * Add a hint about mod_dav_svn misconfiguration (r1866738)
+ * Performance improvement for 'svn st' etc., in WC SQLite DB (r1865523)
+
+ - Client-side bugfixes:
+ * Windows: avoid delays in SSL certificate validation override (r1863018)
+ * Fix 'svn patch' setting mode 0600 on patched files with props (r1864440)
+ * Fix "svn diff --changelist ARG" broken in subdirectories (issue #4822)
+ * Fix misleading 'redirect cycle' error on a non-repository URL (r1866899)
+
+ - Server-side bugfixes:
+ * svnserve: Report some errors that we previously ignored (r1866062)
+ * Make server code more resilient to malformed paths and URLs (r1866318 et al)
+ * Make dump stream parser more resilient to malformed dump stream (r1866951)
+ * mod_dav_svn: Fix missing Last-Modified header on 'external' GET requests (r1866425)
+
+ - Client-side and server-side bugfixes:
+ * Fix excessive memory usage in some cases reading binary data (r1866950)
+ * Win32: fix svn_io_file_rename2() spinning in a retry loop (r1865518)
+
+ - Other tool improvements and bugfixes:
+ * svn_load_dirs.pl: do not show password; fix cleanup (r1863262, r1863392)
+
+ Developer-visible changes:
+ * New svn_fs_ioctl() API for FSFS stats, dump/load index, rev-size (r1857435)
+
+
+Version 1.12.2
+(24 Jul 2019, from /branches/1.12.x)
+https://svn.apache.org/repos/asf/subversion/tags/1.12.2
+
+ User-visible changes:
+ * Fix conflict resolver bug: local and incoming edits swapped. (r1863285)
+ * Fix memory lifetime problem in a libsvn_wc error code path. (r1863287)
+ * Faster Windows file existence checks, improving 'svn st' etc. (r1863289)
+
+ Developer-visible changes:
+ * Allow generating Visual Studio 2019 projects (r1863286)
+ * Fix build with APR 1.7.0. (r1860377)
+ * Fix building Subversion with Visual Studio 2005 and 2008. (r1863288)
+ * Allow svnserve's 'get-deleted-rev' API to return 'not deleted'. (r1863290)
+
+
+Version 1.12.1
+(Not released; see changes for 1.12.2.)
+
+
+Version 1.12.0
+(12 Apr 2019, from /branches/1.12.x)
+https://svn.apache.org/repos/asf/subversion/tags/1.12.0
+
+ User-visible changes:
+ - Major new features:
+
+ - Minor new features and improvements:
+ * 'move vs. move' merge conflicts can now be resolved (r1846851, r1851913)
+ * 'svn --version --verbose' shows loaded libraries on Linux (r1843774)
+ * 'svnrdump' can read/write a file instead of stdin/stdout (r1844906)
+ * 'svn list' tries to not truncate the author's name (r1847384 et al.)
+ * 'svn list' can show sizes in base-2 unit suffixes (r1847384 et al.)
+ * 'svn info' shows the size of files in the repository (r1847441 et al.)
+ * 'svn cleanup' can remove read-only directories (#4806, r1854072 et al.)
+
+ - Client-side bugfixes:
+ * Repos-to-WC copy with --parents works with absent target (r1843888)
+ * Repos-to-WC copy from foreign repo with peg/operative revs (#4785)
+
+ - Server-side bugfixes:
+ * Ignore empty group definitions in authz files (#4802, r1851687)
+
+ - Client-side and server-side bugfixes:
+
+ - Other tool improvements and bugfixes:
+ * svnauthz: warn about empty groups in authz files (#4803, r1851823)
+ * Storing passwords in plain text on disk is disabled by default (r1845377)
+
+ Developer-visible changes:
+ - General:
+ * Updated the required libtool version to 2.x (r1845716)
+ * get-deps.sh: Remove references to Googlemock and Googletest (r1849200)
+ * All C++ code is compiled in C++11 mode by default (r1849202)
+
+ - Bindings:
+ * JavaHL: Fixed potential core dump in ISVNClient.diff (r1845408)
+ * JavaHL: Let clients decode file contents from ISVNClient.blame (r1851333)
+
+
+Version 1.11.1
+(11 Jan 2019, from /branches/1.11.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.11.1
+
+ User-visible changes:
+ - Minor new features and improvements:
+ * Conflict resolver support for added vs unversioned file (r1845577)
+ * Conflict resolver support for unversioned directories (r1846299)
+ * Improve help for 'svn add' and the '-N' option (r1842814 et al.)
+ * Improve display of Mac OS name in 'svn --version --verbose' (r1842334)
+
+ - Client-side bugfixes:
+ * Fix: repos-to-WC copy with --parents doesn't create dirs (#4768)
+ * Fix: foreign repo copy with peg/operative revisions (#4785)
+ * Fix: foreign repo copy of file adding mergeinfo (#4792)
+ * Fix: assertion failure using -rPREV on a working copy at r0 (#4532)
+ * Fix: tree conflict message ends a sentence with a colon (#4717)
+
+ - Server-side bugfixes:
+ * Fix CVE-2018-11803: malicious SVN clients can crash mod_dav_svn
+ * Fix: unexpected SVN_ERR_FS_NOT_DIRECTORY errors (#4791)
+ * Fix: mod_dav_svn's SVNUseUTF8 had no effect in some setups (r1844882)
+ * Fix crash in mod_http2 (#4782)
+
+ - Other tool improvements and bugfixes:
+ * svndumpfilter: Clarify error messages by including node path (r1845261)
+
+ - Bindings bugfixes:
+ * JavaHL: Fix crash in client code when using external diff (r1845408)
+
+ Developer-visible changes:
+ - General:
+ * Fix build on systems without python in $PATH (r1845555)
+ * Fix compiler warnings about indentation (r1845556 et al.)
+
+ - API changes:
+ (none)
+
+
+Version 1.11.0
+(30 Oct 2018, from /branches/1.11.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.11.0
+
+ User-visible changes:
+ - Major new features:
+ * Shelving is no longer based on patch files (experimental) (issue #3625)
+ * Checkpointing (experimental) (issue #3626)
+ * Viewspec output command (experimental) (issue #4753)
+
+ - Minor new features and improvements:
+ * Improvements to tree conflict resolution (issue #4694 #4766 ...)
+ * 'patch' can now read non-pretty-printed svn:mergeinfo diffs (r1822151)
+ * Better error when http:// URL is not a Subversion repository (r1825302)
+ * Add 'schedule' and 'depth' items to 'svn info --show-item' (r1827032)
+ * Allow the client cert password to be saved (r1836762)
+
+ - Client-side bugfixes:
+ * Fix a crash in a repo:WC summary diff of a local copy (r1835218)
+ * Fix double diff headers (r1836746)
+ * Tree conflict resolver: avoid endless scan in some cases (r1839662)
+
+ - Server-side bugfixes:
+ * svnadmin dump shouldn't canonicalize svn:date (issue #4767)
+ * 'svnadmin verify --keep-going --quiet' shows an error summary (r1837790)
+ * Let 'svnadmin recover' prune the rep-cache even if disabled (r1838813)
+
+ - Client-side and server-side bugfixes:
+ * Fix pattern-matching of top level path in listing with search (r1830599)
+ * Allow commands like 'svn ci --file X' to work when X is a FIFO (r1836306)
+
+ - Other tool improvements and bugfixes:
+ * tools/client-side/bash_completion: Add '--password-from-stdin' (r1820045)
+
+ Developer-visible changes:
+ - General:
+ * new tool: tools/dist/edit-N-log-messages (r1819207)
+ * tools/dev/unix-build/Makefile.svn: various fixes
+ * Expose the diff option 'pretty_print_mergeinfo' in APIs (r1822014)
+ * In 'revert' APIs, choose whether to delete schedule-add nodes (r1822534)
+
+ - Bindings:
+ * Fix Python binding fs.FileDiff behaviour with python-future (r1823802)
+ * Fix Python unit test, fs.SubversionFSTestCase, on Windows (r1824410)
+ * Bump minimum JDK version required for JavaHL to 1.8 (r1831895)
+ * Enable building against Java 10 (r1841180 et al)
+ * Fix a potential crash in JavaHL (issue #4764)
+
+
+Version 1.10.6
+(24 Jul 2019, from /branches/1.10.x)
+https://svn.apache.org/repos/asf/subversion/tags/1.10.6
+
+ User-visible changes:
+ * Allow the use of empty groups in authz rules. (r1854883)
+ * Fix conflict resolver case with move vs move conflicts. (r1863297)
+ * Fix #4760: Missing children in svnadmin dump --include/exclude. (r1863298)
+ * Fix #4793: authz rights from inverted access selectors. (r1854882)
+ * Fix conflict resolver bug: local and incoming edits swapped. (r1863300)
+ * Fix #4806: Remove on-disk trees with read-only dirs. (r1863299)
+ * Fix memory lifetime problem in a libsvn_wc error code path. (r1863302)
+ * No tree conflict when 'svn up' deletes unmodified dir with unversioned items. (r1863296)
+ * Remove a useless common ancestor search from conflict resolver. (r1863294)
+
+ Developer-visible changes:
+ * Allow generating Visual Studio 2019 projects (r1863304)
+ * Fix a use-after-free in mod_dav_svn's logging of FS warnings. (r1863292)
+ * Fix "unused static function" warning in release-mode builds. (r1854884)
+ * Fix build with APR 1.7.0. (r1863303)
+ * Fix issue #4804: spurious SQLite-related test failures. (r1863295)
+ * Allow svnserve's 'get-deleted-rev' API to return 'not deleted'. (r1863305)
+ * Silence a deprecation warning from amalgamated SQLite on macOS. (r1863291)
+
+
+Version 1.10.5
+(Not released; see changes for 1.10.6.)
+
+
+Version 1.10.4
+(11 Jan 2019, from /branches/1.10.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.10.4
+
+ User-visible changes:
+ - Minor new features and improvements:
+ * Conflict resolver support for added vs unversioned file (r1845577)
+ * Conflict resolver support for unversioned directories (r1846299)
+
+ - Client-side bugfixes:
+ * Fix: repos-to-WC copy with --parents doesn't create dirs (#4768)
+ * Fix: foreign repo copy with peg/operative revisions (#4785)
+ * Fix: foreign repo copy of file adding mergeinfo (#4792)
+ * Fix: assertion failure using -rPREV on a working copy at r0 (#4532)
+ * Fix: tree conflict message ends a sentence with a colon (#4717)
+
+ - Server-side bugfixes:
+ * Fix CVE-2018-11803: malicious SVN clients can crash mod_dav_svn
+ * Fix: unexpected SVN_ERR_FS_NOT_DIRECTORY errors (#4791)
+ * Fix: mod_dav_svn's SVNUseUTF8 had no effect in some setups (r1844882)
+ * Fix crash in mod_http2 (#4782)
+
+ - Other tool improvements and bugfixes:
+ * svndumpfilter: Clarify error messages by including node path (r1845261)
+
+ - Bindings bugfixes:
+ * JavaHL: Fix crash in client code when using external diff (r1845408)
+
+ Developer-visible changes:
+ - General:
+ * Fix build on systems without python in $PATH (r1845555)
+
+ - API changes:
+ (none)
+
+
+Version 1.10.3
+(10 Oct 2018, from /branches/1.10.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.10.3
+
+ User-visible changes:
+ - Minor new features and improvements:
+ * Store the HTTPS client cert password (r1842578)
+
+ - Client-side bugfixes:
+ * Fix shelving when custom diff command is configured (issue #4758)
+ * Fix conflict resolver crashes (issue #4744, r1842581, r1842582, r1842583)
+ * Fix conflict resolver endless scan in some cases (r1842586)
+ * Fix "Accept incoming deletion" on locally deleted file (issue #4739)
+ * Fix "resolver adds unrelated moves to move target list" (issue #4766)
+
+ - Server-side bugfixes:
+ * Reject bad PUT before CHECKOUT in v1 HTTP protocol (r1841281)
+ * Let 'svnadmin recover' prune the rep-cache even if disabled (r1842585)
+
+ - Client-side and server-side bugfixes:
+ * Allow commands like 'svn ci --file X' to work when X is a FIFO (r1841282)
+
+ - Other tool improvements and bugfixes:
+ * 'svnadmin verify --keep-going --quiet' shows an error summary (r1842584)
+ * Fix error in german translation for 'svn help merge' (r1837038)
+
+ Developer-visible changes:
+ - General:
+ * Python tests use the current python executable (r1842626)
+
+
Version 1.10.2
(20 Jul 2018, from /branches/1.10.x)
http://svn.apache.org/repos/asf/subversion/tags/1.10.2
@@ -38,7 +358,7 @@ the 1.9 release: https://subversion.apache.org/docs/release-notes/1.10.html
User-visible changes:
- Major new features:
* Better interactive conflict resolution for tree conflicts (r1687489 et al)
- * Wilcards and improved performance in path-based authorization (r1776832)
+ * Wildcards and improved performance in path-based authorization (r1776832)
* New experimental 'svn shelve' command (issue #3625)
- Minor new features and improvements:
* svnbench: Show time taken & bytes transferred (r1703383, r1710586)
@@ -59,7 +379,7 @@ the 1.9 release: https://subversion.apache.org/docs/release-notes/1.10.html
* ra_serf: Adjustments for serf versions with HTTP/2 support (r1716400)
* ra_serf: Send svndiff1 deltas during commit (r1704317, r1704613, r1791290)
* ra_serf: Stream svndiff deltas w/o creating temporary files (r1803143 et al)
- * ra_serf: Don't necessarily request full MERGE reponses (r1806017 et al)
+ * ra_serf: Don't necessarily request full MERGE responses (r1806017 et al)
* 'svn patch': Parse binary diffs in git-style patches (r1703925)
* 'svnadmin info' now reports latest revision in the repository (r1697953)
* ra_svn: Various performance-related tweaks (r1694490)
@@ -316,6 +636,67 @@ the 1.9 release: https://subversion.apache.org/docs/release-notes/1.10.html
* Ruby: Detect versions up to 2.4 (r1806570)
+Version 1.9.12
+(24 Jul 2019, from /branches/1.9.x)
+https://svn.apache.org/repos/asf/subversion/tags/1.9.12
+
+ User-visible changes:
+ * No tree conflict when 'svn up' deletes unmodified dir with unversioned items. (r1863309)
+
+ Developer-visible changes:
+ * Allow generating Visual Studio 2019 projects (r1863311)
+ * Fix a use-after-free in mod_dav_svn's logging of FS warnings. (r1863307)
+ * Fix "unused static function" warning in release-mode builds. (r1854881)
+ * Fix build with APR 1.7.0. (r1863310)
+ * Fix issue #4804: spurious SQLite-related test failures. (r1863308)
+ * Allow svnserve's 'get-deleted-rev' API to return 'not deleted'. (r1863312)
+ * Silence a deprecation warning from amalgamated SQLite on macOS. (r1863306)
+
+
+Version 1.9.11
+(Not released; see changes for 1.9.12.)
+
+
+Version 1.9.10
+(11 Jan 2019, from /branches/1.9.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.9.10
+
+ User-visible changes:
+ - Client-side bugfixes:
+ * Fix: repos-to-WC copy with --parents doesn't create dirs (#4768)
+ * Fix: foreign repo copy with peg/operative revisions (#4785)
+ * Fix: assertion failure using -rPREV on a working copy at r0 (#4532)
+ * Fix: german translation for 'svn help merge' (r1837037)
+ * Fix: prune externals after 'update --set-depth=exclude' (r1830883 et al.)
+ * Fix: detection of GPG-agent (r1794166 et al.)
+ * Fix: null updates don't update last-changed-revision (#4700)
+ * Fix: merge "Unable to parse reversed revision range" (#4686)
+
+ - Server-side bugfixes:
+ * Fix: unexpected SVN_ERR_FS_NOT_DIRECTORY errors (#4791)
+ * Fix: mod_dav_svn's SVNUseUTF8 had no effect in some setups (r1844882)
+ * Fix: crash in mod_http2 (#4782)
+ * Fix: 'svnadmin upgrade' of BDB: Error out on too-new formats (r1804013)
+ * Fix: Enforce v1 HTTP protocol: error if PUT before CHECKOUT (r1833465)
+ * Fix: Let 'svnadmin recover' prune rep-cache even if disabled (r1838813)
+ * Add test and FSFS checksum verification for issue #4722 (r1826720 et al.)
+
+ - Other tool improvements and bugfixes:
+ * Install 'fsfs-stats' wrapper for 1.8 compat (r1802032 et al.)
+ * Note that 'tools/client-side/detach.py' doesn't work on 1.8+ (r1696722)
+
+ - Bindings bugfixes:
+ * JavaHL: Fix crash in client code when using external diff (r1845408)
+ * JavaHL: SSL server trust prompt: allow accepting temporarily (r1820718)
+
+ Developer-visible changes:
+ - General:
+ (none)
+
+ - API changes:
+ (none)
+
+
Version 1.9.9
(20 Jul 2018, from /branches/1.9.x)
http://svn.apache.org/repos/asf/subversion/tags/1.9.9
@@ -948,7 +1329,7 @@ http://svn.apache.org/repos/asf/subversion/tags/1.9.0
* cache: fix premature eviction due to 64-bit underflows (r1567996 et al)
* svnserve: fix potential integer overflow in Cyrus SASL support (r1570434)
* bdb: fix potential integer overflow and underflow (r1570701)
- * bdb: prevent silent propogation of some corruption (r1570778)
+ * bdb: prevent silent propagation of some corruption (r1570778)
* svnadmin hotcopy: do not corrupt db/current contents when copying old
FSFS repos (r1603485)
* svnadmin hotcopy: don't produce broken copies when a concurrent pack
@@ -1208,7 +1589,7 @@ http://svn.apache.org/repos/asf/subversion/tags/1.9.0
ranges (r1569731)
* svn_rangelist_inheritable2() and svn_mergeinfo_inheritable2(): fix a
pool lifetime issue (r1569764)
- * new APIs to support cancelation during unified diff output and
+ * new APIs to support cancellation during unified diff output and
allow the context size to be specified (r1570149 et al)
* APIs related to retrieving logs are now documented to be unlimited when
a negative value is passed for the limit (r1570330, 1570335)
@@ -1326,7 +1707,7 @@ http://svn.apache.org/repos/asf/subversion/tags/1.9.0
* swig-py: Add close to the core.Stream class (r1619077)
* javahl: add example clients that use the authn API (r1640533)
* swig-py: implement dump stream parser (r1642813)
- * swig-pl: remove some unneded cleanup code that triggered a cleanup
+ * swig-pl: remove some unneeded cleanup code that triggered a cleanup
failure on windows (r1643072)
* swig-pl: make cancel_func, cancel_baton parameter pairs work (r1648852)
* javahl: expose whitespace diff parameters to blame method (issue #4475)
@@ -1657,7 +2038,7 @@ http://svn.apache.org/repos/asf/subversion/tags/1.8.9
- Client-side bugfixes:
* log: use proper peg revision over DAV (r1568872)
* upgrade: allow upgrading from 1.7 with exclusive locks (r1572102 et al)
- * proplist: resolve inconsitent inherited property results (r1575270 et al)
+ * proplist: resolve inconsistent inherited property results (r1575270 et al)
* increase minimal timestamp sleep from 1ms to 10ms (r1581305 et al)
* merge: automatic merge confused by subtree merge (issue #4481)
* propget: report proper error on invalid revision for url (r1586255)
@@ -1699,7 +2080,7 @@ http://svn.apache.org/repos/asf/subversion/tags/1.8.9
Developer-visible changes:
- General:
* improve consistency checks of DAV inherited property requests (r1498000)
- * fix ocassional failure in autoprop_tests.py (r1567752)
+ * fix occasional failure in autoprop_tests.py (r1567752)
* avoid duplicate sqlite analyze information rows (r1571214)
* add Mavericks to our sysinfo output (r1573088)
* bump copyright years to 2014 (r1555403)
@@ -1752,7 +2133,7 @@ http://svn.apache.org/repos/asf/subversion/tags/1.8.8
Developer-visible changes:
- General:
- * fix ocassional failure of check_tests.py 12 (r1496127 et al)
+ * fix occasional failure of check_tests.py 12 (r1496127 et al)
* fix failure with SQLite 3.8.1-3.8.3 when built with
SQLITE_ENABLE_STAT3/4 due to bug in SQLite (r1567286, r1567392)
* specify SQLite defaults that can be changed when SQLite is built
@@ -1858,7 +2239,7 @@ http://svn.apache.org/repos/asf/subversion/tags/1.8.3
- Client- and server-side bugfixes:
* translation updates for Swedish
* enforce strict version equality between tools and libraries (r1502267)
- * consistently output revisions as "r%ld" in error messags (r1499044 et al)
+ * consistently output revisions as "r%ld" in error messages (r1499044 et al)
- Client-side bugfixes:
* status: always use absolute paths in XML output (issue #4398)
@@ -2437,7 +2818,7 @@ http://svn.apache.org/repos/asf/subversion/tags/1.7.18
Developer-visible changes:
- General:
- * fix ocassional failure in checkout_tests.py test 12. (r1496127)
+ * fix occasional failure in checkout_tests.py test 12. (r1496127)
* disable building ZLib's assembly optimizations on Windows.
@@ -3052,7 +3433,7 @@ the 1.6 release: http://subversion.apache.org/docs/release-notes/1.7.html
* fixed: wc-to-wc copy of a switch source (issue #1802)
* fixed: 'svn st' reports symlinks as obstructed items (issue #2284)
* fixed: 'cd e:\; svn up e:\' fails (issue #2556)
- * fixed: svn aborts on commiting from root dir on windows (issue #3346)
+ * fixed: svn aborts on committing from root dir on windows (issue #3346)
* fixed: removing a dir scheduled for deletion corrupts wc (issue #2741)
* fixed: 'svn cleanup' fails on obstructed paths (issue #2867)
* fixed: case-only renames resulting from merges don't work (issue #3115)
@@ -3089,7 +3470,7 @@ the 1.6 release: http://subversion.apache.org/docs/release-notes/1.7.html
* fixed: 'svn info' returns parent info on missing dirs (issue #3178)
* fixed: spurious prop conflict with 'merge --reintegrate' (issue #3919)
* fixed: 'svn --version' fails with non-existent $HOME (issue #3947)
- * fixed: unforced export silently overwites existing file (issue #3799)
+ * fixed: unforced export silently overwrites existing file (issue #3799)
* fixed: reverse merge which adds subtree mergeinfo fails (issue #3978)
* fixed: 'svn up -r{R>HEAD}' hangs client over ra_svn (issue #3963)
* fixed: 'svn up' updates file externals in target siblings (issue #3819)
@@ -3433,7 +3814,7 @@ http://svn.apache.org/repos/asf/subversion/tags/1.6.11
Developer-visible changes:
* disable checks for wc-ng working copies when running the test suite
* on Windows, don't ignore move operation error codes (r896915)
- * more precise reporting of errors occuring with sqlite init (r927323, -8)
+ * more precise reporting of errors occurring with sqlite init (r927323, -8)
* ensure rangelist APIs are commutative (r923389, -91)
@@ -6796,7 +7177,7 @@ Version 0.9 (released 15 Feb 2002, revision 1302)
- no more 'path styles' in path library
- rewrite bootstrapping code for python test framework
- rewrite commandline app's help-system and alias-system
- - feedback table replaced with notfication callback
+ - feedback table replaced with notification callback
- rewrite sorting of hashes
- svnadmin internal rewrite
- faster post-update processing
diff --git a/COMMITTERS b/COMMITTERS
index 3eb069a3eaab..0f982d76b796 100644
--- a/COMMITTERS
+++ b/COMMITTERS
@@ -61,6 +61,9 @@ Blanket commit access:
astieger Andreas Stieger <andreas.stieger@gmx.de>
jamessan James McCoy <jamessan@jamessan.com>
luke1410 Stefan Hett <luke1410@posteo.de>
+ troycurtisjr Troy Curtis, Jr <troycurtisjr@gmail.com>
+ hartmannathan Nathan Hartman <hartman.nathan@gmail.com>
+ futatuki Yasuhito Futatsuki <futatuki@yf.bsdclub.org>
[[END ACTIVE FULL COMMITTERS. LEAVE THIS LINE HERE; SCRIPTS LOOK FOR IT.]]
@@ -104,7 +107,6 @@ Commit access for specific areas:
rschupp Roderich Schupp <roderich.schupp@gmail.com> (Swig bindings)
stilor Alexey Neyman <stilor@att.net> (Python bindings,
svn-vendor.py)
- troycurtisjr Troy Curtis, Jr <troycurtisjr@gmail.com> (Swig bindings)
Packages:
diff --git a/INSTALL b/INSTALL
index dcbf67c37aaa..64f821a31057 100644
--- a/INSTALL
+++ b/INSTALL
@@ -3,7 +3,7 @@
A Quick Guide
======================================
-$LastChangedDate: 2017-12-25 04:00:08 +0000 (Mon, 25 Dec 2017) $
+$LastChangedDate: 2020-02-17 03:49:42 +0000 (Mon, 17 Feb 2020) $
Contents:
@@ -23,8 +23,8 @@ Contents:
III. BUILDING A SUBVERSION SERVER
A. Setting Up Apache Httpd
- B. Making and Installing the Subversion Server
- C. Configuring Apache for Subversion
+ B. Making and Installing the Subversion Apache Server Module
+ C. Configuring Apache Httpd for Subversion
D. Running and Testing
E. Alternative: 'svnserve' and ra_svn
@@ -96,6 +96,11 @@ I. INTRODUCTION
These diff streams are used everywhere -- over the network,
in the repository, and in the client's working copy.
+ * utf8proc (REQUIRED for client and server)
+
+ Subversion uses utf8proc for UTF-8 support, including Unicode
+ normalization.
+
* Apache Serf (OPTIONAL for client)
The Apache Serf library allows the Subversion client to send HTTP
@@ -116,21 +121,21 @@ I. INTRODUCTION
* Netwide Assembler (OPTIONAL for client and server)
- The Netwide Assembler (NASM) is used to build the (optionally)
+ The Netwide Assembler (NASM) is used to build the (optional)
assembler modules of OpenSSL. As of OpenSSL 1.1.0 NASM is the
only supported assembler.
- * Berkeley DB (OPTIONAL for client and server)
+ * Berkeley DB (DEPRECATED and OPTIONAL for client and server)
- There are two different repository 'back-end'
- implementations. One implementation stores data in a flat
- filesystem (known as FSFS); the other implementation stores
- data in a Berkeley DB database (known as BDB). When you
- create a repository, you have the option of specifying a
- storage back-end. The Berkeley DB back-end will only be
- available if the BDB libraries are discovered at compile
- time. The Berkeley DB back-end has been deprecated and
- is not recommend.
+ When you create a repository, you have the option of
+ specifying a storage 'back-end' implementation. Currently,
+ there are two options. The newer and recommended one, known
+ as FSFS, does not require Berkeley DB. FSFS stores data in a
+ flat filesystem. The older implementation, known as BDB, has
+ been deprecated and is not recommended for new repositories,
+ but is still available. BDB stores data in a Berkeley DB
+ database. This back-end will only be available if the BDB
+ libraries are discovered at compile time.
* libsasl (OPTIONAL for client and server)
@@ -147,10 +152,16 @@ I. INTRODUCTION
for other languages, you need to have those languages
available at build time.
- * KDELibs, GNOME Keyring (OPTIONAL for client)
+ * py3c (OPTIONAL, but REQUIRED for Python bindings)
+
+ The Python 3 Compatibility Layer for C Extensions is required
+ to build the Python language bindings.
+
+ * KDE Framework 5, libsecret, GNOME Keyring (OPTIONAL for client)
Subversion contains optional support for storing passwords in
- KWallet (KDE 4) or GNOME Keyring.
+ KWallet via KDE Framework 5 libraries (preferred) or kdelibs4,
+ and GNOME Keyring via libsecret (preferred) or GNOME APIs.
* libmagic (OPTIONAL)
@@ -160,10 +171,6 @@ I. INTRODUCTION
configured via auto-props or the mime-types-file option
take precedence.
- * Googlemock aka Gmock (OPTIONAL)
-
- This optional package is used by the tests for Subversions'
- C++ bindings.
C. Dependencies in Detail
@@ -199,7 +206,7 @@ I. INTRODUCTION
commands described in section II.B before installing the following.
- 1. Apache Portable Runtime 1.3 or newer (REQUIRED)
+ 1. Apache Portable Runtime 1.5 or newer (REQUIRED)
Whenever you want to build any part of Subversion, you need the
Apache Portable Runtime (APR) and the APR Utility (APR-util)
@@ -253,22 +260,55 @@ I. INTRODUCTION
configure script.
- 2. Zlib (REQUIRED)
+ 2. SQLite (REQUIRED)
+
+ Subversion requires SQLite version 3.8.2 or above. You can meet this
+ dependency several ways:
+ * Use an SQLite amalgamation file.
+ * Specify an SQLite installation to use.
+ * Let Subversion find an installed SQLite.
+
+ To use an SQLite-provided amalgamation, just drop sqlite3.c into
+ Subversion's sqlite-amalgamation/ directory, or point to it with the
+ --with-sqlite configure option. This file also ships with the Subversion
+ dependencies distribution, or you can download it from SQLite:
+
+ https://www.sqlite.org/download.html
+
+
+ 3. Zlib (REQUIRED)
+
+ Subversion's binary-differencing engine depends on zlib for
+ compression. Most Unix systems have libz pre-installed, but if
+ you need it, you can get it from
+
+ http://www.zlib.net/
- Subversion's binary-differencing engine depends on zlib for
- compression. Most Unix systems have libz pre-installed, but
- if you need it, you can get it from
- http://www.zlib.net/
+ 4. utf8proc (REQUIRED)
+ Subversion uses utf8proc for UTF-8 support. Configure will
+ attempt to locate utf8proc by default using pkg-config and known
+ paths.
- 3. autoconf 2.59 or newer (Unix only)
+ If it is installed in a non-standard location, then use:
+
+ --with-utf8proc=/path/to/libutf8proc
+
+ Alternatively, a copy of utf8proc comes bundled with the
+ Subversion sources. If configure should use the bundled copy,
+ use:
+
+ --with-utf8proc=internal
+
+
+ 5. autoconf 2.59 or newer (Unix only)
This is required only if you plan to build from the latest source
(see section II.B). Generally only developers would be doing this.
- 4. libtool 1.4 or newer (Unix only)
+ 6. libtool 1.4 or newer (Unix only)
This is required only if you plan to build from the latest source
(see section II.B).
@@ -277,7 +317,7 @@ I. INTRODUCTION
newer. The autogen.sh script knows about that.
- 5. Apache Serf library 1.3.4 or newer (OPTIONAL)
+ 7. Apache Serf library 1.3.4 or newer (OPTIONAL)
If you want your client to be able to speak to an Apache
server (via a http:// or https:// URL), you must link against
@@ -292,12 +332,13 @@ I. INTRODUCTION
instead.
Apache Serf can be obtained via your system's package distribution
- system or directly from http://code.google.com/p/serf/.
+ system or directly from https://serf.apache.org/.
For more information on Apache Serf and Subversion's ra_serf, see the
file subversion/libsvn_ra_serf/README.
- 6. OpenSSL (OPTIONAL)
+
+ 8. OpenSSL (OPTIONAL)
### needs some updates. I think Apache Serf automagically handles
### finding OpenSSL, but we may need more docco here. and w.r.t
@@ -343,17 +384,25 @@ I. INTRODUCTION
https://www.openssl.org/
- 7. Berkeley DB 4.X (OPTIONAL)
+ 9. Berkeley DB 4.X (DEPRECATED and OPTIONAL)
- Berkeley DB is needed to build a Subversion server that supports
- the BDB repository filesystem, or to access a BDB repository on
- local disk. If you will only use the FSFS repository filesystem,
- or if you are building a Subversion client that will only speak
- to remote (networked) repositories, you don't need it.
+ You need the Berkeley DB libraries only if you are building a
+ Subversion server that supports the older BDB repository storage
+ back-end, or a Subversion client that can access local BDB
+ repositories via the file:// URI scheme.
- The current recommended version is 4.4.20 or newer, which brings
- auto-recovery functionality to the Berkeley DB database
- environment.
+ The BDB back-end has been deprecated and is not recommended for
+ new repositories. BDB may be removed in Subversion 2.0. We
+ recommend the newer FSFS back-end for all new repositories.
+ FSFS does not require the Berkeley DB libraries.
+
+ If in doubt, the 'svnadmin info' command, added in Subversion
+ 1.9, can identify whether an existing repository uses BDB or
+ FSFS.
+
+ The current recommended version of Berkeley DB is 4.4.20 or
+ newer, which brings auto-recovery functionality to the Berkeley
+ DB database environment.
If you must use an older version of Berkeley DB, we *strongly*
recommend using 4.3 or 4.2 over the 4.1 or 4.0 versions. Not
@@ -386,7 +435,7 @@ I. INTRODUCTION
Look in the "Releases > Windows > Windows BDB" section.
- 8. Cyrus SASL library (OPTIONAL)
+ 10. Cyrus SASL library (OPTIONAL)
If the Simple Authentication and Security Layer (SASL) library
is detected on your system, then the Subversion client and
@@ -397,7 +446,7 @@ I. INTRODUCTION
http://freshmeat.net/projects/cyrussasl/
- 9. Apache Web Server 2.2.X or newer (OPTIONAL)
+ 11. Apache Web Server 2.2.X or newer (OPTIONAL)
(https://httpd.apache.org/download.cgi)
@@ -410,78 +459,103 @@ I. INTRODUCTION
is done: See section III for details.
- 10. Python 2.7 or newer (https://www.python.org/) (OPTIONAL)
+ 12. Python 3.x or newer (https://www.python.org/) (OPTIONAL)
- If you want to run "make check" or build from the latest source
- under Unix/Windows as described in section II.B, II.E and III.D,
- install Python 2.7 or higher on your system. The majority of the
- test suite is written in Python, as is part of Subversion's build
- system.
+ Subversion does not require Python for its basic operation.
+ However, Python is required for building and testing Subversion
+ and for using Subversion's SWIG Python bindings or hook scripts
+ coded in Python.
- Note that Python 3.x is not supported and most likely won't work.
+ The majority of Subversion's test suite is written in Python, as
+ is part of Subversion's build system.
+ In more detail, Python is required to do any of the following:
- 11. Perl 5.8 or newer (Windows only) (OPTIONAL)
+ * Use the SWIG Python bindings.
+ * Use the ctypes Python bindings.
+ * Use hook scripts coded in Python.
+ * Build Subversion from a tarball on Unix-like systems and run
+ Subversion's test suite as described in section II.B.
+ * Build Subversion on Windows as described in section II.E.
+ * Build Subversion from a working copy checked out from
+ Subversion's own repository (whether or not running the test
+ suite).
+ * Build the SWIG Python bindings.
+ * Build the ctypes Python bindings.
+ * Testing as described in section III.D.
- To build Subversion under any of the MS Windows platforms, you
- will also need Perl 5.8 or newer to run apr-util's w32locatedb.pl
- script.
+ The Python bindings are used by:
+ * Third-party programs (e.g., ViewVC)
+ * Scripts distributed with Subversion itself in the tools/
+ subdirectory.
+ * Any in-house scripts you may have.
- 12. SQLite (REQUIRED)
+ Python is NOT required to do any of the following:
- Subversion requires SQLite version 3.8.2 or above. You can meet this
- dependency several ways:
- * Use an SQLite amalgamation file.
- * Specify an SQLite installation to use.
- * Let Subversion find an installed SQLite.
+ * Use the core command-line binaries (svn, svnadmin, svnsync,
+ etc.)
+ * Use Subversion's C libraries.
+ * Use any of Subversion's other language bindings.
+ * Build Subversion from a tarball on Unix-like systems without
+ running Subversion's test suite
- To use an SQLite-provided amalgamation, just drop sqlite3.c into
- Subversion's sqlite-amalgamation/ directory, or point to it with the
- --with-sqlite configure option. This file also ships with the Subversion
- dependencies distribution, or you can download it from SQLite:
+ Although this section calls for Python 3.x, Subversion still
+ technically works with Python 2.7. However, Support for Python
+ 2.7 is being phased out. As of 1 January 2020, Python 2.7 has
+ reached end of life. All users are strongly encouraged to move
+ to Python 3.
- https://www.sqlite.org/download.html
+
+ 13. Perl 5.8 or newer (Windows only) (OPTIONAL)
+
+ To build Subversion under any of the MS Windows platforms, you
+ will also need Perl 5.8 or newer to run apr-util's w32locatedb.pl
+ script.
- 13. pkg-config (Unix only, OPTIONAL)
+ 14. pkg-config (Unix only, OPTIONAL)
Subversion uses pkg-config to find appropriate options used
at build time.
- 14. D-Bus (Unix only, OPTIONAL)
+ 15. D-Bus (Unix only, OPTIONAL)
D-Bus is a message bus system. D-Bus is required for support for KWallet
and GNOME Keyring. pkg-config is needed to find D-Bus headers and library.
- 15. Qt 4 (Unix only, OPTIONAL)
+ 16. Qt 5 or Qt 4 (Unix only, OPTIONAL)
Qt is a cross-platform application framework. QtCore, QtDBus and QtGui
modules are required for support for KWallet. pkg-config is needed
to find Qt headers and libraries.
- 16. KDELibs 4 (Unix only, OPTIONAL)
+ 17. KDE 5 Framework libraries or KDELibs 4 (Unix only, OPTIONAL)
Subversion contains optional support for storing passwords in KWallet.
+ Subversion will look for KF5Wallet, KF5CoreAddons, KF5I18n APIs by default,
+ and needs kf5-config to find them. The KDELibs 4 api is also supported.
KDELibs contains core KDE libraries. Subversion uses libkdecore and libkdeui
libraries when support for KWallet is enabled. kde4-config is used to get
some necessary options. pkg-config, D-Bus and Qt 4 are also required.
+
If you want to build support for KWallet, then pass the '--with-kwallet'
option to `configure`. If KDE is installed in a non-standard prefix, then
use:
--with-kwallet=/path/to/KDE/prefix
- 17. GLib 2 (Unix only, OPTIONAL)
+
+ 18. GLib 2 (Unix only, OPTIONAL)
GLib is a general-purpose utility library. GLib is required for support
for GNOME Keyring. pkg-config is needed to find GLib headers and library.
- 18. GNOME Keyring (Unix only, OPTIONAL)
+ 19. GNOME Keyring (Unix only, OPTIONAL)
Subversion contains optional support for storing passwords in GNOME Keyring.
pkg-config is needed to find GNOME Keyring headers and library. D-Bus and
@@ -489,7 +563,7 @@ I. INTRODUCTION
then pass the '--with-gnome-keyring' option to `configure`.
- 19. Ctypesgen (OPTIONAL)
+ 20. Ctypesgen (OPTIONAL)
Ctypesgen is Python wrapper generator for ctypes. It is used to generate
a part of Subversion Ctypes Python bindings (CSVN). If you want to build
@@ -500,7 +574,8 @@ I. INTRODUCTION
For more information on CSVN, see subversion/bindings/ctypes-python/README.
- 20. libmagic (OPTIONAL)
+
+ 21. libmagic (OPTIONAL)
Subversion's configure script attempts to find libmagic automatically.
If it is installed in a non-standard location, then use:
@@ -521,11 +596,6 @@ I. INTRODUCTION
--with-libmagic
- 21. Googlemock (OPTIONAL)
-
- Googlemock can be installed and built in-tree by invoking
-
- $ ./get-dep.sh gmock
22. LZ4 (OPTIONAL)
@@ -540,6 +610,32 @@ I. INTRODUCTION
If configure should use the version bundled with the sources, use:
--with-lz4=internal
+
+ 23. py3c (OPTIONAL)
+
+ Subversion uses the Python 3 Compatibility Layer for C
+ Extensions (py3c) library when building the Python language
+ bindings.
+
+ As py3c is a header-only library, it is needed only to build the
+ bindings, not to use them.
+
+ Configure will attempt to locate py3c by default using
+ pkg-config and known paths.
+
+ If it is installed in a non-standard location, then use:
+
+ --with-py3c=/path/to/py3c/prefix
+
+ The library can be downloaded from GitHub:
+
+ https://github.com/encukou/py3c
+
+ On Unix systems, you can also use the provided get-deps.sh
+ script to download py3c and several other dependencies; see the
+ top of section I.C for more about get-deps.sh.
+
+
D. Documentation
The primary documentation for Subversion is the free book
@@ -731,13 +827,12 @@ II. INSTALLATION
Edition). Make sure you enable C++ support during setup.
* Python 2.7 or higher, downloaded from https://www.python.org/ which is
used to generate the project files.
- Note that Python 3.x is not supported (yet).
* Perl 5.8 or higher from https://www.perl.org/get.html
* Awk (from https://www.cs.princeton.edu/~bwk/btl.mirror/awk95.exe) is
needed to compile Apache. Note that this is the actual awk program,
not an installer - just rename it to awk.exe and it is ready to use.
* Apache apr, apr-util, and optionally apr-iconv libraries, version
- 1.3 or later (1.2 for apr-iconv). If you are building from a Subversion
+ 1.5 or later (1.2 for apr-iconv). If you are building from a Subversion
checkout and have not downloaded Apache 2, then get these 3 libraries
from https://www.apache.org/dist/apr/.
* SQLite 3.8.2 or higher from https://www.sqlite.org/download.html
@@ -856,11 +951,7 @@ II. INSTALLATION
E.4 Building the Binaries
- To build the binaries either follow the instructions here or use
- build\win32\vc6-build.bat.in after editing its default paths to match
- yours and saving it as vc6-build.bat. The vc6-build.bat does a full build
- using all options so it requires Apache 2 source and the other optional
- components.
+ To build the binaries either follow these instructions.
Start in the SVN directory you created.
@@ -922,7 +1013,7 @@ II. INSTALLATION
C:>nmake -f Makefile.win
C:>nmake -f Makefile.win install
- Please refere to the build instructions provided by the library source
+ Please refer to the build instructions provided by the library source
for actual build instructions.
ZLib
@@ -931,7 +1022,7 @@ II. INSTALLATION
Building ZLib using Visual Studio should be quite simple. Just open the
appropriate solution and build the project zlibstat using the IDE.
- Please refere to the build instructions provided by the library source
+ Please refer to the build instructions provided by the library source
for actual build instructions.
Note that you'd make sure to define ZLIB_WINAPI in the ZLib config
diff --git a/LICENSE b/LICENSE
index 5e9188ca232e..cdc6dbdcf38c 100644
--- a/LICENSE
+++ b/LICENSE
@@ -423,3 +423,24 @@ For the (modified) LZ4 library files in subversion/libsvn_subr/lz4
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
+
+For the Autoconf Archive macros for Boost:
+
+ * in build/ac-macros/ax_boost_base.m4:
+
+ Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
+ Copyright (c) 2009 Peter Adolphs
+
+ Copying and distribution of this file, with or without modification, are
+ permitted in any medium without royalty provided the copyright notice
+ and this notice are preserved. This file is offered as-is, without any
+ warranty.
+
+ * in build/ac-macros/ax_boost_unit_test_framework.m4:
+
+ Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
+
+ Copying and distribution of this file, with or without modification, are
+ permitted in any medium without royalty provided the copyright notice
+ and this notice are preserved. This file is offered as-is, without any
+ warranty.
diff --git a/Makefile.in b/Makefile.in
index f4c6e61b9397..48a14bf80329 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -56,6 +56,8 @@ SVN_XML_LIBS = @SVN_XML_LIBS@
SVN_ZLIB_LIBS = @SVN_ZLIB_LIBS@
SVN_LZ4_LIBS = @SVN_LZ4_LIBS@
SVN_UTF8PROC_LIBS = @SVN_UTF8PROC_LIBS@
+SVN_MACOS_PLIST_LIBS = @SVN_MACOS_PLIST_LIBS@
+SVN_MACOS_KEYCHAIN_LIBS = @SVN_MACOS_KEYCHAIN_LIBS@
LIBS = @LIBS@
@@ -78,6 +80,9 @@ datadir = @datadir@
datarootdir = @datarootdir@
localedir = @localedir@
+# where to install SVN++
+svnxx_libdir = @libdir@
+
# where to install libsvn_swig_*
swig_py_libdir = @libdir@
swig_pl_libdir = @libdir@
@@ -139,16 +144,17 @@ APACHE_INCLUDES = @APACHE_INCLUDES@
APACHE_LIBEXECDIR = $(DESTDIR)@APACHE_LIBEXECDIR@
APACHE_LDFLAGS = @APACHE_LDFLAGS@
-SVN_USE_GOOGLEMOCK = @SVN_USE_GOOGLEMOCK@
-GOOGLEMOCK_INCLUDES = -I@GOOGLEMOCK_SRCDIR@/googlemock/include -I@GOOGLEMOCK_SRCDIR@/googletest/include
-GOOGLEMOCK_LIB_INCLUDES = -I@GOOGLEMOCK_SRCDIR@/googlemock -I@GOOGLEMOCK_SRCDIR@/googletest $(GOOGLEMOCK_INCLUDES)
+BOOST_TEST_CPPFLAGS = @BOOST_CPPFLAGS@ -DBOOST_TEST_DYN_LINK -DBOOST_TEST_NO_MAIN
+BOOST_TEST_LDFLAGS = @BOOST_LDFLAGS@ @BOOST_UNIT_TEST_FRAMEWORK_LIB@
SWIG = @SWIG@
-SWIG_PY_INCLUDES = @SWIG_PY_INCLUDES@ -I$(SWIG_SRC_DIR)/python/libsvn_swig_py
+SWIG_PY_INCLUDES = @SWIG_PY_INCLUDES@ @SVN_PY3C_INCLUDES@ -I$(SWIG_SRC_DIR)/python/libsvn_swig_py
SWIG_PY_COMPILE = @SWIG_PY_COMPILE@
SWIG_PY_LINK = @SWIG_PY_LINK@
SWIG_PY_LIBS = @SWIG_PY_LIBS@
+SWIG_PY_ERRMSG = @SWIG_PY_ERRMSG@
SWIG_PL_INCLUDES = @SWIG_PL_INCLUDES@
+SWIG_PL_ERRMSG = @SWIG_PL_ERRMSG@
SWIG_RB_INCLUDES = @SWIG_RB_INCLUDES@ -I$(SWIG_SRC_DIR)/ruby/libsvn_swig_ruby
SWIG_RB_COMPILE = @SWIG_RB_COMPILE@
SWIG_RB_LINK = @SWIG_RB_LINK@
@@ -157,6 +163,7 @@ SWIG_RB_SITE_LIB_DIR = @SWIG_RB_SITE_LIB_DIR@
SWIG_RB_SITE_ARCH_DIR = @SWIG_RB_SITE_ARCH_DIR@
SWIG_RB_TEST_VERBOSE = @SWIG_RB_TEST_VERBOSE@
SWIG_RB_RI_DATADIR = $(DESTDIR)$(datadir)/ri/$(RUBY_MAJOR).$(RUBY_MINOR)/site
+SWIG_RB_ERRMSG = @SWIG_RB_ERRMSG@
CTYPESGEN = @CTYPESGEN@
CTYPES_PYTHON_SRC_DIR = $(abs_srcdir)/subversion/bindings/ctypes-python
@@ -164,7 +171,9 @@ CTYPES_PYTHON_SRC_DIR = $(abs_srcdir)/subversion/bindings/ctypes-python
JAVAHL_JAR=subversion/bindings/javahl/svn-javahl.jar
JAVAHL_INCLUDES= @JNI_INCLUDES@ -I$(abs_builddir)/subversion/bindings/javahl/include
-CXXHL_INCLUDES = -I$(abs_srcdir)/subversion/bindings/cxxhl/include
+SVN_BUILD_SVNXX = @SVN_BUILD_SVNXX@
+SVN_BUILD_SVNXX_TESTS = @SVN_BUILD_SVNXX_TESTS@
+SVNXX_INCLUDES = -I$(abs_srcdir)/subversion/bindings/cxx/include
SVN_APR_CONFIG = @SVN_APR_CONFIG@
SVN_APR_INCLUDES = @SVN_APR_INCLUDES@
@@ -194,6 +203,7 @@ SWIG_FEATURES = @SWIG_FEATURES@
SWIG_PY_FEATURES = @SWIG_PY_FEATURES@
SWIG_PL_FEATURES = @SWIG_PL_FEATURES@
SWIG_RB_FEATURES = @SWIG_RB_FEATURES@
+SWIG_PY_OPTS = @SWIG_PY_OPTS@
COMPILE = $(CC) $(CMODEFLAGS) $(CPPFLAGS) $(CMAINTAINERFLAGS) $(CFLAGS) $(INCLUDES)
COMPILE_NOWARN = $(CC) $(CMODEFLAGS) $(CPPFLAGS) $(CNOWARNFLAGS) $(CFLAGS) $(INCLUDES)
@@ -218,7 +228,6 @@ COMPILE_SWIG_RB = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_RB_COMPILE) $(CPPF
# special compilation for files destined for javahl (i.e. C++)
COMPILE_JAVAHL_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=compile $(COMPILE_CXX) $(LT_CFLAGS) $(JAVAHL_INCLUDES) -o $@ -c
COMPILE_JAVAHL_JAVAC = $(JAVAC) $(JAVAC_FLAGS)
-COMPILE_JAVAHL_JAVAH = $(JAVAH)
COMPILE_JAVAHL_COMPAT_JAVAC = $(JAVAC) $(JAVAC_COMPAT_FLAGS)
# On Mac OS X, export an env variable so that the tests can run without
@@ -259,15 +268,15 @@ TEST_SHLIB_VAR_SWIG_RB=\
export @SVN_APR_SHLIB_PATH_VAR@; \
fi;
-# special compilation for files destined for cxxhl
-COMPILE_CXXHL_CXX = $(LT_COMPILE_CXX) $(CXXHL_INCLUDES) -o $@ -c
-COMPILE_GOOGLEMOCK_CXX = $(LT_COMPILE_CXX_NOWARN) $(GOOGLEMOCK_LIB_INCLUDES) -o $@ -c
-COMPILE_CXXHL_GOOGLEMOCK_CXX = $(LT_COMPILE_CXX) $(CXXHL_INCLUDES) $(GOOGLEMOCK_INCLUDES) -o $@ -c
+# special compilation for files destined for SVN++
+COMPILE_SVNXX = $(LT_COMPILE_CXX) $(SVNXX_INCLUDES) -o $@ -c
+COMPILE_SVNXX_TEST = $(LT_COMPILE_CXX) $(SVNXX_INCLUDES) $(BOOST_TEST_CPPFLAGS) -o $@ -c
LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(libdir)
LINK_LIB = $(LINK) $(LT_SO_VERSION)
LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)
LINK_CXX_LIB = $(LINK_CXX) $(LT_SO_VERSION)
+LINK_SVNXX_TEST = $(LINK_CXX) $(BOOST_TEST_LDFLAGS)
# special link rule for mod_dav_svn
LINK_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(APACHE_LIBEXECDIR) -avoid-version -module $(APACHE_LDFLAGS) -shared
@@ -321,6 +330,8 @@ INSTALL_DATA = $(INSTALL) -m 644
INSTALL_LOCALE = $(INSTALL_DATA)
INSTALL_APACHE_MODS = @INSTALL_APACHE_MODS@
+INSTALL_SVNXX_LIB = $(INSTALL_LIB)
+
### this isn't correct yet
INSTALL_SWIG_PY = $(INSTALL_LIB)
INSTALL_SWIG_PY_LIB = $(INSTALL_LIB)
@@ -393,7 +404,6 @@ JAVAC = @JAVAC@
JAVADOC = @JAVADOC@
JAVAC_FLAGS = @JAVAC_FLAGS@
JAVAC_COMPAT_FLAGS = @JAVAC_COMPAT_FLAGS@
-JAVAH = @JAVAH@
JAR = @JAR@
JAVA_CLASSPATH=$(abs_srcdir)/subversion/bindings/javahl/src:@JAVA_CLASSPATH@
@@ -494,8 +504,8 @@ revision-install:
install-static: @INSTALL_STATIC_RULES@
# JavaHL target aliases
-javahl: mkdir-init javahl-java javahl-javah javahl-callback-javah javahl-remote-javah javahl-types-javah javahl-util-javah javahl-lib @JAVAHL_TESTS_TARGET@ javahl-compat
-install-javahl: javahl install-javahl-java install-javahl-javah install-javahl-lib
+javahl: mkdir-init javahl-java javahl-callback-java javahl-remote-java javahl-types-java javahl-util-java javahl-lib @JAVAHL_TESTS_TARGET@ javahl-compat
+install-javahl: javahl install-javahl-java install-javahl-lib
javahl-compat: javahl-compat-java @JAVAHL_COMPAT_TESTS_TARGET@
clean-javahl:
@@ -526,6 +536,9 @@ check-javahl: check-apache-javahl
check-all-javahl: check-apache-javahl check-tigris-javahl check-deprecated-authn-javahl
+check-svnxx: svnxx-tests
+ $(abs_builddir)/$(svnxx_tests_PATH)/svnxx-tests$(EXEEXT)
+
# "make check CLEANUP=true" will clean up directories for successful tests.
# "make check TESTS=subversion/tests/cmdline/basic_tests.py"
# will perform only basic tests (likewise for other tests).
@@ -601,6 +614,9 @@ check: bin @TRANSFORM_LIBTOOL_SCRIPTS@ $(TEST_DEPS) @BDB_TEST_DEPS@
if test "$(FSFS_DIR_DELTIFICATION)" != ""; then \
flags="--fsfs-dir-deltification $(FSFS_DIR_DELTIFICATION) $$flags";\
fi; \
+ if test "$(ALLOW_REMOTE_HTTP_CONNECTION)" != ""; then \
+ flags="--allow-remote-http-connection $$flags"; \
+ fi; \
if test "$(SVN_BIN_DIR)" != ""; then \
flags="--bin $(SVN_BIN_DIR) $$flags"; \
fi; \
@@ -674,7 +690,7 @@ gcov-reset:
gcov-clean:
rm -f gcov-lcov.dat gcov-lcov.log gcov-genhtml.log
rm -rf gcov-report
- find . -name "*.gcda" -o -name "*.gcno" -exec rm -f -- {} \;
+ find . \( -name "*.gcda" -o -name "*.gcno" \) -exec rm -f -- {} \;
check-clean: gcov-clean
if [ -d subversion/tests/cmdline/svn-test-work ]; then \
@@ -694,7 +710,8 @@ check-clean: gcov-clean
subversion/tests/libsvn_diff/T1 \
subversion/tests/libsvn_diff/T2 \
subversion/tests/libsvn_diff/T3 \
- subversion/tests/svnserveautocheck.pid \
+ subversion/tests/cmdline/httpd-* \
+ subversion/tests/cmdline/svnserve-* \
tests.log fails.log
mkdir-init:
@@ -895,6 +912,7 @@ EXTRACLEAN_SWIG_PL=rm -f $(SWIG_PL_SRC_DIR)/native/svn_*.c \
# Makefile does not exist, DO NOT try to make it. But, if it doesn't exist,
# then the directory is probably clean anyway.
clean-swig-pl:
+ rm -f .swig_pl_checked
if test -z "$(RELEASE_MODE)"; then \
$(EXTRACLEAN_SWIG_PL); \
fi
@@ -917,6 +935,7 @@ copy-swig-py: autogen-swig-py $(SWIG_PY_DIR)/libsvn
@for f in $(SWIG_PY_SRC_DIR)/*.py $(SWIG_PY_DIR)/*.py; do \
! [ -f "$$f" ] || cp -pf $$f $(SWIG_PY_DIR)/libsvn; \
done
+ @cd $(SWIG_PY_DIR)/libsvn;ln -sf ../.libs/*.so .
@touch $(SWIG_PY_DIR)/libsvn/__init__.py
swig-py: autogen-swig-py copy-swig-py
@@ -926,9 +945,10 @@ check-swig-py: swig-py
cd $(SWIG_PY_DIR); \
$(PYTHON) $(SWIG_PY_SRC_DIR)/tests/run_all.py
-EXTRACLEAN_SWIG_PY=rm -rf $(SWIG_PY_SRC_DIR)/svn_*.c $(SWIG_PY_SRC_DIR)/core.c \
- $(SWIG_PY_SRC_DIR)/[a-z]*.py
+EXTRACLEAN_SWIG_PY=rm -rf $(SWIG_PY_DIR)/svn_*.c $(SWIG_PY_DIR)/core.c \
+ $(SWIG_PY_DIR)/[a-z]*.py
clean-swig-py:
+ rm -f .swig_py_checked
rm -rf $(SWIG_PY_DIR)/libsvn
if test -z "$(RELEASE_MODE)"; then \
$(EXTRACLEAN_SWIG_PY); \
@@ -961,6 +981,7 @@ check-swig-rb: swig-rb svnserve
EXTRACLEAN_SWIG_RB=rm -f $(SWIG_RB_SRC_DIR)/svn_*.c $(SWIG_RB_SRC_DIR)/core.c
clean-swig-rb:
+ rm -f .swig_rb_checked
rm -rf $(SWIG_RB_DIR)/test/repos $(SWIG_RB_DIR)/test/wc
if test -z "$(RELEASE_MODE)"; then \
$(EXTRACLEAN_SWIG_RB); \
diff --git a/NOTICE b/NOTICE
index 59e6419187a8..a3e794d536e7 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,5 +1,5 @@
Apache Subversion
-Copyright 2018 The Apache Software Foundation
+Copyright 2020 The Apache Software Foundation
This product includes software developed by many people, and distributed
under Contributor License Agreements to The Apache Software Foundation
@@ -29,3 +29,6 @@ license, see LICENSE.
This product includes code derived from the software developed by Yann Collet
under a BSD 2-Clause license, see LICENSE.
+
+This product includes code derived from the software developed by Thomas
+Porschberg and Peter Adolphs under a permissive license, see LICENSE.
diff --git a/aclocal.m4 b/aclocal.m4
index 0bf9a1d93ee4..e198ee6d02c8 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -35,6 +35,8 @@ sinclude(build/ac-macros/apache.m4)
sinclude(build/ac-macros/apr.m4)
sinclude(build/ac-macros/aprutil.m4)
sinclude(build/ac-macros/apr_memcache.m4)
+sinclude(build/ac-macros/ax_boost_base.m4)
+sinclude(build/ac-macros/ax_boost_unit_test_framework.m4)
sinclude(build/ac-macros/berkeley-db.m4)
sinclude(build/ac-macros/compiler.m4)
sinclude(build/ac-macros/ctypesgen.m4)
@@ -42,6 +44,7 @@ sinclude(build/ac-macros/java.m4)
sinclude(build/ac-macros/sasl.m4)
sinclude(build/ac-macros/serf.m4)
sinclude(build/ac-macros/sqlite.m4)
+sinclude(build/ac-macros/py3c.m4)
sinclude(build/ac-macros/swig.m4)
sinclude(build/ac-macros/zlib.m4)
sinclude(build/ac-macros/lz4.m4)
diff --git a/autogen.sh b/autogen.sh
index e1961d6ffd34..84a6e2ca33cc 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -176,7 +176,7 @@ if test -n "$RELEASE_MODE"; then
"$PYTHON" ./gen-make.py build.conf || gen_failed=1
# Build the SWIG-related files
- make -f autogen-standalone.mk autogen-swig
+ make -f autogen-standalone.mk autogen-swig || gen_failed=1
# Remove the .swig_checked file
rm -f .swig_checked
diff --git a/build-outputs.mk b/build-outputs.mk
index 7948a51df4de..aee265351a80 100644
--- a/build-outputs.mk
+++ b/build-outputs.mk
@@ -23,21 +23,21 @@ RA_SERF_LINK = ../../subversion/libsvn_ra_serf/libsvn_ra_serf-1.la ../../subvers
RA_SVN_DEPS = subversion/libsvn_ra_svn/libsvn_ra_svn-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_subr/libsvn_subr-1.la
RA_SVN_LINK = ../../subversion/libsvn_ra_svn/libsvn_ra_svn-1.la ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la
-BUILD_DIRS = subversion/tests/afl subversion/tests/cmdline subversion/tests/libsvn_subr subversion/tests/libsvn_repos subversion/tests/libsvn_fs_base subversion/tests/libsvn_client subversion/tests/libsvn_wc subversion/tests/libsvn_client/../libsvn_wc subversion/bindings/cxxhl subversion/bindings/cxxhl/tests tools/diff subversion/tests/libsvn_diff subversion/tests/libsvn_fs_fs subversion/tests/libsvn_fs subversion/tests/libsvn_fs_x tools/dev subversion/bindings/javahl/src/org/apache/subversion/javahl/callback subversion/bindings/javahl/classes subversion/bindings/javahl/include subversion/bindings/javahl/src/org/tigris/subversion/javahl subversion/bindings/javahl/tests/org/tigris/subversion/javahl subversion/bindings/javahl/src/org/apache/subversion/javahl subversion/bindings/javahl/src/org/apache/subversion/javahl/remote subversion/bindings/javahl/src/org/apache/subversion/javahl/types subversion/bindings/javahl/src/org/apache/subversion/javahl/util subversion/bindings/javahl/tests/org/apache/subversion/javahl googlemock googlemock/googletest/src googlemock/googlemock/src subversion/libsvn_auth_gnome_keyring subversion/libsvn_auth_kwallet subversion/libsvn_client subversion/libsvn_delta subversion/libsvn_diff subversion/libsvn_fs subversion/libsvn_fs_base subversion/libsvn_fs_base/bdb subversion/libsvn_fs_base/util subversion/libsvn_fs_fs subversion/libsvn_fs_util subversion/libsvn_fs_x subversion/libsvn_ra subversion/libsvn_ra_local subversion/libsvn_ra_serf subversion/libsvn_ra_svn subversion/libsvn_repos subversion/libsvn_subr subversion/libsvn_subr/lz4 subversion/bindings/swig/perl/libsvn_swig_perl subversion/bindings/swig/python/libsvn_swig_py subversion/bindings/swig/ruby/libsvn_swig_ruby subversion/tests subversion/libsvn_wc subversion/bindings/cxxhl/src subversion/bindings/cxxhl/src/aprwrap subversion/bindings/javahl/native subversion/bindings/javahl/native/jniwrapper subversion/po subversion/mod_authz_svn subversion/mod_dav_svn subversion/mod_dav_svn/reports subversion/mod_dav_svn/posts tools/server-side/mod_dontdothat subversion/tests/libsvn_ra_local subversion/tests/libsvn_ra subversion/tests/libsvn_delta subversion/svn tools/client-side/svn-mergeinfo-normalizer tools/server-side tools/dev/wc-ng subversion/svnadmin subversion/svnbench tools/client-side/svnconflict subversion/svndumpfilter subversion/svnfsfs subversion/svnlook tools/dev/svnmover subversion/svnmucc tools/dev/svnraisetreeconflict subversion/svnrdump subversion/svnserve subversion/svnsync subversion/svnversion subversion/bindings/swig subversion/tests/libsvn_wc/../../libsvn_subr subversion/bindings/swig/python subversion/bindings/swig/perl subversion/bindings/swig/ruby subversion/bindings/swig/proxy
+BUILD_DIRS = subversion/tests/afl subversion/tests/cmdline subversion/tests/libsvn_subr subversion/tests/libsvn_repos subversion/tests/libsvn_fs_base subversion/tests/libsvn_client subversion/tests/libsvn_wc subversion/tests/libsvn_client/../libsvn_wc tools/diff subversion/tests/libsvn_diff subversion/tests/libsvn_fs_fs subversion/tests/libsvn_fs subversion/tests/libsvn_fs_x tools/dev subversion/bindings/javahl/src/org/apache/subversion/javahl/callback subversion/bindings/javahl/classes subversion/bindings/javahl/include subversion/bindings/javahl/src/org/tigris/subversion/javahl subversion/bindings/javahl/tests/org/tigris/subversion/javahl subversion/bindings/javahl/src/org/apache/subversion/javahl subversion/bindings/javahl/src/org/apache/subversion/javahl/remote subversion/bindings/javahl/tests/org/apache/subversion/javahl subversion/bindings/javahl/src/org/apache/subversion/javahl/types subversion/bindings/javahl/src/org/apache/subversion/javahl/util subversion/libsvn_auth_gnome_keyring subversion/libsvn_auth_kwallet subversion/libsvn_client subversion/libsvn_delta subversion/libsvn_diff subversion/libsvn_fs subversion/libsvn_fs_base subversion/libsvn_fs_base/bdb subversion/libsvn_fs_base/util subversion/libsvn_fs_fs subversion/libsvn_fs_util subversion/libsvn_fs_x subversion/libsvn_ra subversion/libsvn_ra_local subversion/libsvn_ra_serf subversion/libsvn_ra_svn subversion/libsvn_repos subversion/libsvn_subr subversion/libsvn_subr/lz4 subversion/bindings/swig/perl/libsvn_swig_perl subversion/bindings/swig/python/libsvn_swig_py subversion/bindings/swig/ruby/libsvn_swig_ruby subversion/tests subversion/libsvn_wc subversion/bindings/javahl/native subversion/bindings/javahl/native/jniwrapper subversion/bindings/cxx subversion/bindings/cxx/src subversion/bindings/cxx/src/aprwrap subversion/po subversion/mod_authz_svn subversion/mod_dav_svn subversion/mod_dav_svn/reports subversion/mod_dav_svn/posts tools/server-side/mod_dontdothat subversion/tests/libsvn_ra_local subversion/tests/libsvn_ra subversion/tests/libsvn_delta subversion/svn tools/client-side/svn-mergeinfo-normalizer tools/server-side tools/dev/wc-ng subversion/svnadmin subversion/svnbench tools/client-side/svnconflict subversion/svndumpfilter subversion/svnfsfs subversion/svnlook tools/dev/svnmover subversion/svnmucc tools/dev/svnraisetreeconflict subversion/svnrdump subversion/svnserve subversion/svnsync subversion/svnversion subversion/bindings/cxx/tests subversion/bindings/swig subversion/tests/libsvn_wc/../../libsvn_subr subversion/bindings/swig/python subversion/bindings/swig/perl subversion/bindings/swig/ruby subversion/bindings/swig/proxy
BDB_TEST_DEPS = subversion/tests/libsvn_fs_base/changes-test$(EXEEXT) subversion/tests/libsvn_fs_base/fs-base-test$(EXEEXT) subversion/tests/libsvn_fs_base/strings-reps-test$(EXEEXT)
BDB_TEST_PROGRAMS = subversion/tests/libsvn_fs_base/changes-test$(EXEEXT) subversion/tests/libsvn_fs_base/fs-base-test$(EXEEXT) subversion/tests/libsvn_fs_base/strings-reps-test$(EXEEXT)
-TEST_DEPS = subversion/tests/afl/afl-x509$(EXEEXT) subversion/tests/cmdline/atomic-ra-revprop-change$(EXEEXT) subversion/tests/libsvn_subr/auth-test$(EXEEXT) subversion/tests/libsvn_repos/authz-test$(EXEEXT) subversion/tests/libsvn_subr/bit-array-test$(EXEEXT) subversion/tests/libsvn_subr/cache-test$(EXEEXT) subversion/tests/libsvn_subr/checksum-test$(EXEEXT) subversion/tests/libsvn_client/client-test$(EXEEXT) subversion/tests/libsvn_subr/compat-test$(EXEEXT) subversion/tests/libsvn_subr/compress-test$(EXEEXT) subversion/tests/libsvn_subr/config-test$(EXEEXT) subversion/tests/libsvn_wc/conflict-data-test$(EXEEXT) subversion/tests/libsvn_client/conflicts-test$(EXEEXT) subversion/tests/libsvn_subr/crypto-test$(EXEEXT) subversion/tests/libsvn_wc/db-test$(EXEEXT) subversion/tests/libsvn_diff/diff-diff3-test$(EXEEXT) subversion/tests/libsvn_subr/dirent_uri-test$(EXEEXT) subversion/tests/libsvn_repos/dump-load-test$(EXEEXT) subversion/tests/libsvn_wc/entries-compat-test$(EXEEXT) subversion/tests/cmdline/entries-dump$(EXEEXT) subversion/tests/libsvn_subr/error-code-test$(EXEEXT) subversion/tests/libsvn_subr/error-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-pack-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-private-test$(EXEEXT) subversion/tests/libsvn_fs/fs-sequential-test$(EXEEXT) subversion/tests/libsvn_fs/fs-test$(EXEEXT) subversion/tests/libsvn_fs_x/fs-x-pack-test$(EXEEXT) subversion/tests/libsvn_subr/hashdump-test$(EXEEXT) subversion/tests/libsvn_subr/io-test$(EXEEXT) subversion/tests/cmdline/lock-helper$(EXEEXT) subversion/tests/libsvn_fs/locks-test$(EXEEXT) subversion/tests/libsvn_subr/mergeinfo-test$(EXEEXT) subversion/tests/libsvn_client/mtcc-test$(EXEEXT) subversion/tests/libsvn_wc/op-depth-test$(EXEEXT) subversion/tests/libsvn_subr/opt-test$(EXEEXT) subversion/tests/libsvn_subr/packed-data-test$(EXEEXT) subversion/tests/libsvn_diff/parse-diff-test$(EXEEXT) subversion/tests/libsvn_subr/path-test$(EXEEXT) subversion/tests/libsvn_subr/prefix-string-test$(EXEEXT) subversion/tests/libsvn_subr/priority-queue-test$(EXEEXT) subversion/tests/libsvn_wc/pristine-store-test$(EXEEXT) subversion/tests/libsvn_ra_local/ra-local-test$(EXEEXT) subversion/tests/libsvn_ra/ra-test$(EXEEXT) subversion/tests/libsvn_delta/random-test$(EXEEXT) subversion/tests/libsvn_repos/repos-test$(EXEEXT) subversion/tests/libsvn_subr/revision-test$(EXEEXT) subversion/tests/libsvn_subr/root-pools-test$(EXEEXT) subversion/tests/libsvn_subr/skel-test$(EXEEXT) subversion/tests/libsvn_subr/spillbuf-test$(EXEEXT) subversion/tests/libsvn_subr/sqlite-test$(EXEEXT) subversion/tests/libsvn_subr/stream-test$(EXEEXT) subversion/tests/libsvn_fs_x/string-table-test$(EXEEXT) subversion/tests/libsvn_subr/string-test$(EXEEXT) subversion/tests/libsvn_subr/subst_translate-test$(EXEEXT) tools/dev/wc-ng/svn-wc-db-tester$(EXEEXT) tools/server-side/svnauthz$(EXEEXT) tools/server-side/svnauthz-validate$(EXEEXT) subversion/tests/libsvn_delta/svndiff-stream-test$(EXEEXT) subversion/tests/libsvn_delta/svndiff-test$(EXEEXT) subversion/tests/libsvn_subr/time-test$(EXEEXT) subversion/tests/libsvn_subr/translate-test$(EXEEXT) subversion/tests/libsvn_subr/utf-test$(EXEEXT) subversion/tests/libsvn_delta/vdelta-test$(EXEEXT) subversion/tests/libsvn_wc/wc-incomplete-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-lock-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-queries-test$(EXEEXT) subversion/tests/libsvn_wc/wc-test$(EXEEXT) subversion/tests/libsvn_delta/window-test$(EXEEXT) subversion/tests/libsvn_subr/x509-test$(EXEEXT) subversion/tests/libsvn_subr/xml-test$(EXEEXT) subversion/tests/cmdline/authz_tests.py subversion/tests/cmdline/autoprop_tests.py subversion/tests/cmdline/basic_tests.py subversion/tests/cmdline/blame_tests.py subversion/tests/cmdline/cat_tests.py subversion/tests/cmdline/changelist_tests.py subversion/tests/cmdline/checkout_tests.py subversion/tests/cmdline/commit_tests.py subversion/tests/cmdline/copy_tests.py subversion/tests/cmdline/depth_tests.py subversion/tests/cmdline/diff_tests.py subversion/tests/cmdline/entries_tests.py subversion/tests/cmdline/export_tests.py subversion/tests/cmdline/externals_tests.py subversion/tests/cmdline/getopt_tests.py subversion/tests/cmdline/history_tests.py subversion/tests/cmdline/import_tests.py subversion/tests/cmdline/info_tests.py subversion/tests/cmdline/input_validation_tests.py subversion/tests/cmdline/iprop_authz_tests.py subversion/tests/cmdline/iprop_tests.py subversion/tests/cmdline/lock_tests.py subversion/tests/cmdline/log_tests.py subversion/tests/cmdline/merge_authz_tests.py subversion/tests/cmdline/merge_automatic_tests.py subversion/tests/cmdline/merge_reintegrate_tests.py subversion/tests/cmdline/merge_tests.py subversion/tests/cmdline/merge_tree_conflict_tests.py subversion/tests/cmdline/mergeinfo_tests.py subversion/tests/cmdline/mod_authz_svn_tests.py subversion/tests/cmdline/mod_dav_svn_tests.py subversion/tests/cmdline/move_tests.py subversion/tests/cmdline/patch_tests.py subversion/tests/cmdline/prop_tests.py subversion/tests/cmdline/redirect_tests.py subversion/tests/cmdline/relocate_tests.py subversion/tests/cmdline/resolve_tests.py subversion/tests/cmdline/revert_tests.py subversion/tests/cmdline/schedule_tests.py subversion/tests/cmdline/shelve_tests.py subversion/tests/cmdline/special_tests.py subversion/tests/cmdline/stat_tests.py subversion/tests/cmdline/svnadmin_tests.py subversion/tests/cmdline/svnauthz_tests.py subversion/tests/cmdline/svndumpfilter_tests.py subversion/tests/cmdline/svnfsfs_tests.py subversion/tests/cmdline/svnlook_tests.py subversion/tests/cmdline/svnmover_tests.py subversion/tests/cmdline/svnmucc_tests.py subversion/tests/cmdline/svnrdump_tests.py subversion/tests/cmdline/svnsync_authz_tests.py subversion/tests/cmdline/svnsync_tests.py subversion/tests/cmdline/svnversion_tests.py subversion/tests/cmdline/switch_tests.py subversion/tests/cmdline/trans_tests.py subversion/tests/cmdline/tree_conflict_tests.py subversion/tests/cmdline/update_tests.py subversion/tests/cmdline/upgrade_tests.py subversion/tests/cmdline/wc_tests.py
+TEST_DEPS = subversion/tests/afl/afl-svndiff$(EXEEXT) subversion/tests/afl/afl-x509$(EXEEXT) subversion/tests/cmdline/atomic-ra-revprop-change$(EXEEXT) subversion/tests/libsvn_subr/auth-test$(EXEEXT) subversion/tests/libsvn_repos/authz-test$(EXEEXT) subversion/tests/libsvn_subr/bit-array-test$(EXEEXT) subversion/tests/libsvn_subr/cache-test$(EXEEXT) subversion/tests/libsvn_subr/checksum-test$(EXEEXT) subversion/tests/libsvn_client/client-test$(EXEEXT) subversion/tests/libsvn_subr/compat-test$(EXEEXT) subversion/tests/libsvn_subr/compress-test$(EXEEXT) subversion/tests/libsvn_subr/config-test$(EXEEXT) subversion/tests/libsvn_wc/conflict-data-test$(EXEEXT) subversion/tests/libsvn_client/conflicts-test$(EXEEXT) subversion/tests/libsvn_subr/crypto-test$(EXEEXT) subversion/tests/libsvn_wc/db-test$(EXEEXT) subversion/tests/libsvn_diff/diff-diff3-test$(EXEEXT) subversion/tests/libsvn_subr/dirent_uri-test$(EXEEXT) subversion/tests/libsvn_repos/dump-load-test$(EXEEXT) subversion/tests/libsvn_wc/entries-compat-test$(EXEEXT) subversion/tests/cmdline/entries-dump$(EXEEXT) subversion/tests/libsvn_subr/error-code-test$(EXEEXT) subversion/tests/libsvn_subr/error-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-pack-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-private-test$(EXEEXT) subversion/tests/libsvn_fs/fs-sequential-test$(EXEEXT) subversion/tests/libsvn_fs/fs-test$(EXEEXT) subversion/tests/libsvn_fs_x/fs-x-pack-test$(EXEEXT) subversion/tests/libsvn_subr/hashdump-test$(EXEEXT) subversion/tests/libsvn_subr/io-test$(EXEEXT) subversion/tests/cmdline/lock-helper$(EXEEXT) subversion/tests/libsvn_fs/locks-test$(EXEEXT) subversion/tests/libsvn_subr/mergeinfo-test$(EXEEXT) subversion/tests/libsvn_client/mtcc-test$(EXEEXT) subversion/tests/libsvn_wc/op-depth-test$(EXEEXT) subversion/tests/libsvn_subr/opt-test$(EXEEXT) subversion/tests/libsvn_subr/packed-data-test$(EXEEXT) subversion/tests/libsvn_diff/parse-diff-test$(EXEEXT) subversion/tests/libsvn_subr/path-test$(EXEEXT) subversion/tests/libsvn_subr/prefix-string-test$(EXEEXT) subversion/tests/libsvn_subr/priority-queue-test$(EXEEXT) subversion/tests/libsvn_wc/pristine-store-test$(EXEEXT) subversion/tests/libsvn_ra_local/ra-local-test$(EXEEXT) subversion/tests/libsvn_ra/ra-test$(EXEEXT) subversion/tests/libsvn_delta/random-test$(EXEEXT) subversion/tests/libsvn_repos/repos-test$(EXEEXT) subversion/tests/libsvn_subr/revision-test$(EXEEXT) subversion/tests/libsvn_subr/root-pools-test$(EXEEXT) subversion/tests/libsvn_subr/skel-test$(EXEEXT) subversion/tests/libsvn_subr/spillbuf-test$(EXEEXT) subversion/tests/libsvn_subr/sqlite-test$(EXEEXT) subversion/tests/libsvn_subr/stream-test$(EXEEXT) subversion/tests/libsvn_fs_x/string-table-test$(EXEEXT) subversion/tests/libsvn_subr/string-test$(EXEEXT) subversion/tests/libsvn_subr/subst_translate-test$(EXEEXT) tools/dev/wc-ng/svn-wc-db-tester$(EXEEXT) tools/server-side/svnauthz$(EXEEXT) tools/server-side/svnauthz-validate$(EXEEXT) subversion/tests/libsvn_delta/svndiff-stream-test$(EXEEXT) subversion/tests/libsvn_delta/svndiff-test$(EXEEXT) tools/dev/svnmover/svnmover$(EXEEXT) subversion/tests/libsvn_subr/time-test$(EXEEXT) subversion/tests/libsvn_subr/translate-test$(EXEEXT) subversion/tests/libsvn_subr/utf-test$(EXEEXT) subversion/tests/libsvn_delta/vdelta-test$(EXEEXT) subversion/tests/libsvn_wc/wc-incomplete-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-lock-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-queries-test$(EXEEXT) subversion/tests/libsvn_wc/wc-test$(EXEEXT) subversion/tests/libsvn_delta/window-test$(EXEEXT) subversion/tests/libsvn_subr/x509-test$(EXEEXT) subversion/tests/libsvn_subr/xml-test$(EXEEXT) subversion/tests/cmdline/authz_tests.py subversion/tests/cmdline/autoprop_tests.py subversion/tests/cmdline/basic_tests.py subversion/tests/cmdline/blame_tests.py subversion/tests/cmdline/cat_tests.py subversion/tests/cmdline/changelist_tests.py subversion/tests/cmdline/checkout_tests.py subversion/tests/cmdline/commit_tests.py subversion/tests/cmdline/copy_tests.py subversion/tests/cmdline/dav_tests.py subversion/tests/cmdline/depth_tests.py subversion/tests/cmdline/diff_tests.py subversion/tests/cmdline/entries_tests.py subversion/tests/cmdline/export_tests.py subversion/tests/cmdline/externals_tests.py subversion/tests/cmdline/getopt_tests.py subversion/tests/cmdline/history_tests.py subversion/tests/cmdline/import_tests.py subversion/tests/cmdline/info_tests.py subversion/tests/cmdline/input_validation_tests.py subversion/tests/cmdline/iprop_authz_tests.py subversion/tests/cmdline/iprop_tests.py subversion/tests/cmdline/lock_tests.py subversion/tests/cmdline/log_tests.py subversion/tests/cmdline/merge_authz_tests.py subversion/tests/cmdline/merge_automatic_tests.py subversion/tests/cmdline/merge_reintegrate_tests.py subversion/tests/cmdline/merge_tests.py subversion/tests/cmdline/merge_tree_conflict_tests.py subversion/tests/cmdline/mergeinfo_tests.py subversion/tests/cmdline/mod_authz_svn_tests.py subversion/tests/cmdline/mod_dav_svn_tests.py subversion/tests/cmdline/move_tests.py subversion/tests/cmdline/patch_tests.py subversion/tests/cmdline/pegrev_parse_tests.py subversion/tests/cmdline/prop_tests.py subversion/tests/cmdline/redirect_tests.py subversion/tests/cmdline/relocate_tests.py subversion/tests/cmdline/resolve_tests.py subversion/tests/cmdline/revert_tests.py subversion/tests/cmdline/schedule_tests.py subversion/tests/cmdline/shelf2_tests.py subversion/tests/cmdline/shelf_tests.py subversion/tests/cmdline/special_tests.py subversion/tests/cmdline/stat_tests.py subversion/tests/cmdline/svnadmin_tests.py subversion/tests/cmdline/svnauthz_tests.py subversion/tests/cmdline/svndumpfilter_tests.py subversion/tests/cmdline/svnfsfs_tests.py subversion/tests/cmdline/svnlook_tests.py subversion/tests/cmdline/svnmover_tests.py subversion/tests/cmdline/svnmucc_tests.py subversion/tests/cmdline/svnrdump_tests.py subversion/tests/cmdline/svnsync_authz_tests.py subversion/tests/cmdline/svnsync_tests.py subversion/tests/cmdline/svnversion_tests.py subversion/tests/cmdline/switch_tests.py subversion/tests/cmdline/trans_tests.py subversion/tests/cmdline/tree_conflict_tests.py subversion/tests/cmdline/update_tests.py subversion/tests/cmdline/upgrade_tests.py subversion/tests/cmdline/wc_tests.py
-TEST_PROGRAMS = subversion/tests/libsvn_subr/auth-test$(EXEEXT) subversion/tests/libsvn_repos/authz-test$(EXEEXT) subversion/tests/libsvn_subr/bit-array-test$(EXEEXT) subversion/tests/libsvn_subr/cache-test$(EXEEXT) subversion/tests/libsvn_subr/checksum-test$(EXEEXT) subversion/tests/libsvn_client/client-test$(EXEEXT) subversion/tests/libsvn_subr/compat-test$(EXEEXT) subversion/tests/libsvn_subr/compress-test$(EXEEXT) subversion/tests/libsvn_subr/config-test$(EXEEXT) subversion/tests/libsvn_wc/conflict-data-test$(EXEEXT) subversion/tests/libsvn_client/conflicts-test$(EXEEXT) subversion/tests/libsvn_subr/crypto-test$(EXEEXT) subversion/tests/libsvn_wc/db-test$(EXEEXT) subversion/tests/libsvn_diff/diff-diff3-test$(EXEEXT) subversion/tests/libsvn_subr/dirent_uri-test$(EXEEXT) subversion/tests/libsvn_repos/dump-load-test$(EXEEXT) subversion/tests/libsvn_wc/entries-compat-test$(EXEEXT) subversion/tests/libsvn_subr/error-code-test$(EXEEXT) subversion/tests/libsvn_subr/error-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-pack-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-private-test$(EXEEXT) subversion/tests/libsvn_fs/fs-sequential-test$(EXEEXT) subversion/tests/libsvn_fs/fs-test$(EXEEXT) subversion/tests/libsvn_fs_x/fs-x-pack-test$(EXEEXT) subversion/tests/libsvn_subr/hashdump-test$(EXEEXT) subversion/tests/libsvn_subr/io-test$(EXEEXT) subversion/tests/libsvn_fs/locks-test$(EXEEXT) subversion/tests/libsvn_subr/mergeinfo-test$(EXEEXT) subversion/tests/libsvn_client/mtcc-test$(EXEEXT) subversion/tests/libsvn_wc/op-depth-test$(EXEEXT) subversion/tests/libsvn_subr/opt-test$(EXEEXT) subversion/tests/libsvn_subr/packed-data-test$(EXEEXT) subversion/tests/libsvn_diff/parse-diff-test$(EXEEXT) subversion/tests/libsvn_subr/path-test$(EXEEXT) subversion/tests/libsvn_subr/prefix-string-test$(EXEEXT) subversion/tests/libsvn_subr/priority-queue-test$(EXEEXT) subversion/tests/libsvn_wc/pristine-store-test$(EXEEXT) subversion/tests/libsvn_ra_local/ra-local-test$(EXEEXT) subversion/tests/libsvn_ra/ra-test$(EXEEXT) subversion/tests/libsvn_delta/random-test$(EXEEXT) subversion/tests/libsvn_repos/repos-test$(EXEEXT) subversion/tests/libsvn_subr/revision-test$(EXEEXT) subversion/tests/libsvn_subr/root-pools-test$(EXEEXT) subversion/tests/libsvn_subr/skel-test$(EXEEXT) subversion/tests/libsvn_subr/spillbuf-test$(EXEEXT) subversion/tests/libsvn_subr/sqlite-test$(EXEEXT) subversion/tests/libsvn_subr/stream-test$(EXEEXT) subversion/tests/libsvn_fs_x/string-table-test$(EXEEXT) subversion/tests/libsvn_subr/string-test$(EXEEXT) subversion/tests/libsvn_subr/subst_translate-test$(EXEEXT) subversion/tests/libsvn_delta/svndiff-stream-test$(EXEEXT) subversion/tests/libsvn_subr/time-test$(EXEEXT) subversion/tests/libsvn_subr/translate-test$(EXEEXT) subversion/tests/libsvn_subr/utf-test$(EXEEXT) subversion/tests/libsvn_wc/wc-queries-test$(EXEEXT) subversion/tests/libsvn_wc/wc-test$(EXEEXT) subversion/tests/libsvn_delta/window-test$(EXEEXT) subversion/tests/libsvn_subr/x509-test$(EXEEXT) subversion/tests/libsvn_subr/xml-test$(EXEEXT) subversion/tests/cmdline/authz_tests.py subversion/tests/cmdline/autoprop_tests.py subversion/tests/cmdline/basic_tests.py subversion/tests/cmdline/blame_tests.py subversion/tests/cmdline/cat_tests.py subversion/tests/cmdline/changelist_tests.py subversion/tests/cmdline/checkout_tests.py subversion/tests/cmdline/commit_tests.py subversion/tests/cmdline/copy_tests.py subversion/tests/cmdline/depth_tests.py subversion/tests/cmdline/diff_tests.py subversion/tests/cmdline/entries_tests.py subversion/tests/cmdline/export_tests.py subversion/tests/cmdline/externals_tests.py subversion/tests/cmdline/getopt_tests.py subversion/tests/cmdline/history_tests.py subversion/tests/cmdline/import_tests.py subversion/tests/cmdline/info_tests.py subversion/tests/cmdline/input_validation_tests.py subversion/tests/cmdline/iprop_authz_tests.py subversion/tests/cmdline/iprop_tests.py subversion/tests/cmdline/lock_tests.py subversion/tests/cmdline/log_tests.py subversion/tests/cmdline/merge_authz_tests.py subversion/tests/cmdline/merge_automatic_tests.py subversion/tests/cmdline/merge_reintegrate_tests.py subversion/tests/cmdline/merge_tests.py subversion/tests/cmdline/merge_tree_conflict_tests.py subversion/tests/cmdline/mergeinfo_tests.py subversion/tests/cmdline/mod_authz_svn_tests.py subversion/tests/cmdline/mod_dav_svn_tests.py subversion/tests/cmdline/move_tests.py subversion/tests/cmdline/patch_tests.py subversion/tests/cmdline/prop_tests.py subversion/tests/cmdline/redirect_tests.py subversion/tests/cmdline/relocate_tests.py subversion/tests/cmdline/resolve_tests.py subversion/tests/cmdline/revert_tests.py subversion/tests/cmdline/schedule_tests.py subversion/tests/cmdline/shelve_tests.py subversion/tests/cmdline/special_tests.py subversion/tests/cmdline/stat_tests.py subversion/tests/cmdline/svnadmin_tests.py subversion/tests/cmdline/svnauthz_tests.py subversion/tests/cmdline/svndumpfilter_tests.py subversion/tests/cmdline/svnfsfs_tests.py subversion/tests/cmdline/svnlook_tests.py subversion/tests/cmdline/svnmover_tests.py subversion/tests/cmdline/svnmucc_tests.py subversion/tests/cmdline/svnrdump_tests.py subversion/tests/cmdline/svnsync_authz_tests.py subversion/tests/cmdline/svnsync_tests.py subversion/tests/cmdline/svnversion_tests.py subversion/tests/cmdline/switch_tests.py subversion/tests/cmdline/trans_tests.py subversion/tests/cmdline/tree_conflict_tests.py subversion/tests/cmdline/update_tests.py subversion/tests/cmdline/upgrade_tests.py subversion/tests/cmdline/wc_tests.py
+TEST_PROGRAMS = subversion/tests/libsvn_subr/auth-test$(EXEEXT) subversion/tests/libsvn_repos/authz-test$(EXEEXT) subversion/tests/libsvn_subr/bit-array-test$(EXEEXT) subversion/tests/libsvn_subr/cache-test$(EXEEXT) subversion/tests/libsvn_subr/checksum-test$(EXEEXT) subversion/tests/libsvn_client/client-test$(EXEEXT) subversion/tests/libsvn_subr/compat-test$(EXEEXT) subversion/tests/libsvn_subr/compress-test$(EXEEXT) subversion/tests/libsvn_subr/config-test$(EXEEXT) subversion/tests/libsvn_wc/conflict-data-test$(EXEEXT) subversion/tests/libsvn_client/conflicts-test$(EXEEXT) subversion/tests/libsvn_subr/crypto-test$(EXEEXT) subversion/tests/libsvn_wc/db-test$(EXEEXT) subversion/tests/libsvn_diff/diff-diff3-test$(EXEEXT) subversion/tests/libsvn_subr/dirent_uri-test$(EXEEXT) subversion/tests/libsvn_repos/dump-load-test$(EXEEXT) subversion/tests/libsvn_wc/entries-compat-test$(EXEEXT) subversion/tests/libsvn_subr/error-code-test$(EXEEXT) subversion/tests/libsvn_subr/error-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-pack-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-private-test$(EXEEXT) subversion/tests/libsvn_fs/fs-sequential-test$(EXEEXT) subversion/tests/libsvn_fs/fs-test$(EXEEXT) subversion/tests/libsvn_fs_x/fs-x-pack-test$(EXEEXT) subversion/tests/libsvn_subr/hashdump-test$(EXEEXT) subversion/tests/libsvn_subr/io-test$(EXEEXT) subversion/tests/libsvn_fs/locks-test$(EXEEXT) subversion/tests/libsvn_subr/mergeinfo-test$(EXEEXT) subversion/tests/libsvn_client/mtcc-test$(EXEEXT) subversion/tests/libsvn_wc/op-depth-test$(EXEEXT) subversion/tests/libsvn_subr/opt-test$(EXEEXT) subversion/tests/libsvn_subr/packed-data-test$(EXEEXT) subversion/tests/libsvn_diff/parse-diff-test$(EXEEXT) subversion/tests/libsvn_subr/path-test$(EXEEXT) subversion/tests/libsvn_subr/prefix-string-test$(EXEEXT) subversion/tests/libsvn_subr/priority-queue-test$(EXEEXT) subversion/tests/libsvn_wc/pristine-store-test$(EXEEXT) subversion/tests/libsvn_ra_local/ra-local-test$(EXEEXT) subversion/tests/libsvn_ra/ra-test$(EXEEXT) subversion/tests/libsvn_delta/random-test$(EXEEXT) subversion/tests/libsvn_repos/repos-test$(EXEEXT) subversion/tests/libsvn_subr/revision-test$(EXEEXT) subversion/tests/libsvn_subr/root-pools-test$(EXEEXT) subversion/tests/libsvn_subr/skel-test$(EXEEXT) subversion/tests/libsvn_subr/spillbuf-test$(EXEEXT) subversion/tests/libsvn_subr/sqlite-test$(EXEEXT) subversion/tests/libsvn_subr/stream-test$(EXEEXT) subversion/tests/libsvn_fs_x/string-table-test$(EXEEXT) subversion/tests/libsvn_subr/string-test$(EXEEXT) subversion/tests/libsvn_subr/subst_translate-test$(EXEEXT) subversion/tests/libsvn_delta/svndiff-stream-test$(EXEEXT) subversion/tests/libsvn_subr/time-test$(EXEEXT) subversion/tests/libsvn_subr/translate-test$(EXEEXT) subversion/tests/libsvn_subr/utf-test$(EXEEXT) subversion/tests/libsvn_wc/wc-queries-test$(EXEEXT) subversion/tests/libsvn_wc/wc-test$(EXEEXT) subversion/tests/libsvn_delta/window-test$(EXEEXT) subversion/tests/libsvn_subr/x509-test$(EXEEXT) subversion/tests/libsvn_subr/xml-test$(EXEEXT) subversion/tests/cmdline/authz_tests.py subversion/tests/cmdline/autoprop_tests.py subversion/tests/cmdline/basic_tests.py subversion/tests/cmdline/blame_tests.py subversion/tests/cmdline/cat_tests.py subversion/tests/cmdline/changelist_tests.py subversion/tests/cmdline/checkout_tests.py subversion/tests/cmdline/commit_tests.py subversion/tests/cmdline/copy_tests.py subversion/tests/cmdline/dav_tests.py subversion/tests/cmdline/depth_tests.py subversion/tests/cmdline/diff_tests.py subversion/tests/cmdline/entries_tests.py subversion/tests/cmdline/export_tests.py subversion/tests/cmdline/externals_tests.py subversion/tests/cmdline/getopt_tests.py subversion/tests/cmdline/history_tests.py subversion/tests/cmdline/import_tests.py subversion/tests/cmdline/info_tests.py subversion/tests/cmdline/input_validation_tests.py subversion/tests/cmdline/iprop_authz_tests.py subversion/tests/cmdline/iprop_tests.py subversion/tests/cmdline/lock_tests.py subversion/tests/cmdline/log_tests.py subversion/tests/cmdline/merge_authz_tests.py subversion/tests/cmdline/merge_automatic_tests.py subversion/tests/cmdline/merge_reintegrate_tests.py subversion/tests/cmdline/merge_tests.py subversion/tests/cmdline/merge_tree_conflict_tests.py subversion/tests/cmdline/mergeinfo_tests.py subversion/tests/cmdline/mod_authz_svn_tests.py subversion/tests/cmdline/mod_dav_svn_tests.py subversion/tests/cmdline/move_tests.py subversion/tests/cmdline/patch_tests.py subversion/tests/cmdline/pegrev_parse_tests.py subversion/tests/cmdline/prop_tests.py subversion/tests/cmdline/redirect_tests.py subversion/tests/cmdline/relocate_tests.py subversion/tests/cmdline/resolve_tests.py subversion/tests/cmdline/revert_tests.py subversion/tests/cmdline/schedule_tests.py subversion/tests/cmdline/shelf2_tests.py subversion/tests/cmdline/shelf_tests.py subversion/tests/cmdline/special_tests.py subversion/tests/cmdline/stat_tests.py subversion/tests/cmdline/svnadmin_tests.py subversion/tests/cmdline/svnauthz_tests.py subversion/tests/cmdline/svndumpfilter_tests.py subversion/tests/cmdline/svnfsfs_tests.py subversion/tests/cmdline/svnlook_tests.py subversion/tests/cmdline/svnmover_tests.py subversion/tests/cmdline/svnmucc_tests.py subversion/tests/cmdline/svnrdump_tests.py subversion/tests/cmdline/svnsync_authz_tests.py subversion/tests/cmdline/svnsync_tests.py subversion/tests/cmdline/svnversion_tests.py subversion/tests/cmdline/switch_tests.py subversion/tests/cmdline/trans_tests.py subversion/tests/cmdline/tree_conflict_tests.py subversion/tests/cmdline/update_tests.py subversion/tests/cmdline/upgrade_tests.py subversion/tests/cmdline/wc_tests.py
-check-deps test-deps: subversion/tests/afl/afl-x509$(EXEEXT) subversion/tests/cmdline/atomic-ra-revprop-change$(EXEEXT) subversion/tests/cmdline/entries-dump$(EXEEXT) subversion/tests/cmdline/lock-helper$(EXEEXT) tools/dev/wc-ng/svn-wc-db-tester$(EXEEXT) tools/server-side/svnauthz$(EXEEXT) tools/server-side/svnauthz-validate$(EXEEXT) subversion/tests/libsvn_delta/svndiff-test$(EXEEXT) subversion/tests/libsvn_delta/vdelta-test$(EXEEXT) subversion/tests/libsvn_wc/wc-incomplete-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-lock-tester$(EXEEXT)
+check-deps test-deps: subversion/tests/afl/afl-svndiff$(EXEEXT) subversion/tests/afl/afl-x509$(EXEEXT) subversion/tests/cmdline/atomic-ra-revprop-change$(EXEEXT) subversion/tests/cmdline/entries-dump$(EXEEXT) subversion/tests/cmdline/lock-helper$(EXEEXT) tools/dev/wc-ng/svn-wc-db-tester$(EXEEXT) tools/server-side/svnauthz$(EXEEXT) tools/server-side/svnauthz-validate$(EXEEXT) subversion/tests/libsvn_delta/svndiff-test$(EXEEXT) tools/dev/svnmover/svnmover$(EXEEXT) subversion/tests/libsvn_delta/vdelta-test$(EXEEXT) subversion/tests/libsvn_wc/wc-incomplete-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-lock-tester$(EXEEXT)
MANPAGES = subversion/svn/svn.1 subversion/svnadmin/svnadmin.1 subversion/svndumpfilter/svndumpfilter.1 subversion/svnlook/svnlook.1 subversion/svnmucc/svnmucc.1 subversion/svnrdump/svnrdump.1 subversion/svnserve/svnserve.8 subversion/svnserve/svnserve.conf.5 subversion/svnsync/svnsync.1 subversion/svnversion/svnversion.1
-CLEAN_FILES = subversion/bindings/cxxhl/cxxhl-tests$(EXEEXT) subversion/svn/svn$(EXEEXT) subversion/svnadmin/svnadmin$(EXEEXT) subversion/svnbench/svnbench$(EXEEXT) subversion/svndumpfilter/svndumpfilter$(EXEEXT) subversion/svnfsfs/svnfsfs$(EXEEXT) subversion/svnlook/svnlook$(EXEEXT) subversion/svnmucc/svnmucc$(EXEEXT) subversion/svnrdump/svnrdump$(EXEEXT) subversion/svnserve/svnserve$(EXEEXT) subversion/svnsync/svnsync$(EXEEXT) subversion/svnversion/svnversion$(EXEEXT) subversion/tests/afl/afl-x509$(EXEEXT) subversion/tests/cmdline/atomic-ra-revprop-change$(EXEEXT) subversion/tests/cmdline/authz_tests.pyc subversion/tests/cmdline/autoprop_tests.pyc subversion/tests/cmdline/basic_tests.pyc subversion/tests/cmdline/blame_tests.pyc subversion/tests/cmdline/cat_tests.pyc subversion/tests/cmdline/changelist_tests.pyc subversion/tests/cmdline/checkout_tests.pyc subversion/tests/cmdline/commit_tests.pyc subversion/tests/cmdline/copy_tests.pyc subversion/tests/cmdline/depth_tests.pyc subversion/tests/cmdline/diff_tests.pyc subversion/tests/cmdline/entries-dump$(EXEEXT) subversion/tests/cmdline/entries_tests.pyc subversion/tests/cmdline/export_tests.pyc subversion/tests/cmdline/externals_tests.pyc subversion/tests/cmdline/getopt_tests.pyc subversion/tests/cmdline/history_tests.pyc subversion/tests/cmdline/import_tests.pyc subversion/tests/cmdline/info_tests.pyc subversion/tests/cmdline/input_validation_tests.pyc subversion/tests/cmdline/iprop_authz_tests.pyc subversion/tests/cmdline/iprop_tests.pyc subversion/tests/cmdline/lock-helper$(EXEEXT) subversion/tests/cmdline/lock_tests.pyc subversion/tests/cmdline/log_tests.pyc subversion/tests/cmdline/merge_authz_tests.pyc subversion/tests/cmdline/merge_automatic_tests.pyc subversion/tests/cmdline/merge_reintegrate_tests.pyc subversion/tests/cmdline/merge_tests.pyc subversion/tests/cmdline/merge_tree_conflict_tests.pyc subversion/tests/cmdline/mergeinfo_tests.pyc subversion/tests/cmdline/mod_authz_svn_tests.pyc subversion/tests/cmdline/mod_dav_svn_tests.pyc subversion/tests/cmdline/move_tests.pyc subversion/tests/cmdline/patch_tests.pyc subversion/tests/cmdline/prop_tests.pyc subversion/tests/cmdline/redirect_tests.pyc subversion/tests/cmdline/relocate_tests.pyc subversion/tests/cmdline/resolve_tests.pyc subversion/tests/cmdline/revert_tests.pyc subversion/tests/cmdline/schedule_tests.pyc subversion/tests/cmdline/shelve_tests.pyc subversion/tests/cmdline/special_tests.pyc subversion/tests/cmdline/stat_tests.pyc subversion/tests/cmdline/svnadmin_tests.pyc subversion/tests/cmdline/svnauthz_tests.pyc subversion/tests/cmdline/svndumpfilter_tests.pyc subversion/tests/cmdline/svnfsfs_tests.pyc subversion/tests/cmdline/svnlook_tests.pyc subversion/tests/cmdline/svnmover_tests.pyc subversion/tests/cmdline/svnmucc_tests.pyc subversion/tests/cmdline/svnrdump_tests.pyc subversion/tests/cmdline/svnsync_authz_tests.pyc subversion/tests/cmdline/svnsync_tests.pyc subversion/tests/cmdline/svnversion_tests.pyc subversion/tests/cmdline/switch_tests.pyc subversion/tests/cmdline/trans_tests.pyc subversion/tests/cmdline/tree_conflict_tests.pyc subversion/tests/cmdline/update_tests.pyc subversion/tests/cmdline/upgrade_tests.pyc subversion/tests/cmdline/wc_tests.pyc subversion/tests/libsvn_client/client-test$(EXEEXT) subversion/tests/libsvn_client/conflicts-test$(EXEEXT) subversion/tests/libsvn_client/mtcc-test$(EXEEXT) subversion/tests/libsvn_delta/random-test$(EXEEXT) subversion/tests/libsvn_delta/svndiff-stream-test$(EXEEXT) subversion/tests/libsvn_delta/svndiff-test$(EXEEXT) subversion/tests/libsvn_delta/vdelta-test$(EXEEXT) subversion/tests/libsvn_delta/window-test$(EXEEXT) subversion/tests/libsvn_diff/diff-diff3-test$(EXEEXT) subversion/tests/libsvn_diff/parse-diff-test$(EXEEXT) subversion/tests/libsvn_fs/fs-sequential-test$(EXEEXT) subversion/tests/libsvn_fs/fs-test$(EXEEXT) subversion/tests/libsvn_fs/locks-test$(EXEEXT) subversion/tests/libsvn_fs_base/changes-test$(EXEEXT) subversion/tests/libsvn_fs_base/fs-base-test$(EXEEXT) subversion/tests/libsvn_fs_base/strings-reps-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-pack-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-private-test$(EXEEXT) subversion/tests/libsvn_fs_x/fs-x-pack-test$(EXEEXT) subversion/tests/libsvn_fs_x/string-table-test$(EXEEXT) subversion/tests/libsvn_ra/ra-test$(EXEEXT) subversion/tests/libsvn_ra_local/ra-local-test$(EXEEXT) subversion/tests/libsvn_repos/authz-test$(EXEEXT) subversion/tests/libsvn_repos/dump-load-test$(EXEEXT) subversion/tests/libsvn_repos/repos-test$(EXEEXT) subversion/tests/libsvn_subr/auth-test$(EXEEXT) subversion/tests/libsvn_subr/bit-array-test$(EXEEXT) subversion/tests/libsvn_subr/cache-test$(EXEEXT) subversion/tests/libsvn_subr/checksum-test$(EXEEXT) subversion/tests/libsvn_subr/compat-test$(EXEEXT) subversion/tests/libsvn_subr/compress-test$(EXEEXT) subversion/tests/libsvn_subr/config-test$(EXEEXT) subversion/tests/libsvn_subr/crypto-test$(EXEEXT) subversion/tests/libsvn_subr/dirent_uri-test$(EXEEXT) subversion/tests/libsvn_subr/error-code-test$(EXEEXT) subversion/tests/libsvn_subr/error-test$(EXEEXT) subversion/tests/libsvn_subr/hashdump-test$(EXEEXT) subversion/tests/libsvn_subr/io-test$(EXEEXT) subversion/tests/libsvn_subr/mergeinfo-test$(EXEEXT) subversion/tests/libsvn_subr/opt-test$(EXEEXT) subversion/tests/libsvn_subr/packed-data-test$(EXEEXT) subversion/tests/libsvn_subr/path-test$(EXEEXT) subversion/tests/libsvn_subr/prefix-string-test$(EXEEXT) subversion/tests/libsvn_subr/priority-queue-test$(EXEEXT) subversion/tests/libsvn_subr/revision-test$(EXEEXT) subversion/tests/libsvn_subr/root-pools-test$(EXEEXT) subversion/tests/libsvn_subr/skel-test$(EXEEXT) subversion/tests/libsvn_subr/spillbuf-test$(EXEEXT) subversion/tests/libsvn_subr/sqlite-test$(EXEEXT) subversion/tests/libsvn_subr/stream-test$(EXEEXT) subversion/tests/libsvn_subr/string-test$(EXEEXT) subversion/tests/libsvn_subr/subst_translate-test$(EXEEXT) subversion/tests/libsvn_subr/time-test$(EXEEXT) subversion/tests/libsvn_subr/translate-test$(EXEEXT) subversion/tests/libsvn_subr/utf-test$(EXEEXT) subversion/tests/libsvn_subr/x509-test$(EXEEXT) subversion/tests/libsvn_subr/xml-test$(EXEEXT) subversion/tests/libsvn_wc/conflict-data-test$(EXEEXT) subversion/tests/libsvn_wc/db-test$(EXEEXT) subversion/tests/libsvn_wc/entries-compat-test$(EXEEXT) subversion/tests/libsvn_wc/op-depth-test$(EXEEXT) subversion/tests/libsvn_wc/pristine-store-test$(EXEEXT) subversion/tests/libsvn_wc/wc-incomplete-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-lock-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-queries-test$(EXEEXT) subversion/tests/libsvn_wc/wc-test$(EXEEXT) tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer$(EXEEXT) tools/client-side/svnconflict/svnconflict$(EXEEXT) tools/dev/fsfs-access-map$(EXEEXT) tools/dev/svnmover/svnmover$(EXEEXT) tools/dev/svnraisetreeconflict/svnraisetreeconflict$(EXEEXT) tools/dev/wc-ng/svn-wc-db-tester$(EXEEXT) tools/dev/x509-parser$(EXEEXT) tools/diff/diff$(EXEEXT) tools/diff/diff3$(EXEEXT) tools/diff/diff4$(EXEEXT) tools/server-side/svn-populate-node-origins-index$(EXEEXT) tools/server-side/svnauthz$(EXEEXT) tools/server-side/svnauthz-validate$(EXEEXT)
+CLEAN_FILES = subversion/bindings/cxx/svnxx-tests$(EXEEXT) subversion/svn/svn$(EXEEXT) subversion/svnadmin/svnadmin$(EXEEXT) subversion/svnbench/svnbench$(EXEEXT) subversion/svndumpfilter/svndumpfilter$(EXEEXT) subversion/svnfsfs/svnfsfs$(EXEEXT) subversion/svnlook/svnlook$(EXEEXT) subversion/svnmucc/svnmucc$(EXEEXT) subversion/svnrdump/svnrdump$(EXEEXT) subversion/svnserve/svnserve$(EXEEXT) subversion/svnsync/svnsync$(EXEEXT) subversion/svnversion/svnversion$(EXEEXT) subversion/tests/afl/afl-svndiff$(EXEEXT) subversion/tests/afl/afl-x509$(EXEEXT) subversion/tests/cmdline/atomic-ra-revprop-change$(EXEEXT) subversion/tests/cmdline/authz_tests.pyc subversion/tests/cmdline/autoprop_tests.pyc subversion/tests/cmdline/basic_tests.pyc subversion/tests/cmdline/blame_tests.pyc subversion/tests/cmdline/cat_tests.pyc subversion/tests/cmdline/changelist_tests.pyc subversion/tests/cmdline/checkout_tests.pyc subversion/tests/cmdline/commit_tests.pyc subversion/tests/cmdline/copy_tests.pyc subversion/tests/cmdline/dav_tests.pyc subversion/tests/cmdline/depth_tests.pyc subversion/tests/cmdline/diff_tests.pyc subversion/tests/cmdline/entries-dump$(EXEEXT) subversion/tests/cmdline/entries_tests.pyc subversion/tests/cmdline/export_tests.pyc subversion/tests/cmdline/externals_tests.pyc subversion/tests/cmdline/getopt_tests.pyc subversion/tests/cmdline/history_tests.pyc subversion/tests/cmdline/import_tests.pyc subversion/tests/cmdline/info_tests.pyc subversion/tests/cmdline/input_validation_tests.pyc subversion/tests/cmdline/iprop_authz_tests.pyc subversion/tests/cmdline/iprop_tests.pyc subversion/tests/cmdline/lock-helper$(EXEEXT) subversion/tests/cmdline/lock_tests.pyc subversion/tests/cmdline/log_tests.pyc subversion/tests/cmdline/merge_authz_tests.pyc subversion/tests/cmdline/merge_automatic_tests.pyc subversion/tests/cmdline/merge_reintegrate_tests.pyc subversion/tests/cmdline/merge_tests.pyc subversion/tests/cmdline/merge_tree_conflict_tests.pyc subversion/tests/cmdline/mergeinfo_tests.pyc subversion/tests/cmdline/mod_authz_svn_tests.pyc subversion/tests/cmdline/mod_dav_svn_tests.pyc subversion/tests/cmdline/move_tests.pyc subversion/tests/cmdline/patch_tests.pyc subversion/tests/cmdline/pegrev_parse_tests.pyc subversion/tests/cmdline/prop_tests.pyc subversion/tests/cmdline/redirect_tests.pyc subversion/tests/cmdline/relocate_tests.pyc subversion/tests/cmdline/resolve_tests.pyc subversion/tests/cmdline/revert_tests.pyc subversion/tests/cmdline/schedule_tests.pyc subversion/tests/cmdline/shelf2_tests.pyc subversion/tests/cmdline/shelf_tests.pyc subversion/tests/cmdline/special_tests.pyc subversion/tests/cmdline/stat_tests.pyc subversion/tests/cmdline/svnadmin_tests.pyc subversion/tests/cmdline/svnauthz_tests.pyc subversion/tests/cmdline/svndumpfilter_tests.pyc subversion/tests/cmdline/svnfsfs_tests.pyc subversion/tests/cmdline/svnlook_tests.pyc subversion/tests/cmdline/svnmover_tests.pyc subversion/tests/cmdline/svnmucc_tests.pyc subversion/tests/cmdline/svnrdump_tests.pyc subversion/tests/cmdline/svnsync_authz_tests.pyc subversion/tests/cmdline/svnsync_tests.pyc subversion/tests/cmdline/svnversion_tests.pyc subversion/tests/cmdline/switch_tests.pyc subversion/tests/cmdline/trans_tests.pyc subversion/tests/cmdline/tree_conflict_tests.pyc subversion/tests/cmdline/update_tests.pyc subversion/tests/cmdline/upgrade_tests.pyc subversion/tests/cmdline/wc_tests.pyc subversion/tests/libsvn_client/client-test$(EXEEXT) subversion/tests/libsvn_client/conflicts-test$(EXEEXT) subversion/tests/libsvn_client/mtcc-test$(EXEEXT) subversion/tests/libsvn_delta/random-test$(EXEEXT) subversion/tests/libsvn_delta/svndiff-stream-test$(EXEEXT) subversion/tests/libsvn_delta/svndiff-test$(EXEEXT) subversion/tests/libsvn_delta/vdelta-test$(EXEEXT) subversion/tests/libsvn_delta/window-test$(EXEEXT) subversion/tests/libsvn_diff/diff-diff3-test$(EXEEXT) subversion/tests/libsvn_diff/parse-diff-test$(EXEEXT) subversion/tests/libsvn_fs/fs-sequential-test$(EXEEXT) subversion/tests/libsvn_fs/fs-test$(EXEEXT) subversion/tests/libsvn_fs/locks-test$(EXEEXT) subversion/tests/libsvn_fs_base/changes-test$(EXEEXT) subversion/tests/libsvn_fs_base/fs-base-test$(EXEEXT) subversion/tests/libsvn_fs_base/strings-reps-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-pack-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-private-test$(EXEEXT) subversion/tests/libsvn_fs_x/fs-x-pack-test$(EXEEXT) subversion/tests/libsvn_fs_x/string-table-test$(EXEEXT) subversion/tests/libsvn_ra/ra-test$(EXEEXT) subversion/tests/libsvn_ra_local/ra-local-test$(EXEEXT) subversion/tests/libsvn_repos/authz-test$(EXEEXT) subversion/tests/libsvn_repos/dump-load-test$(EXEEXT) subversion/tests/libsvn_repos/repos-test$(EXEEXT) subversion/tests/libsvn_subr/auth-test$(EXEEXT) subversion/tests/libsvn_subr/bit-array-test$(EXEEXT) subversion/tests/libsvn_subr/cache-test$(EXEEXT) subversion/tests/libsvn_subr/checksum-test$(EXEEXT) subversion/tests/libsvn_subr/compat-test$(EXEEXT) subversion/tests/libsvn_subr/compress-test$(EXEEXT) subversion/tests/libsvn_subr/config-test$(EXEEXT) subversion/tests/libsvn_subr/crypto-test$(EXEEXT) subversion/tests/libsvn_subr/dirent_uri-test$(EXEEXT) subversion/tests/libsvn_subr/error-code-test$(EXEEXT) subversion/tests/libsvn_subr/error-test$(EXEEXT) subversion/tests/libsvn_subr/hashdump-test$(EXEEXT) subversion/tests/libsvn_subr/io-test$(EXEEXT) subversion/tests/libsvn_subr/mergeinfo-test$(EXEEXT) subversion/tests/libsvn_subr/opt-test$(EXEEXT) subversion/tests/libsvn_subr/packed-data-test$(EXEEXT) subversion/tests/libsvn_subr/path-test$(EXEEXT) subversion/tests/libsvn_subr/prefix-string-test$(EXEEXT) subversion/tests/libsvn_subr/priority-queue-test$(EXEEXT) subversion/tests/libsvn_subr/revision-test$(EXEEXT) subversion/tests/libsvn_subr/root-pools-test$(EXEEXT) subversion/tests/libsvn_subr/skel-test$(EXEEXT) subversion/tests/libsvn_subr/spillbuf-test$(EXEEXT) subversion/tests/libsvn_subr/sqlite-test$(EXEEXT) subversion/tests/libsvn_subr/stream-test$(EXEEXT) subversion/tests/libsvn_subr/string-test$(EXEEXT) subversion/tests/libsvn_subr/subst_translate-test$(EXEEXT) subversion/tests/libsvn_subr/time-test$(EXEEXT) subversion/tests/libsvn_subr/translate-test$(EXEEXT) subversion/tests/libsvn_subr/utf-test$(EXEEXT) subversion/tests/libsvn_subr/x509-test$(EXEEXT) subversion/tests/libsvn_subr/xml-test$(EXEEXT) subversion/tests/libsvn_wc/conflict-data-test$(EXEEXT) subversion/tests/libsvn_wc/db-test$(EXEEXT) subversion/tests/libsvn_wc/entries-compat-test$(EXEEXT) subversion/tests/libsvn_wc/op-depth-test$(EXEEXT) subversion/tests/libsvn_wc/pristine-store-test$(EXEEXT) subversion/tests/libsvn_wc/wc-incomplete-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-lock-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-queries-test$(EXEEXT) subversion/tests/libsvn_wc/wc-test$(EXEEXT) tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer$(EXEEXT) tools/client-side/svnconflict/svnconflict$(EXEEXT) tools/dev/fsfs-access-map$(EXEEXT) tools/dev/svnmover/svnmover$(EXEEXT) tools/dev/svnraisetreeconflict/svnraisetreeconflict$(EXEEXT) tools/dev/wc-ng/svn-wc-db-tester$(EXEEXT) tools/dev/x509-parser$(EXEEXT) tools/diff/diff$(EXEEXT) tools/diff/diff3$(EXEEXT) tools/diff/diff4$(EXEEXT) tools/server-side/svn-populate-node-origins-index$(EXEEXT) tools/server-side/svnauthz$(EXEEXT) tools/server-side/svnauthz-validate$(EXEEXT)
EXTRACLEAN_FILES = subversion/libsvn_fs_fs/rep-cache-db.h subversion/libsvn_fs_x/rep-cache-db.h subversion/libsvn_subr/internal_statements.h subversion/libsvn_wc/wc-queries.h subversion/tests/libsvn_wc/wc-test-queries.h \
$(abs_builddir)/subversion/libsvn_subr/errorcode.inc \
$(abs_builddir)/subversion/libsvn_subr/config_keys.inc \
@@ -63,15 +63,45 @@ RELEASE_MODE = 1
# Section 3: SWIG autogen rules
########################################
-autogen-swig-py: subversion/bindings/swig/python/core.c subversion/bindings/swig/python/svn_client.c subversion/bindings/swig/python/svn_delta.c subversion/bindings/swig/python/svn_diff.c subversion/bindings/swig/python/svn_fs.c subversion/bindings/swig/python/svn_ra.c subversion/bindings/swig/python/svn_repos.c subversion/bindings/swig/python/svn_wc.c
+.swig_py_checked:
+ @if [ -n "$(SWIG_PY_ERRMSG)" ]; then \
+ echo "SWIG python disabled at configure time: $(SWIG_PY_ERRMSG)" >&2; \
+ exit 1; \
+ fi
+ @touch $@
+
+autogen-swig-py: .swig_py_checked subversion/bindings/swig/python/core.c subversion/bindings/swig/python/svn_client.c subversion/bindings/swig/python/svn_delta.c subversion/bindings/swig/python/svn_diff.c subversion/bindings/swig/python/svn_fs.c subversion/bindings/swig/python/svn_ra.c subversion/bindings/swig/python/svn_repos.c subversion/bindings/swig/python/svn_wc.c
autogen-swig: autogen-swig-py
-autogen-swig-pl: subversion/bindings/swig/perl/native/core.c subversion/bindings/swig/perl/native/svn_client.c subversion/bindings/swig/perl/native/svn_delta.c subversion/bindings/swig/perl/native/svn_diff.c subversion/bindings/swig/perl/native/svn_fs.c subversion/bindings/swig/perl/native/svn_ra.c subversion/bindings/swig/perl/native/svn_repos.c subversion/bindings/swig/perl/native/svn_wc.c
+# Ensure the swig build targets depend on the configuration check
+swig-py: .swig_py_checked
+
+.swig_pl_checked:
+ @if [ -n "$(SWIG_PL_ERRMSG)" ]; then \
+ echo "SWIG perl disabled at configure time: $(SWIG_PL_ERRMSG)" >&2; \
+ exit 1; \
+ fi
+ @touch $@
+
+autogen-swig-pl: .swig_pl_checked subversion/bindings/swig/perl/native/core.c subversion/bindings/swig/perl/native/svn_client.c subversion/bindings/swig/perl/native/svn_delta.c subversion/bindings/swig/perl/native/svn_diff.c subversion/bindings/swig/perl/native/svn_fs.c subversion/bindings/swig/perl/native/svn_ra.c subversion/bindings/swig/perl/native/svn_repos.c subversion/bindings/swig/perl/native/svn_wc.c
autogen-swig: autogen-swig-pl
-autogen-swig-rb: subversion/bindings/swig/ruby/core.c subversion/bindings/swig/ruby/svn_client.c subversion/bindings/swig/ruby/svn_delta.c subversion/bindings/swig/ruby/svn_diff.c subversion/bindings/swig/ruby/svn_fs.c subversion/bindings/swig/ruby/svn_ra.c subversion/bindings/swig/ruby/svn_repos.c subversion/bindings/swig/ruby/svn_wc.c
+# Ensure the swig build targets depend on the configuration check
+swig-pl: .swig_pl_checked
+
+.swig_rb_checked:
+ @if [ -n "$(SWIG_RB_ERRMSG)" ]; then \
+ echo "SWIG ruby disabled at configure time: $(SWIG_RB_ERRMSG)" >&2; \
+ exit 1; \
+ fi
+ @touch $@
+
+autogen-swig-rb: .swig_rb_checked subversion/bindings/swig/ruby/core.c subversion/bindings/swig/ruby/svn_client.c subversion/bindings/swig/ruby/svn_delta.c subversion/bindings/swig/ruby/svn_diff.c subversion/bindings/swig/ruby/svn_fs.c subversion/bindings/swig/ruby/svn_ra.c subversion/bindings/swig/ruby/svn_repos.c subversion/bindings/swig/ruby/svn_wc.c
autogen-swig: autogen-swig-rb
+# Ensure the swig build targets depend on the configuration check
+swig-rb: .swig_rb_checked
+
########################################
@@ -93,6 +123,12 @@ autogen-swig: autogen-swig-rb
# Section 5: Individual target build rules
########################################
+afl_svndiff_PATH = subversion/tests/afl
+afl_svndiff_DEPS = subversion/tests/afl/afl-svndiff.lo subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_subr/libsvn_subr-1.la
+afl_svndiff_OBJECTS = afl-svndiff.lo
+subversion/tests/afl/afl-svndiff$(EXEEXT): $(afl_svndiff_DEPS)
+ cd subversion/tests/afl && $(LINK) $(afl_svndiff_LDFLAGS) -o afl-svndiff$(EXEEXT) $(afl_svndiff_OBJECTS) ../../../subversion/libsvn_delta/libsvn_delta-1.la ../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(LIBS)
+
afl_x509_PATH = subversion/tests/afl
afl_x509_DEPS = subversion/tests/afl/afl-x509.lo subversion/libsvn_subr/libsvn_subr-1.la
afl_x509_OBJECTS = afl-x509.lo
@@ -183,12 +219,6 @@ crypto_test_OBJECTS = crypto-test.lo
subversion/tests/libsvn_subr/crypto-test$(EXEEXT): $(crypto_test_DEPS)
cd subversion/tests/libsvn_subr && $(LINK) $(crypto_test_LDFLAGS) -o crypto-test$(EXEEXT) $(crypto_test_OBJECTS) ../../../subversion/tests/libsvn_test-1.la ../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(LIBS)
-cxxhl_tests_PATH = subversion/bindings/cxxhl
-cxxhl_tests_DEPS = subversion/bindings/cxxhl/tests/cxxhl-tests.lo subversion/bindings/cxxhl/tests/test_aprwrap.lo subversion/bindings/cxxhl/tests/test_exception.lo subversion/bindings/cxxhl/libsvncxxhl-1.la googlemock/libgooglemock-1.la subversion/libsvn_subr/libsvn_subr-1.la
-cxxhl_tests_OBJECTS = tests/cxxhl-tests.lo tests/test_aprwrap.lo tests/test_exception.lo
-subversion/bindings/cxxhl/cxxhl-tests$(EXEEXT): $(cxxhl_tests_DEPS)
- if $(SVN_USE_GOOGLEMOCK) ; then cd subversion/bindings/cxxhl && $(LINK_CXX) $(cxxhl_tests_LDFLAGS) -o cxxhl-tests$(EXEEXT) $(cxxhl_tests_OBJECTS) ../../../subversion/bindings/cxxhl/libsvncxxhl-1.la ../../../googlemock/libgooglemock-1.la ../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(LIBS) ; else echo "fake" > subversion/bindings/cxxhl/cxxhl-tests$(EXEEXT) ; fi
-
db_test_PATH = subversion/tests/libsvn_wc
db_test_DEPS = subversion/tests/libsvn_wc/db-test.lo subversion/tests/libsvn_wc/utils.lo subversion/libsvn_client/libsvn_client-1.la subversion/tests/libsvn_test-1.la subversion/libsvn_wc/libsvn_wc-1.la subversion/libsvn_subr/libsvn_subr-1.la
db_test_OBJECTS = db-test.lo utils.lo
@@ -315,24 +345,23 @@ io_test_OBJECTS = io-test.lo
subversion/tests/libsvn_subr/io-test$(EXEEXT): $(io_test_DEPS)
cd subversion/tests/libsvn_subr && $(LINK) $(io_test_LDFLAGS) -o io-test$(EXEEXT) $(io_test_OBJECTS) ../../../subversion/tests/libsvn_test-1.la ../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(LIBS)
-javahl_callback_javah_PATH = subversion/bindings/javahl/include
-javahl_callback_javah_HEADERS = subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_AuthnCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_BlameCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_ChangelistCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_ClientNotifyCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_CommitCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_CommitMessageCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_ConfigEvent.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_ConflictResolverCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_DiffSummaryCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_ImportFilterCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_InfoCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_InheritedProplistCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_ListCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_ListItemCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_LogMessageCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_PatchCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_ProgressCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_ProplistCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_RemoteFileRevisionsCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_RemoteLocationSegmentsCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_RemoteStatus.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_ReposFreezeAction.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_ReposNotifyCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_ReposVerifyCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_StatusCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_TunnelAgent.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_UserPasswordCallback.h
-javahl_callback_javah_OBJECTS =
-javahl_callback_javah_DEPS = $(javahl_callback_javah_HEADERS) $(javahl_callback_javah_OBJECTS) $(javahl_java_DEPS)
-javahl-callback-javah: $(javahl_callback_javah_DEPS)
-javahl_callback_javah_CLASS_FILENAMES = subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/AuthnCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/BlameCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ChangelistCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ClientNotifyCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/CommitCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/CommitMessageCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ConfigEvent.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ConflictResolverCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/DiffSummaryCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ImportFilterCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/InfoCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/InheritedProplistCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ListCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ListItemCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/LogMessageCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/PatchCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ProgressCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ProplistCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/RemoteFileRevisionsCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/RemoteLocationSegmentsCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/RemoteStatus.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ReposFreezeAction.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ReposNotifyCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ReposVerifyCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/StatusCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/TunnelAgent.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/UserPasswordCallback.class
-javahl_callback_javah_CLASSES = org.apache.subversion.javahl.callback.AuthnCallback org.apache.subversion.javahl.callback.BlameCallback org.apache.subversion.javahl.callback.ChangelistCallback org.apache.subversion.javahl.callback.ClientNotifyCallback org.apache.subversion.javahl.callback.CommitCallback org.apache.subversion.javahl.callback.CommitMessageCallback org.apache.subversion.javahl.callback.ConfigEvent org.apache.subversion.javahl.callback.ConflictResolverCallback org.apache.subversion.javahl.callback.DiffSummaryCallback org.apache.subversion.javahl.callback.ImportFilterCallback org.apache.subversion.javahl.callback.InfoCallback org.apache.subversion.javahl.callback.InheritedProplistCallback org.apache.subversion.javahl.callback.ListCallback org.apache.subversion.javahl.callback.ListItemCallback org.apache.subversion.javahl.callback.LogMessageCallback org.apache.subversion.javahl.callback.PatchCallback org.apache.subversion.javahl.callback.ProgressCallback org.apache.subversion.javahl.callback.ProplistCallback org.apache.subversion.javahl.callback.RemoteFileRevisionsCallback org.apache.subversion.javahl.callback.RemoteLocationSegmentsCallback org.apache.subversion.javahl.callback.RemoteStatus org.apache.subversion.javahl.callback.ReposFreezeAction org.apache.subversion.javahl.callback.ReposNotifyCallback org.apache.subversion.javahl.callback.ReposVerifyCallback org.apache.subversion.javahl.callback.StatusCallback org.apache.subversion.javahl.callback.TunnelAgent org.apache.subversion.javahl.callback.UserPasswordCallback
-$(javahl_callback_javah_HEADERS): $(javahl_callback_javah_CLASS_FILENAMES)
- $(COMPILE_JAVAHL_JAVAH) -force -d subversion/bindings/javahl/include -classpath subversion/bindings/javahl/classes:$(javahl_callback_javah_CLASSPATH) $(javahl_callback_javah_CLASSES)
+javahl_callback_java_PATH = subversion/bindings/javahl/classes
+javahl_callback_java_HEADERS = subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_UserPasswordCallback.h
+javahl_callback_java_OBJECTS = subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/AuthnCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/BlameCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/BlameLineCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/BlameRangeCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ChangelistCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ClientNotifyCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/CommitCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/CommitMessageCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ConfigEvent.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ConflictResolverCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/DiffSummaryCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ImportFilterCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/InfoCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/InheritedProplistCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ListCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ListItemCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/LogMessageCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/PatchCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ProgressCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ProplistCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/RemoteFileRevisionsCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/RemoteLocationSegmentsCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/RemoteStatus.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ReposFreezeAction.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ReposNotifyCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ReposVerifyCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/StatusCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/TunnelAgent.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/UserPasswordCallback.class
+javahl_callback_java_DEPS = $(javahl_callback_java_HEADERS) $(javahl_callback_java_OBJECTS)
+javahl-callback-java: $(javahl_callback_java_DEPS)
+javahl_callback_java_SRC = $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/AuthnCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/BlameCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/BlameLineCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/BlameRangeCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ChangelistCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ClientNotifyCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/CommitCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/CommitMessageCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ConfigEvent.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ConflictResolverCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/DiffSummaryCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ImportFilterCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InfoCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InheritedProplistCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ListCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ListItemCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/LogMessageCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/PatchCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ProgressCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ProplistCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/RemoteFileRevisionsCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/RemoteLocationSegmentsCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/RemoteStatus.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ReposFreezeAction.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ReposNotifyCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ReposVerifyCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/StatusCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/TunnelAgent.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java
+$(javahl_callback_java_HEADERS) $(javahl_callback_java_OBJECTS): $(javahl_callback_java_SRC)
+ $(COMPILE_JAVAHL_JAVAC) -h subversion/bindings/javahl/include -d subversion/bindings/javahl/classes -classpath subversion/bindings/javahl/classes:$(javahl_callback_java_CLASSPATH) $(javahl_callback_java_SRC)
javahl_compat_java_PATH = subversion/bindings/javahl/classes
javahl_compat_java_HEADERS =
javahl_compat_java_OBJECTS = subversion/bindings/javahl/classes/org/tigris/subversion/javahl/BlameCallback.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/BlameCallback2.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/BlameCallback3.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/BlameCallbackImpl.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ChangePath.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ChangelistCallback.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ClientException.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/CommitItem.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/CommitItemStateFlags.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/CommitMessage.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ConflictDescriptor.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ConflictResolverCallback.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ConflictResult.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ConflictVersion.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/CopySource.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Depth.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/DiffSummary.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/DiffSummaryReceiver.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/DirEntry.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ErrorCodes.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Info.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Info2.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/InfoCallback.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/InputInterface.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ListCallback.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Lock.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/LockStatus.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/LogDate.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/LogMessage.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/LogMessageCallback.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Mergeinfo.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/MergeinfoLogKind.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/NativeException.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/NodeKind.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Notify.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Notify2.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/NotifyAction.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/NotifyInformation.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/NotifyStatus.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Operation.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/OutputInterface.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Path.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ProgressEvent.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ProgressListener.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/PromptUserPassword.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/PromptUserPassword2.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/PromptUserPassword3.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/PropertyData.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ProplistCallback.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ProplistCallbackImpl.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Revision.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/RevisionKind.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/RevisionRange.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/SVNAdmin.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/SVNClient.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/SVNClientInterface.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/SVNClientLogLevel.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/SVNClientSynchronized.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/SVNInputStream.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/SVNOutputStream.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ScheduleKind.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Status.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/StatusCallback.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/StatusKind.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/SubversionException.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Version.class
-javahl_compat_java_DEPS = $(javahl_compat_java_HEADERS) $(javahl_compat_java_OBJECTS) $(javahl_java_DEPS)
+javahl_compat_java_DEPS = $(javahl_compat_java_HEADERS) $(javahl_compat_java_OBJECTS) $(javahl_callback_java_DEPS) $(javahl_remote_java_DEPS) $(javahl_types_java_DEPS) $(javahl_util_java_DEPS) $(javahl_java_DEPS)
javahl-compat-java: $(javahl_compat_java_DEPS)
javahl_compat_java_SRC = $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/BlameCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/BlameCallback2.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/BlameCallback3.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/BlameCallbackImpl.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ChangePath.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ChangelistCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ClientException.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/CommitItem.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/CommitItemStateFlags.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/CommitMessage.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictDescriptor.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictResolverCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictResult.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictVersion.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/CopySource.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Depth.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/DiffSummary.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/DiffSummaryReceiver.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/DirEntry.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ErrorCodes.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Info.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Info2.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/InfoCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/InputInterface.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ListCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Lock.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/LockStatus.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/LogDate.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/LogMessage.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/LogMessageCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Mergeinfo.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/MergeinfoLogKind.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/NativeException.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/NodeKind.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Notify.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Notify2.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/NotifyAction.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/NotifyInformation.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/NotifyStatus.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Operation.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/OutputInterface.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Path.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ProgressEvent.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ProgressListener.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/PromptUserPassword.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/PromptUserPassword2.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/PromptUserPassword3.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/PropertyData.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ProplistCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ProplistCallbackImpl.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Revision.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/RevisionKind.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/RevisionRange.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClientInterface.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClientLogLevel.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClientSynchronized.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNInputStream.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNOutputStream.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ScheduleKind.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Status.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/StatusCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/StatusKind.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SubversionException.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Version.java
-$(javahl_compat_java_OBJECTS): $(javahl_compat_java_SRC)
+$(javahl_compat_java_HEADERS) $(javahl_compat_java_OBJECTS): $(javahl_compat_java_SRC)
$(COMPILE_JAVAHL_COMPAT_JAVAC) -d subversion/bindings/javahl/classes -classpath subversion/bindings/javahl/classes:$(javahl_compat_java_CLASSPATH) $(javahl_compat_java_SRC)
@@ -342,80 +371,60 @@ javahl_compat_tests_OBJECTS = subversion/bindings/javahl/classes/org/tigris/subv
javahl_compat_tests_DEPS = $(javahl_compat_tests_HEADERS) $(javahl_compat_tests_OBJECTS) $(javahl_compat_java_DEPS)
javahl-compat-tests: $(javahl_compat_tests_DEPS)
javahl_compat_tests_SRC = $(abs_srcdir)/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java $(abs_srcdir)/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/RunTests.java $(abs_srcdir)/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/SVNAdminTests.java $(abs_srcdir)/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/SVNTests.java $(abs_srcdir)/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/WC.java
-$(javahl_compat_tests_OBJECTS): $(javahl_compat_tests_SRC)
+$(javahl_compat_tests_HEADERS) $(javahl_compat_tests_OBJECTS): $(javahl_compat_tests_SRC)
$(COMPILE_JAVAHL_COMPAT_JAVAC) -d subversion/bindings/javahl/classes -classpath subversion/bindings/javahl/classes:$(javahl_compat_tests_CLASSPATH) $(javahl_compat_tests_SRC)
javahl_java_PATH = subversion/bindings/javahl/classes
-javahl_java_HEADERS =
-javahl_java_OBJECTS = subversion/bindings/javahl/classes/org/apache/subversion/javahl/ClientException.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ClientNotifyInformation.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/CommitInfo.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/CommitItem.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/CommitItemStateFlags.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ConflictDescriptor.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ConflictResult.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/DiffSummary.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNClient.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNConfig.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNEditor.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNRemote.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNReporter.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNRepos.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/JNIError.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/JNIObject.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/NativeException.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/NativeResources.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/OperationContext.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ProgressEvent.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ReposNotifyInformation.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNClient.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNRepos.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNUtil.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SubversionException.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/AuthnCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/BlameCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ChangelistCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ClientNotifyCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/CommitCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/CommitMessageCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ConfigEvent.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ConflictResolverCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/DiffSummaryCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ImportFilterCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/InfoCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/InheritedProplistCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ListCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ListItemCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/LogMessageCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/PatchCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ProgressCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ProplistCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/RemoteFileRevisionsCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/RemoteLocationSegmentsCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/RemoteStatus.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ReposFreezeAction.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ReposNotifyCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ReposVerifyCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/StatusCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/TunnelAgent.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/UserPasswordCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/CommitEditor.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/RemoteFactory.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/RemoteSession.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/RetryOpenSession.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/StateReporter.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/StatusEditor.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/ChangePath.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Checksum.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/ConflictVersion.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/CopySource.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Depth.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/DiffOptions.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/DirEntry.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/ExternalItem.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Info.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Lock.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/LogDate.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Mergeinfo.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/NativeInputStream.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/NativeOutputStream.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/NodeKind.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Property.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Revision.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/RevisionRange.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/RevisionRangeList.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/RuntimeVersion.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Status.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Tristate.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Version.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/VersionExtended.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/ConfigImpl.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/ConfigLib.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/DiffLib.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/PropLib.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/RequestChannel.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/ResponseChannel.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/SubstLib.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/TunnelChannel.class
+javahl_java_HEADERS = subversion/bindings/javahl/include/org_apache_subversion_javahl_CommitItemStateFlags.h subversion/bindings/javahl/include/org_apache_subversion_javahl_NativeResources.h subversion/bindings/javahl/include/org_apache_subversion_javahl_SVNClient.h subversion/bindings/javahl/include/org_apache_subversion_javahl_SVNRepos.h
+javahl_java_OBJECTS = subversion/bindings/javahl/classes/org/apache/subversion/javahl/ClientException.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ClientNotifyInformation.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/CommitInfo.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/CommitItem.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/CommitItemStateFlags.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ConflictDescriptor.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ConflictResult.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/DiffSummary.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNClient.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNConfig.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNEditor.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNRemote.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNReporter.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNRepos.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/JNIError.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/JNIObject.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/NativeException.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/NativeResources.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/OperationContext.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ProgressEvent.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ReposNotifyInformation.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNClient.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNRepos.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNUtil.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SubversionException.class
javahl_java_DEPS = $(javahl_java_HEADERS) $(javahl_java_OBJECTS)
javahl-java: $(javahl_java_DEPS)
-javahl_java_SRC = $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientException.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitInfo.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItem.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItemStateFlags.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictResult.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/DiffSummary.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNConfig.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNEditor.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRemote.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNReporter.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/JNIError.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/JNIObject.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeException.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/OperationContext.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ProgressEvent.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ReposNotifyInformation.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNUtil.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/SubversionException.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/AuthnCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/BlameCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ChangelistCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ClientNotifyCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/CommitCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/CommitMessageCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ConfigEvent.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ConflictResolverCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/DiffSummaryCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ImportFilterCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InfoCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InheritedProplistCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ListCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ListItemCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/LogMessageCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/PatchCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ProgressCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ProplistCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/RemoteFileRevisionsCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/RemoteLocationSegmentsCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/RemoteStatus.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ReposFreezeAction.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ReposNotifyCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ReposVerifyCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/StatusCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/TunnelAgent.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/CommitEditor.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteFactory.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteSession.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RetryOpenSession.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StateReporter.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StatusEditor.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/ChangePath.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Checksum.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/ConflictVersion.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/CopySource.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Depth.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/DiffOptions.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/DirEntry.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/ExternalItem.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Info.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Lock.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/LogDate.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Mergeinfo.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/NativeInputStream.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/NativeOutputStream.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/NodeKind.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Property.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/RevisionRange.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/RevisionRangeList.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/RuntimeVersion.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Status.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Tristate.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Version.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/VersionExtended.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ConfigImpl.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ConfigLib.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/DiffLib.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/PropLib.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/RequestChannel.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ResponseChannel.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/SubstLib.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/TunnelChannel.java
-$(javahl_java_OBJECTS): $(javahl_java_SRC)
- $(COMPILE_JAVAHL_JAVAC) -d subversion/bindings/javahl/classes -classpath subversion/bindings/javahl/classes:$(javahl_java_CLASSPATH) $(javahl_java_SRC)
-
-
-javahl_javah_PATH = subversion/bindings/javahl/include
-javahl_javah_HEADERS = subversion/bindings/javahl/include/org_apache_subversion_javahl_ClientException.h subversion/bindings/javahl/include/org_apache_subversion_javahl_ClientNotifyInformation.h subversion/bindings/javahl/include/org_apache_subversion_javahl_CommitInfo.h subversion/bindings/javahl/include/org_apache_subversion_javahl_CommitItem.h subversion/bindings/javahl/include/org_apache_subversion_javahl_CommitItemStateFlags.h subversion/bindings/javahl/include/org_apache_subversion_javahl_ConflictDescriptor.h subversion/bindings/javahl/include/org_apache_subversion_javahl_ConflictResult.h subversion/bindings/javahl/include/org_apache_subversion_javahl_DiffSummary.h subversion/bindings/javahl/include/org_apache_subversion_javahl_ISVNClient.h subversion/bindings/javahl/include/org_apache_subversion_javahl_ISVNConfig.h subversion/bindings/javahl/include/org_apache_subversion_javahl_ISVNEditor.h subversion/bindings/javahl/include/org_apache_subversion_javahl_ISVNRemote.h subversion/bindings/javahl/include/org_apache_subversion_javahl_ISVNReporter.h subversion/bindings/javahl/include/org_apache_subversion_javahl_ISVNRepos.h subversion/bindings/javahl/include/org_apache_subversion_javahl_JNIError.h subversion/bindings/javahl/include/org_apache_subversion_javahl_JNIObject.h subversion/bindings/javahl/include/org_apache_subversion_javahl_NativeException.h subversion/bindings/javahl/include/org_apache_subversion_javahl_NativeResources.h subversion/bindings/javahl/include/org_apache_subversion_javahl_OperationContext.h subversion/bindings/javahl/include/org_apache_subversion_javahl_ProgressEvent.h subversion/bindings/javahl/include/org_apache_subversion_javahl_ReposNotifyInformation.h subversion/bindings/javahl/include/org_apache_subversion_javahl_SVNClient.h subversion/bindings/javahl/include/org_apache_subversion_javahl_SVNRepos.h subversion/bindings/javahl/include/org_apache_subversion_javahl_SVNUtil.h subversion/bindings/javahl/include/org_apache_subversion_javahl_SubversionException.h
-javahl_javah_OBJECTS =
-javahl_javah_DEPS = $(javahl_javah_HEADERS) $(javahl_javah_OBJECTS) $(javahl_java_DEPS)
-javahl-javah: $(javahl_javah_DEPS)
-javahl_javah_CLASS_FILENAMES = subversion/bindings/javahl/classes/org/apache/subversion/javahl/ClientException.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ClientNotifyInformation.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/CommitInfo.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/CommitItem.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/CommitItemStateFlags.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ConflictDescriptor.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ConflictResult.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/DiffSummary.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNClient.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNConfig.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNEditor.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNRemote.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNReporter.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNRepos.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/JNIError.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/JNIObject.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/NativeException.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/NativeResources.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/OperationContext.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ProgressEvent.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ReposNotifyInformation.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNClient.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNRepos.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNUtil.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SubversionException.class
-javahl_javah_CLASSES = org.apache.subversion.javahl.ClientException org.apache.subversion.javahl.ClientNotifyInformation org.apache.subversion.javahl.CommitInfo org.apache.subversion.javahl.CommitItem org.apache.subversion.javahl.CommitItemStateFlags org.apache.subversion.javahl.ConflictDescriptor org.apache.subversion.javahl.ConflictResult org.apache.subversion.javahl.DiffSummary org.apache.subversion.javahl.ISVNClient org.apache.subversion.javahl.ISVNConfig org.apache.subversion.javahl.ISVNEditor org.apache.subversion.javahl.ISVNRemote org.apache.subversion.javahl.ISVNReporter org.apache.subversion.javahl.ISVNRepos org.apache.subversion.javahl.JNIError org.apache.subversion.javahl.JNIObject org.apache.subversion.javahl.NativeException org.apache.subversion.javahl.NativeResources org.apache.subversion.javahl.OperationContext org.apache.subversion.javahl.ProgressEvent org.apache.subversion.javahl.ReposNotifyInformation org.apache.subversion.javahl.SVNClient org.apache.subversion.javahl.SVNRepos org.apache.subversion.javahl.SVNUtil org.apache.subversion.javahl.SubversionException
-$(javahl_javah_HEADERS): $(javahl_javah_CLASS_FILENAMES)
- $(COMPILE_JAVAHL_JAVAH) -force -d subversion/bindings/javahl/include -classpath subversion/bindings/javahl/classes:$(javahl_javah_CLASSPATH) $(javahl_javah_CLASSES)
+javahl_java_SRC = $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientException.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitInfo.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItem.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItemStateFlags.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictResult.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/DiffSummary.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNConfig.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNEditor.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRemote.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNReporter.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/JNIError.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/JNIObject.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeException.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/OperationContext.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ProgressEvent.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ReposNotifyInformation.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNUtil.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/SubversionException.java
+$(javahl_java_HEADERS) $(javahl_java_OBJECTS): $(javahl_java_SRC)
+ $(COMPILE_JAVAHL_JAVAC) -h subversion/bindings/javahl/include -d subversion/bindings/javahl/classes -classpath subversion/bindings/javahl/classes:$(javahl_java_CLASSPATH) $(javahl_java_SRC)
-javahl_remote_javah_PATH = subversion/bindings/javahl/include
-javahl_remote_javah_HEADERS = subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_CommitEditor.h subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_RemoteFactory.h subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_RemoteSession.h subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_RetryOpenSession.h subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_StateReporter.h subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_StatusEditor.h
-javahl_remote_javah_OBJECTS =
-javahl_remote_javah_DEPS = $(javahl_remote_javah_HEADERS) $(javahl_remote_javah_OBJECTS) $(javahl_java_DEPS)
-javahl-remote-javah: $(javahl_remote_javah_DEPS)
-javahl_remote_javah_CLASS_FILENAMES = subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/CommitEditor.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/RemoteFactory.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/RemoteSession.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/RetryOpenSession.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/StateReporter.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/StatusEditor.class
-javahl_remote_javah_CLASSES = org.apache.subversion.javahl.remote.CommitEditor org.apache.subversion.javahl.remote.RemoteFactory org.apache.subversion.javahl.remote.RemoteSession org.apache.subversion.javahl.remote.RetryOpenSession org.apache.subversion.javahl.remote.StateReporter org.apache.subversion.javahl.remote.StatusEditor
-$(javahl_remote_javah_HEADERS): $(javahl_remote_javah_CLASS_FILENAMES)
- $(COMPILE_JAVAHL_JAVAH) -force -d subversion/bindings/javahl/include -classpath subversion/bindings/javahl/classes:$(javahl_remote_javah_CLASSPATH) $(javahl_remote_javah_CLASSES)
+javahl_remote_java_PATH = subversion/bindings/javahl/classes
+javahl_remote_java_HEADERS = subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_CommitEditor.h subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_RemoteFactory.h subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_RemoteSession.h subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_StateReporter.h
+javahl_remote_java_OBJECTS = subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/CommitEditor.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/RemoteFactory.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/RemoteSession.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/RetryOpenSession.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/StateReporter.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/StatusEditor.class
+javahl_remote_java_DEPS = $(javahl_remote_java_HEADERS) $(javahl_remote_java_OBJECTS)
+javahl-remote-java: $(javahl_remote_java_DEPS)
+javahl_remote_java_SRC = $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/CommitEditor.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteFactory.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteSession.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RetryOpenSession.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StateReporter.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StatusEditor.java
+$(javahl_remote_java_HEADERS) $(javahl_remote_java_OBJECTS): $(javahl_remote_java_SRC)
+ $(COMPILE_JAVAHL_JAVAC) -h subversion/bindings/javahl/include -d subversion/bindings/javahl/classes -classpath subversion/bindings/javahl/classes:$(javahl_remote_java_CLASSPATH) $(javahl_remote_java_SRC)
javahl_tests_PATH = subversion/bindings/javahl/classes
javahl_tests_HEADERS =
javahl_tests_OBJECTS = subversion/bindings/javahl/classes/org/apache/subversion/javahl/BasicTests.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ExceptionTests.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/RunTests.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNRemoteTests.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNReposTests.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNTests.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/UtilTests.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/WC.class
-javahl_tests_DEPS = $(javahl_tests_HEADERS) $(javahl_tests_OBJECTS) $(javahl_java_DEPS)
+javahl_tests_DEPS = $(javahl_tests_HEADERS) $(javahl_tests_OBJECTS) $(javahl_callback_java_DEPS) $(javahl_remote_java_DEPS) $(javahl_types_java_DEPS) $(javahl_util_java_DEPS) $(javahl_java_DEPS)
javahl-tests: $(javahl_tests_DEPS)
javahl_tests_SRC = $(abs_srcdir)/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java $(abs_srcdir)/subversion/bindings/javahl/tests/org/apache/subversion/javahl/ExceptionTests.java $(abs_srcdir)/subversion/bindings/javahl/tests/org/apache/subversion/javahl/RunTests.java $(abs_srcdir)/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java $(abs_srcdir)/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNReposTests.java $(abs_srcdir)/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java $(abs_srcdir)/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java $(abs_srcdir)/subversion/bindings/javahl/tests/org/apache/subversion/javahl/WC.java
-$(javahl_tests_OBJECTS): $(javahl_tests_SRC)
+$(javahl_tests_HEADERS) $(javahl_tests_OBJECTS): $(javahl_tests_SRC)
$(COMPILE_JAVAHL_JAVAC) -d subversion/bindings/javahl/classes -classpath subversion/bindings/javahl/classes:$(javahl_tests_CLASSPATH) $(javahl_tests_SRC)
-javahl_types_javah_PATH = subversion/bindings/javahl/include
-javahl_types_javah_HEADERS = subversion/bindings/javahl/include/org_apache_subversion_javahl_types_ChangePath.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Checksum.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_ConflictVersion.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_CopySource.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Depth.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_DiffOptions.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_DirEntry.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_ExternalItem.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Info.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Lock.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_LogDate.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Mergeinfo.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_NativeInputStream.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_NativeOutputStream.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_NodeKind.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Property.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Revision.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_RevisionRange.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_RevisionRangeList.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_RuntimeVersion.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Status.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Tristate.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Version.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended.h
-javahl_types_javah_OBJECTS =
-javahl_types_javah_DEPS = $(javahl_types_javah_HEADERS) $(javahl_types_javah_OBJECTS) $(javahl_java_DEPS)
-javahl-types-javah: $(javahl_types_javah_DEPS)
-javahl_types_javah_CLASS_FILENAMES = subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/ChangePath.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Checksum.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/ConflictVersion.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/CopySource.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Depth.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/DiffOptions.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/DirEntry.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/ExternalItem.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Info.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Lock.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/LogDate.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Mergeinfo.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/NativeInputStream.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/NativeOutputStream.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/NodeKind.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Property.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Revision.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/RevisionRange.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/RevisionRangeList.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/RuntimeVersion.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Status.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Tristate.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Version.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/VersionExtended.class
-javahl_types_javah_CLASSES = org.apache.subversion.javahl.types.ChangePath org.apache.subversion.javahl.types.Checksum org.apache.subversion.javahl.types.ConflictVersion org.apache.subversion.javahl.types.CopySource org.apache.subversion.javahl.types.Depth org.apache.subversion.javahl.types.DiffOptions org.apache.subversion.javahl.types.DirEntry org.apache.subversion.javahl.types.ExternalItem org.apache.subversion.javahl.types.Info org.apache.subversion.javahl.types.Lock org.apache.subversion.javahl.types.LogDate org.apache.subversion.javahl.types.Mergeinfo org.apache.subversion.javahl.types.NativeInputStream org.apache.subversion.javahl.types.NativeOutputStream org.apache.subversion.javahl.types.NodeKind org.apache.subversion.javahl.types.Property org.apache.subversion.javahl.types.Revision org.apache.subversion.javahl.types.RevisionRange org.apache.subversion.javahl.types.RevisionRangeList org.apache.subversion.javahl.types.RuntimeVersion org.apache.subversion.javahl.types.Status org.apache.subversion.javahl.types.Tristate org.apache.subversion.javahl.types.Version org.apache.subversion.javahl.types.VersionExtended
-$(javahl_types_javah_HEADERS): $(javahl_types_javah_CLASS_FILENAMES)
- $(COMPILE_JAVAHL_JAVAH) -force -d subversion/bindings/javahl/include -classpath subversion/bindings/javahl/classes:$(javahl_types_javah_CLASSPATH) $(javahl_types_javah_CLASSES)
+javahl_types_java_PATH = subversion/bindings/javahl/classes
+javahl_types_java_HEADERS = subversion/bindings/javahl/include/org_apache_subversion_javahl_types_NativeInputStream.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_NativeOutputStream.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Revision.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_RevisionRangeList.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_RuntimeVersion.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Version.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended.h
+javahl_types_java_OBJECTS = subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/ChangePath.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Checksum.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/ConflictVersion.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/CopySource.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Depth.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/DiffOptions.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/DirEntry.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/ExternalItem.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Info.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Lock.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/LogDate.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Mergeinfo.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/NativeInputStream.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/NativeOutputStream.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/NodeKind.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Property.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Revision.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/RevisionRange.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/RevisionRangeList.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/RuntimeVersion.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Status.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Tristate.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Version.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/VersionExtended.class
+javahl_types_java_DEPS = $(javahl_types_java_HEADERS) $(javahl_types_java_OBJECTS)
+javahl-types-java: $(javahl_types_java_DEPS)
+javahl_types_java_SRC = $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/ChangePath.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Checksum.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/ConflictVersion.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/CopySource.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Depth.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/DiffOptions.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/DirEntry.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/ExternalItem.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Info.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Lock.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/LogDate.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Mergeinfo.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/NativeInputStream.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/NativeOutputStream.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/NodeKind.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Property.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/RevisionRange.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/RevisionRangeList.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/RuntimeVersion.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Status.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Tristate.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Version.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/VersionExtended.java
+$(javahl_types_java_HEADERS) $(javahl_types_java_OBJECTS): $(javahl_types_java_SRC)
+ $(COMPILE_JAVAHL_JAVAC) -h subversion/bindings/javahl/include -d subversion/bindings/javahl/classes -classpath subversion/bindings/javahl/classes:$(javahl_types_java_CLASSPATH) $(javahl_types_java_SRC)
-javahl_util_javah_PATH = subversion/bindings/javahl/include
-javahl_util_javah_HEADERS = subversion/bindings/javahl/include/org_apache_subversion_javahl_util_ConfigImpl.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_ConfigLib.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_DiffLib.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_PropLib.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_RequestChannel.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_ResponseChannel.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_SubstLib.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_TunnelChannel.h
-javahl_util_javah_OBJECTS =
-javahl_util_javah_DEPS = $(javahl_util_javah_HEADERS) $(javahl_util_javah_OBJECTS) $(javahl_java_DEPS)
-javahl-util-javah: $(javahl_util_javah_DEPS)
-javahl_util_javah_CLASS_FILENAMES = subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/ConfigImpl.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/ConfigLib.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/DiffLib.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/PropLib.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/RequestChannel.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/ResponseChannel.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/SubstLib.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/TunnelChannel.class
-javahl_util_javah_CLASSES = org.apache.subversion.javahl.util.ConfigImpl org.apache.subversion.javahl.util.ConfigLib org.apache.subversion.javahl.util.DiffLib org.apache.subversion.javahl.util.PropLib org.apache.subversion.javahl.util.RequestChannel org.apache.subversion.javahl.util.ResponseChannel org.apache.subversion.javahl.util.SubstLib org.apache.subversion.javahl.util.TunnelChannel
-$(javahl_util_javah_HEADERS): $(javahl_util_javah_CLASS_FILENAMES)
- $(COMPILE_JAVAHL_JAVAH) -force -d subversion/bindings/javahl/include -classpath subversion/bindings/javahl/classes:$(javahl_util_javah_CLASSPATH) $(javahl_util_javah_CLASSES)
+javahl_util_java_PATH = subversion/bindings/javahl/classes
+javahl_util_java_HEADERS = subversion/bindings/javahl/include/org_apache_subversion_javahl_util_ConfigImpl.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_ConfigLib.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_DiffLib.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_PropLib.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_RequestChannel.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_ResponseChannel.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_SubstLib.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_TunnelChannel.h
+javahl_util_java_OBJECTS = subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/ConfigImpl.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/ConfigLib.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/DiffLib.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/PropLib.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/RequestChannel.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/ResponseChannel.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/SubstLib.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/TunnelChannel.class
+javahl_util_java_DEPS = $(javahl_util_java_HEADERS) $(javahl_util_java_OBJECTS)
+javahl-util-java: $(javahl_util_java_DEPS)
+javahl_util_java_SRC = $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ConfigImpl.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ConfigLib.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/DiffLib.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/PropLib.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/RequestChannel.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ResponseChannel.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/SubstLib.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/TunnelChannel.java
+$(javahl_util_java_HEADERS) $(javahl_util_java_OBJECTS): $(javahl_util_java_SRC)
+ $(COMPILE_JAVAHL_JAVAC) -h subversion/bindings/javahl/include -d subversion/bindings/javahl/classes -classpath subversion/bindings/javahl/classes:$(javahl_util_java_CLASSPATH) $(javahl_util_java_SRC)
-libgooglemock_PATH = googlemock
-libgooglemock_DEPS =
-libgooglemock_OBJECTS =
-googlemock/libgooglemock-1.la: $(libgooglemock_DEPS)
- if $(SVN_USE_GOOGLEMOCK) ; then cd googlemock && $(LINK_CXX_LIB) $(libgooglemock_LDFLAGS) -o libgooglemock-1.la $(LT_NO_UNDEFINED) $(libgooglemock_OBJECTS) $(LIBS) ; else echo "fake" > googlemock/libgooglemock-1.la ; fi
-
libsvn_auth_gnome_keyring_PATH = subversion/libsvn_auth_gnome_keyring
libsvn_auth_gnome_keyring_DEPS = subversion/libsvn_auth_gnome_keyring/gnome_keyring.lo subversion/libsvn_auth_gnome_keyring/version.lo subversion/libsvn_subr/libsvn_subr-1.la
libsvn_auth_gnome_keyring_OBJECTS = gnome_keyring.lo version.lo
@@ -429,8 +438,8 @@ subversion/libsvn_auth_kwallet/libsvn_auth_kwallet-1.la: $(libsvn_auth_kwallet_D
cd subversion/libsvn_auth_kwallet && $(LINK_SHARED_ONLY_CXX_LIB) $(libsvn_auth_kwallet_LDFLAGS) -o libsvn_auth_kwallet-1.la $(LT_NO_UNDEFINED) $(libsvn_auth_kwallet_OBJECTS) ../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(SVN_KWALLET_LIBS) $(LIBS)
libsvn_client_PATH = subversion/libsvn_client
-libsvn_client_DEPS = subversion/libsvn_client/add.lo subversion/libsvn_client/blame.lo subversion/libsvn_client/cat.lo subversion/libsvn_client/changelist.lo subversion/libsvn_client/checkout.lo subversion/libsvn_client/cleanup.lo subversion/libsvn_client/cmdline.lo subversion/libsvn_client/commit.lo subversion/libsvn_client/commit_util.lo subversion/libsvn_client/compat_providers.lo subversion/libsvn_client/conflicts.lo subversion/libsvn_client/copy.lo subversion/libsvn_client/copy_foreign.lo subversion/libsvn_client/ctx.lo subversion/libsvn_client/delete.lo subversion/libsvn_client/deprecated.lo subversion/libsvn_client/diff.lo subversion/libsvn_client/diff_local.lo subversion/libsvn_client/diff_summarize.lo subversion/libsvn_client/export.lo subversion/libsvn_client/externals.lo subversion/libsvn_client/import.lo subversion/libsvn_client/info.lo subversion/libsvn_client/iprops.lo subversion/libsvn_client/list.lo subversion/libsvn_client/locking_commands.lo subversion/libsvn_client/log.lo subversion/libsvn_client/merge.lo subversion/libsvn_client/merge_elements.lo subversion/libsvn_client/mergeinfo.lo subversion/libsvn_client/mtcc.lo subversion/libsvn_client/patch.lo subversion/libsvn_client/prop_commands.lo subversion/libsvn_client/ra.lo subversion/libsvn_client/relocate.lo subversion/libsvn_client/repos_diff.lo subversion/libsvn_client/resolved.lo subversion/libsvn_client/revert.lo subversion/libsvn_client/revisions.lo subversion/libsvn_client/shelve.lo subversion/libsvn_client/status.lo subversion/libsvn_client/switch.lo subversion/libsvn_client/update.lo subversion/libsvn_client/upgrade.lo subversion/libsvn_client/url.lo subversion/libsvn_client/util.lo subversion/libsvn_client/version.lo subversion/libsvn_wc/libsvn_wc-1.la subversion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_diff/libsvn_diff-1.la subversion/libsvn_subr/libsvn_subr-1.la
-libsvn_client_OBJECTS = add.lo blame.lo cat.lo changelist.lo checkout.lo cleanup.lo cmdline.lo commit.lo commit_util.lo compat_providers.lo conflicts.lo copy.lo copy_foreign.lo ctx.lo delete.lo deprecated.lo diff.lo diff_local.lo diff_summarize.lo export.lo externals.lo import.lo info.lo iprops.lo list.lo locking_commands.lo log.lo merge.lo merge_elements.lo mergeinfo.lo mtcc.lo patch.lo prop_commands.lo ra.lo relocate.lo repos_diff.lo resolved.lo revert.lo revisions.lo shelve.lo status.lo switch.lo update.lo upgrade.lo url.lo util.lo version.lo
+libsvn_client_DEPS = subversion/libsvn_client/add.lo subversion/libsvn_client/blame.lo subversion/libsvn_client/cat.lo subversion/libsvn_client/changelist.lo subversion/libsvn_client/checkout.lo subversion/libsvn_client/cleanup.lo subversion/libsvn_client/cmdline.lo subversion/libsvn_client/commit.lo subversion/libsvn_client/commit_util.lo subversion/libsvn_client/compat_providers.lo subversion/libsvn_client/conflicts.lo subversion/libsvn_client/copy.lo subversion/libsvn_client/ctx.lo subversion/libsvn_client/delete.lo subversion/libsvn_client/deprecated.lo subversion/libsvn_client/diff.lo subversion/libsvn_client/diff_local.lo subversion/libsvn_client/diff_summarize.lo subversion/libsvn_client/export.lo subversion/libsvn_client/externals.lo subversion/libsvn_client/import.lo subversion/libsvn_client/info.lo subversion/libsvn_client/iprops.lo subversion/libsvn_client/layout.lo subversion/libsvn_client/list.lo subversion/libsvn_client/locking_commands.lo subversion/libsvn_client/log.lo subversion/libsvn_client/merge.lo subversion/libsvn_client/merge_elements.lo subversion/libsvn_client/mergeinfo.lo subversion/libsvn_client/mtcc.lo subversion/libsvn_client/patch.lo subversion/libsvn_client/prop_commands.lo subversion/libsvn_client/ra.lo subversion/libsvn_client/relocate.lo subversion/libsvn_client/repos_diff.lo subversion/libsvn_client/resolved.lo subversion/libsvn_client/revert.lo subversion/libsvn_client/revisions.lo subversion/libsvn_client/shelf.lo subversion/libsvn_client/shelf2.lo subversion/libsvn_client/status.lo subversion/libsvn_client/switch.lo subversion/libsvn_client/update.lo subversion/libsvn_client/upgrade.lo subversion/libsvn_client/url.lo subversion/libsvn_client/util.lo subversion/libsvn_client/version.lo subversion/libsvn_client/wc_editor.lo subversion/libsvn_wc/libsvn_wc-1.la subversion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_diff/libsvn_diff-1.la subversion/libsvn_subr/libsvn_subr-1.la
+libsvn_client_OBJECTS = add.lo blame.lo cat.lo changelist.lo checkout.lo cleanup.lo cmdline.lo commit.lo commit_util.lo compat_providers.lo conflicts.lo copy.lo ctx.lo delete.lo deprecated.lo diff.lo diff_local.lo diff_summarize.lo export.lo externals.lo import.lo info.lo iprops.lo layout.lo list.lo locking_commands.lo log.lo merge.lo merge_elements.lo mergeinfo.lo mtcc.lo patch.lo prop_commands.lo ra.lo relocate.lo repos_diff.lo resolved.lo revert.lo revisions.lo shelf.lo shelf2.lo status.lo switch.lo update.lo upgrade.lo url.lo util.lo version.lo wc_editor.lo
subversion/libsvn_client/libsvn_client-1.la: $(libsvn_client_DEPS)
cd subversion/libsvn_client && $(LINK_LIB) $(libsvn_client_LDFLAGS) -o libsvn_client-1.la $(LT_NO_UNDEFINED) $(libsvn_client_OBJECTS) ../../subversion/libsvn_wc/libsvn_wc-1.la ../../subversion/libsvn_ra/libsvn_ra-1.la ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_diff/libsvn_diff-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(LIBS)
@@ -503,8 +512,8 @@ subversion/libsvn_ra_svn/libsvn_ra_svn-1.la: $(libsvn_ra_svn_DEPS)
cd subversion/libsvn_ra_svn && $(LINK_LIB) $(libsvn_ra_svn_LDFLAGS) -o libsvn_ra_svn-1.la $(LT_NO_UNDEFINED) $(libsvn_ra_svn_OBJECTS) ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(SVN_SASL_LIBS) $(LIBS)
libsvn_repos_PATH = subversion/libsvn_repos
-libsvn_repos_DEPS = subversion/libsvn_repos/authz.lo subversion/libsvn_repos/authz_info.lo subversion/libsvn_repos/authz_parse.lo subversion/libsvn_repos/commit.lo subversion/libsvn_repos/compat.lo subversion/libsvn_repos/config_file.lo subversion/libsvn_repos/config_pool.lo subversion/libsvn_repos/delta.lo subversion/libsvn_repos/deprecated.lo subversion/libsvn_repos/dump.lo subversion/libsvn_repos/fs-wrap.lo subversion/libsvn_repos/hooks.lo subversion/libsvn_repos/list.lo subversion/libsvn_repos/load-fs-vtable.lo subversion/libsvn_repos/load.lo subversion/libsvn_repos/log.lo subversion/libsvn_repos/node_tree.lo subversion/libsvn_repos/notify.lo subversion/libsvn_repos/replay.lo subversion/libsvn_repos/reporter.lo subversion/libsvn_repos/repos.lo subversion/libsvn_repos/rev_hunt.lo subversion/libsvn_fs/libsvn_fs-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_subr/libsvn_subr-1.la
-libsvn_repos_OBJECTS = authz.lo authz_info.lo authz_parse.lo commit.lo compat.lo config_file.lo config_pool.lo delta.lo deprecated.lo dump.lo fs-wrap.lo hooks.lo list.lo load-fs-vtable.lo load.lo log.lo node_tree.lo notify.lo replay.lo reporter.lo repos.lo rev_hunt.lo
+libsvn_repos_DEPS = subversion/libsvn_repos/authz.lo subversion/libsvn_repos/authz_info.lo subversion/libsvn_repos/authz_parse.lo subversion/libsvn_repos/commit.lo subversion/libsvn_repos/compat.lo subversion/libsvn_repos/config_file.lo subversion/libsvn_repos/config_pool.lo subversion/libsvn_repos/delta.lo subversion/libsvn_repos/deprecated.lo subversion/libsvn_repos/dump.lo subversion/libsvn_repos/dump_editor.lo subversion/libsvn_repos/fs-wrap.lo subversion/libsvn_repos/hooks.lo subversion/libsvn_repos/list.lo subversion/libsvn_repos/load-fs-vtable.lo subversion/libsvn_repos/load.lo subversion/libsvn_repos/log.lo subversion/libsvn_repos/node_tree.lo subversion/libsvn_repos/notify.lo subversion/libsvn_repos/replay.lo subversion/libsvn_repos/reporter.lo subversion/libsvn_repos/repos.lo subversion/libsvn_repos/rev_hunt.lo subversion/libsvn_fs/libsvn_fs-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_subr/libsvn_subr-1.la
+libsvn_repos_OBJECTS = authz.lo authz_info.lo authz_parse.lo commit.lo compat.lo config_file.lo config_pool.lo delta.lo deprecated.lo dump.lo dump_editor.lo fs-wrap.lo hooks.lo list.lo load-fs-vtable.lo load.lo log.lo node_tree.lo notify.lo replay.lo reporter.lo repos.lo rev_hunt.lo
subversion/libsvn_repos/libsvn_repos-1.la: $(libsvn_repos_DEPS)
cd subversion/libsvn_repos && $(LINK_LIB) $(libsvn_repos_LDFLAGS) -o libsvn_repos-1.la $(LT_NO_UNDEFINED) $(libsvn_repos_OBJECTS) ../../subversion/libsvn_fs/libsvn_fs-1.la ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(LIBS)
@@ -512,7 +521,7 @@ libsvn_subr_PATH = subversion/libsvn_subr
libsvn_subr_DEPS = subversion/libsvn_subr/adler32.lo subversion/libsvn_subr/atomic.lo subversion/libsvn_subr/auth.lo subversion/libsvn_subr/base64.lo subversion/libsvn_subr/bit_array.lo subversion/libsvn_subr/cache-inprocess.lo subversion/libsvn_subr/cache-membuffer.lo subversion/libsvn_subr/cache-memcache.lo subversion/libsvn_subr/cache-null.lo subversion/libsvn_subr/cache.lo subversion/libsvn_subr/cache_config.lo subversion/libsvn_subr/checksum.lo subversion/libsvn_subr/cmdline.lo subversion/libsvn_subr/compat.lo subversion/libsvn_subr/compress_lz4.lo subversion/libsvn_subr/compress_zlib.lo subversion/libsvn_subr/config.lo subversion/libsvn_subr/config_auth.lo subversion/libsvn_subr/config_file.lo subversion/libsvn_subr/config_win.lo subversion/libsvn_subr/crypto.lo subversion/libsvn_subr/ctype.lo subversion/libsvn_subr/date.lo subversion/libsvn_subr/debug.lo subversion/libsvn_subr/deprecated.lo subversion/libsvn_subr/dirent_uri.lo subversion/libsvn_subr/dso.lo subversion/libsvn_subr/encode.lo subversion/libsvn_subr/eol.lo subversion/libsvn_subr/error.lo subversion/libsvn_subr/fnv1a.lo subversion/libsvn_subr/gpg_agent.lo subversion/libsvn_subr/hash.lo subversion/libsvn_subr/io.lo subversion/libsvn_subr/iter.lo subversion/libsvn_subr/lock.lo subversion/libsvn_subr/log.lo subversion/libsvn_subr/lz4/lz4.lo subversion/libsvn_subr/macos_keychain.lo subversion/libsvn_subr/magic.lo subversion/libsvn_subr/md5.lo subversion/libsvn_subr/mergeinfo.lo subversion/libsvn_subr/mutex.lo subversion/libsvn_subr/nls.lo subversion/libsvn_subr/object_pool.lo subversion/libsvn_subr/opt.lo subversion/libsvn_subr/packed_data.lo subversion/libsvn_subr/path.lo subversion/libsvn_subr/pool.lo subversion/libsvn_subr/prefix_string.lo subversion/libsvn_subr/prompt.lo subversion/libsvn_subr/properties.lo subversion/libsvn_subr/quoprint.lo subversion/libsvn_subr/root_pools.lo subversion/libsvn_subr/simple_providers.lo subversion/libsvn_subr/skel.lo subversion/libsvn_subr/sorts.lo subversion/libsvn_subr/spillbuf.lo subversion/libsvn_subr/sqlite.lo subversion/libsvn_subr/sqlite3wrapper.lo subversion/libsvn_subr/ssl_client_cert_providers.lo subversion/libsvn_subr/ssl_client_cert_pw_providers.lo subversion/libsvn_subr/ssl_server_trust_providers.lo subversion/libsvn_subr/stream.lo subversion/libsvn_subr/string.lo subversion/libsvn_subr/subst.lo subversion/libsvn_subr/sysinfo.lo subversion/libsvn_subr/target.lo subversion/libsvn_subr/temp_serializer.lo subversion/libsvn_subr/time.lo subversion/libsvn_subr/token.lo subversion/libsvn_subr/types.lo subversion/libsvn_subr/user.lo subversion/libsvn_subr/username_providers.lo subversion/libsvn_subr/utf.lo subversion/libsvn_subr/utf8proc.lo subversion/libsvn_subr/utf_validate.lo subversion/libsvn_subr/utf_width.lo subversion/libsvn_subr/validate.lo subversion/libsvn_subr/version.lo subversion/libsvn_subr/win32_crashrpt.lo subversion/libsvn_subr/win32_crypto.lo subversion/libsvn_subr/win32_xlate.lo subversion/libsvn_subr/x509info.lo subversion/libsvn_subr/x509parse.lo subversion/libsvn_subr/xml.lo
libsvn_subr_OBJECTS = adler32.lo atomic.lo auth.lo base64.lo bit_array.lo cache-inprocess.lo cache-membuffer.lo cache-memcache.lo cache-null.lo cache.lo cache_config.lo checksum.lo cmdline.lo compat.lo compress_lz4.lo compress_zlib.lo config.lo config_auth.lo config_file.lo config_win.lo crypto.lo ctype.lo date.lo debug.lo deprecated.lo dirent_uri.lo dso.lo encode.lo eol.lo error.lo fnv1a.lo gpg_agent.lo hash.lo io.lo iter.lo lock.lo log.lo lz4/lz4.lo macos_keychain.lo magic.lo md5.lo mergeinfo.lo mutex.lo nls.lo object_pool.lo opt.lo packed_data.lo path.lo pool.lo prefix_string.lo prompt.lo properties.lo quoprint.lo root_pools.lo simple_providers.lo skel.lo sorts.lo spillbuf.lo sqlite.lo sqlite3wrapper.lo ssl_client_cert_providers.lo ssl_client_cert_pw_providers.lo ssl_server_trust_providers.lo stream.lo string.lo subst.lo sysinfo.lo target.lo temp_serializer.lo time.lo token.lo types.lo user.lo username_providers.lo utf.lo utf8proc.lo utf_validate.lo utf_width.lo validate.lo version.lo win32_crashrpt.lo win32_crypto.lo win32_xlate.lo x509info.lo x509parse.lo xml.lo
subversion/libsvn_subr/libsvn_subr-1.la: $(libsvn_subr_DEPS)
- cd subversion/libsvn_subr && $(LINK_LIB) $(libsvn_subr_LDFLAGS) -o libsvn_subr-1.la $(LT_NO_UNDEFINED) $(libsvn_subr_OBJECTS) $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(SVN_XML_LIBS) $(SVN_ZLIB_LIBS) $(SVN_APR_MEMCACHE_LIBS) $(SVN_SQLITE_LIBS) $(SVN_MAGIC_LIBS) $(SVN_INTL_LIBS) $(SVN_LZ4_LIBS) $(SVN_UTF8PROC_LIBS) $(LIBS)
+ cd subversion/libsvn_subr && $(LINK_LIB) $(libsvn_subr_LDFLAGS) -o libsvn_subr-1.la $(LT_NO_UNDEFINED) $(libsvn_subr_OBJECTS) $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(SVN_XML_LIBS) $(SVN_ZLIB_LIBS) $(SVN_APR_MEMCACHE_LIBS) $(SVN_SQLITE_LIBS) $(SVN_MAGIC_LIBS) $(SVN_INTL_LIBS) $(SVN_LZ4_LIBS) $(SVN_UTF8PROC_LIBS) $(SVN_MACOS_PLIST_LIBS) $(SVN_MACOS_KEYCHAIN_LIBS) $(LIBS)
libsvn_swig_perl_PATH = subversion/bindings/swig/perl/libsvn_swig_perl
libsvn_swig_perl_DEPS = subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.lo subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_subr/libsvn_subr-1.la
@@ -544,18 +553,18 @@ libsvn_wc_OBJECTS = adm_crawler.lo adm_files.lo adm_ops.lo ambient_depth_filter_
subversion/libsvn_wc/libsvn_wc-1.la: $(libsvn_wc_DEPS)
cd subversion/libsvn_wc && $(LINK_LIB) $(libsvn_wc_LDFLAGS) -o libsvn_wc-1.la $(LT_NO_UNDEFINED) $(libsvn_wc_OBJECTS) ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_diff/libsvn_diff-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(LIBS)
-libsvncxxhl_PATH = subversion/bindings/cxxhl
-libsvncxxhl_DEPS = subversion/bindings/cxxhl/src/aprwrap/impl.lo subversion/bindings/cxxhl/src/exception.lo subversion/bindings/cxxhl/src/tristate.lo subversion/libsvn_repos/libsvn_repos-1.la subversion/libsvn_client/libsvn_client-1.la subversion/libsvn_wc/libsvn_wc-1.la subversion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_diff/libsvn_diff-1.la subversion/libsvn_subr/libsvn_subr-1.la subversion/libsvn_fs/libsvn_fs-1.la
-libsvncxxhl_OBJECTS = src/aprwrap/impl.lo src/exception.lo src/tristate.lo
-subversion/bindings/cxxhl/libsvncxxhl-1.la: $(libsvncxxhl_DEPS)
- cd subversion/bindings/cxxhl && $(LINK_CXX_LIB) $(libsvncxxhl_LDFLAGS) -o libsvncxxhl-1.la $(LT_NO_UNDEFINED) $(libsvncxxhl_OBJECTS) ../../../subversion/libsvn_repos/libsvn_repos-1.la ../../../subversion/libsvn_client/libsvn_client-1.la ../../../subversion/libsvn_wc/libsvn_wc-1.la ../../../subversion/libsvn_ra/libsvn_ra-1.la ../../../subversion/libsvn_delta/libsvn_delta-1.la ../../../subversion/libsvn_diff/libsvn_diff-1.la ../../../subversion/libsvn_subr/libsvn_subr-1.la ../../../subversion/libsvn_fs/libsvn_fs-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(LIBS)
-
libsvnjavahl_PATH = subversion/bindings/javahl/native
-libsvnjavahl_DEPS = $(javahl_java_DEPS) $(javahl_callback_javah_DEPS) $(javahl_remote_javah_DEPS) $(javahl_types_javah_DEPS) $(javahl_util_javah_DEPS) $(javahl_javah_DEPS) subversion/bindings/javahl/native/Array.lo subversion/bindings/javahl/native/AuthnCallback.lo subversion/bindings/javahl/native/BlameCallback.lo subversion/bindings/javahl/native/ChangelistCallback.lo subversion/bindings/javahl/native/ClientContext.lo subversion/bindings/javahl/native/CommitCallback.lo subversion/bindings/javahl/native/CommitEditor.lo subversion/bindings/javahl/native/CommitMessage.lo subversion/bindings/javahl/native/CopySources.lo subversion/bindings/javahl/native/CreateJ.lo subversion/bindings/javahl/native/Credential.lo subversion/bindings/javahl/native/DiffOptions.lo subversion/bindings/javahl/native/DiffSummaryReceiver.lo subversion/bindings/javahl/native/EditorCallbacks.lo subversion/bindings/javahl/native/EditorProxy.lo subversion/bindings/javahl/native/EnumMapper.lo subversion/bindings/javahl/native/ExternalItem.lo subversion/bindings/javahl/native/File.lo subversion/bindings/javahl/native/ImportFilterCallback.lo subversion/bindings/javahl/native/InfoCallback.lo subversion/bindings/javahl/native/InputStream.lo subversion/bindings/javahl/native/Iterator.lo subversion/bindings/javahl/native/JNIByteArray.lo subversion/bindings/javahl/native/JNICriticalSection.lo subversion/bindings/javahl/native/JNIMutex.lo subversion/bindings/javahl/native/JNIStackElement.lo subversion/bindings/javahl/native/JNIStringHolder.lo subversion/bindings/javahl/native/JNIUtil.lo subversion/bindings/javahl/native/ListCallback.lo subversion/bindings/javahl/native/LockTokenTable.lo subversion/bindings/javahl/native/LogMessageCallback.lo subversion/bindings/javahl/native/MessageReceiver.lo subversion/bindings/javahl/native/NativeStream.lo subversion/bindings/javahl/native/OperationContext.lo subversion/bindings/javahl/native/OutputStream.lo subversion/bindings/javahl/native/PatchCallback.lo subversion/bindings/javahl/native/Path.lo subversion/bindings/javahl/native/Pool.lo subversion/bindings/javahl/native/Prompter.lo subversion/bindings/javahl/native/PropertyTable.lo subversion/bindings/javahl/native/ProplistCallback.lo subversion/bindings/javahl/native/RemoteSession.lo subversion/bindings/javahl/native/RemoteSessionContext.lo subversion/bindings/javahl/native/ReposFreezeAction.lo subversion/bindings/javahl/native/ReposNotifyCallback.lo subversion/bindings/javahl/native/ReposVerifyCallback.lo subversion/bindings/javahl/native/Revision.lo subversion/bindings/javahl/native/RevisionRange.lo subversion/bindings/javahl/native/RevisionRangeList.lo subversion/bindings/javahl/native/SVNBase.lo subversion/bindings/javahl/native/SVNClient.lo subversion/bindings/javahl/native/SVNRepos.lo subversion/bindings/javahl/native/StateReporter.lo subversion/bindings/javahl/native/StatusCallback.lo subversion/bindings/javahl/native/StringArray.lo subversion/bindings/javahl/native/SubversionException.lo subversion/bindings/javahl/native/Targets.lo subversion/bindings/javahl/native/Utility.lo subversion/bindings/javahl/native/VersionExtended.lo subversion/bindings/javahl/native/deprecated.lo subversion/bindings/javahl/native/jniwrapper/jni_base.lo subversion/bindings/javahl/native/jniwrapper/jni_channel.lo subversion/bindings/javahl/native/jniwrapper/jni_class_cache.lo subversion/bindings/javahl/native/jniwrapper/jni_io_stream.lo subversion/bindings/javahl/native/jniwrapper/jni_iterator.lo subversion/bindings/javahl/native/jniwrapper/jni_list.lo subversion/bindings/javahl/native/jniwrapper/jni_string_map.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_NativeResources.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_CommitEditor.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteSession.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_StateReporter.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_types_RevisionRangeList.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_types_RuntimeVersion.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_types_Version.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_types_VersionExtended.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigImpl_Category.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigLib.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_DiffLib.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_PropLib.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_SubstLib.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_TunnelChannel.lo subversion/libsvn_repos/libsvn_repos-1.la subversion/libsvn_client/libsvn_client-1.la subversion/libsvn_wc/libsvn_wc-1.la subversion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_diff/libsvn_diff-1.la subversion/libsvn_subr/libsvn_subr-1.la subversion/libsvn_fs/libsvn_fs-1.la
+libsvnjavahl_DEPS = $(javahl_java_DEPS) $(javahl_callback_java_DEPS) $(javahl_remote_java_DEPS) $(javahl_types_java_DEPS) $(javahl_util_java_DEPS) $(javahl_java_DEPS) subversion/bindings/javahl/native/Array.lo subversion/bindings/javahl/native/AuthnCallback.lo subversion/bindings/javahl/native/BlameCallback.lo subversion/bindings/javahl/native/ChangelistCallback.lo subversion/bindings/javahl/native/ClientContext.lo subversion/bindings/javahl/native/CommitCallback.lo subversion/bindings/javahl/native/CommitEditor.lo subversion/bindings/javahl/native/CommitMessage.lo subversion/bindings/javahl/native/CopySources.lo subversion/bindings/javahl/native/CreateJ.lo subversion/bindings/javahl/native/Credential.lo subversion/bindings/javahl/native/DiffOptions.lo subversion/bindings/javahl/native/DiffSummaryReceiver.lo subversion/bindings/javahl/native/EditorCallbacks.lo subversion/bindings/javahl/native/EditorProxy.lo subversion/bindings/javahl/native/EnumMapper.lo subversion/bindings/javahl/native/ExternalItem.lo subversion/bindings/javahl/native/File.lo subversion/bindings/javahl/native/ImportFilterCallback.lo subversion/bindings/javahl/native/InfoCallback.lo subversion/bindings/javahl/native/InputStream.lo subversion/bindings/javahl/native/Iterator.lo subversion/bindings/javahl/native/JNIByteArray.lo subversion/bindings/javahl/native/JNICriticalSection.lo subversion/bindings/javahl/native/JNIMutex.lo subversion/bindings/javahl/native/JNIStackElement.lo subversion/bindings/javahl/native/JNIStringHolder.lo subversion/bindings/javahl/native/JNIUtil.lo subversion/bindings/javahl/native/ListCallback.lo subversion/bindings/javahl/native/LockTokenTable.lo subversion/bindings/javahl/native/LogMessageCallback.lo subversion/bindings/javahl/native/MessageReceiver.lo subversion/bindings/javahl/native/NativeStream.lo subversion/bindings/javahl/native/OperationContext.lo subversion/bindings/javahl/native/OutputStream.lo subversion/bindings/javahl/native/PatchCallback.lo subversion/bindings/javahl/native/Path.lo subversion/bindings/javahl/native/Pool.lo subversion/bindings/javahl/native/Prompter.lo subversion/bindings/javahl/native/PropertyTable.lo subversion/bindings/javahl/native/ProplistCallback.lo subversion/bindings/javahl/native/RemoteSession.lo subversion/bindings/javahl/native/RemoteSessionContext.lo subversion/bindings/javahl/native/ReposFreezeAction.lo subversion/bindings/javahl/native/ReposNotifyCallback.lo subversion/bindings/javahl/native/ReposVerifyCallback.lo subversion/bindings/javahl/native/Revision.lo subversion/bindings/javahl/native/RevisionRange.lo subversion/bindings/javahl/native/RevisionRangeList.lo subversion/bindings/javahl/native/SVNBase.lo subversion/bindings/javahl/native/SVNClient.lo subversion/bindings/javahl/native/SVNRepos.lo subversion/bindings/javahl/native/StateReporter.lo subversion/bindings/javahl/native/StatusCallback.lo subversion/bindings/javahl/native/StringArray.lo subversion/bindings/javahl/native/SubversionException.lo subversion/bindings/javahl/native/Targets.lo subversion/bindings/javahl/native/Utility.lo subversion/bindings/javahl/native/VersionExtended.lo subversion/bindings/javahl/native/deprecated.lo subversion/bindings/javahl/native/jniwrapper/jni_base.lo subversion/bindings/javahl/native/jniwrapper/jni_channel.lo subversion/bindings/javahl/native/jniwrapper/jni_class_cache.lo subversion/bindings/javahl/native/jniwrapper/jni_io_stream.lo subversion/bindings/javahl/native/jniwrapper/jni_iterator.lo subversion/bindings/javahl/native/jniwrapper/jni_list.lo subversion/bindings/javahl/native/jniwrapper/jni_string_map.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_NativeResources.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_CommitEditor.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteSession.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_StateReporter.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_types_RevisionRangeList.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_types_RuntimeVersion.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_types_Version.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_types_VersionExtended.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigImpl_Category.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigLib.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_DiffLib.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_PropLib.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_SubstLib.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_TunnelChannel.lo subversion/libsvn_repos/libsvn_repos-1.la subversion/libsvn_client/libsvn_client-1.la subversion/libsvn_wc/libsvn_wc-1.la subversion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_diff/libsvn_diff-1.la subversion/libsvn_subr/libsvn_subr-1.la subversion/libsvn_fs/libsvn_fs-1.la
libsvnjavahl_OBJECTS = Array.lo AuthnCallback.lo BlameCallback.lo ChangelistCallback.lo ClientContext.lo CommitCallback.lo CommitEditor.lo CommitMessage.lo CopySources.lo CreateJ.lo Credential.lo DiffOptions.lo DiffSummaryReceiver.lo EditorCallbacks.lo EditorProxy.lo EnumMapper.lo ExternalItem.lo File.lo ImportFilterCallback.lo InfoCallback.lo InputStream.lo Iterator.lo JNIByteArray.lo JNICriticalSection.lo JNIMutex.lo JNIStackElement.lo JNIStringHolder.lo JNIUtil.lo ListCallback.lo LockTokenTable.lo LogMessageCallback.lo MessageReceiver.lo NativeStream.lo OperationContext.lo OutputStream.lo PatchCallback.lo Path.lo Pool.lo Prompter.lo PropertyTable.lo ProplistCallback.lo RemoteSession.lo RemoteSessionContext.lo ReposFreezeAction.lo ReposNotifyCallback.lo ReposVerifyCallback.lo Revision.lo RevisionRange.lo RevisionRangeList.lo SVNBase.lo SVNClient.lo SVNRepos.lo StateReporter.lo StatusCallback.lo StringArray.lo SubversionException.lo Targets.lo Utility.lo VersionExtended.lo deprecated.lo jniwrapper/jni_base.lo jniwrapper/jni_channel.lo jniwrapper/jni_class_cache.lo jniwrapper/jni_io_stream.lo jniwrapper/jni_iterator.lo jniwrapper/jni_list.lo jniwrapper/jni_string_map.lo org_apache_subversion_javahl_NativeResources.lo org_apache_subversion_javahl_SVNClient.lo org_apache_subversion_javahl_SVNRepos.lo org_apache_subversion_javahl_remote_CommitEditor.lo org_apache_subversion_javahl_remote_RemoteFactory.lo org_apache_subversion_javahl_remote_RemoteSession.lo org_apache_subversion_javahl_remote_StateReporter.lo org_apache_subversion_javahl_types_RevisionRangeList.lo org_apache_subversion_javahl_types_RuntimeVersion.lo org_apache_subversion_javahl_types_Version.lo org_apache_subversion_javahl_types_VersionExtended.lo org_apache_subversion_javahl_util_ConfigImpl_Category.lo org_apache_subversion_javahl_util_ConfigLib.lo org_apache_subversion_javahl_util_DiffLib.lo org_apache_subversion_javahl_util_PropLib.lo org_apache_subversion_javahl_util_SubstLib.lo org_apache_subversion_javahl_util_TunnelChannel.lo
subversion/bindings/javahl/native/libsvnjavahl-1.la: $(libsvnjavahl_DEPS)
cd subversion/bindings/javahl/native && $(LINK_JAVAHL_CXX) $(libsvnjavahl_LDFLAGS) -o libsvnjavahl-1.la $(LT_NO_UNDEFINED) $(libsvnjavahl_OBJECTS) ../../../../subversion/libsvn_repos/libsvn_repos-1.la ../../../../subversion/libsvn_client/libsvn_client-1.la ../../../../subversion/libsvn_wc/libsvn_wc-1.la ../../../../subversion/libsvn_ra/libsvn_ra-1.la ../../../../subversion/libsvn_delta/libsvn_delta-1.la ../../../../subversion/libsvn_diff/libsvn_diff-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la ../../../../subversion/libsvn_fs/libsvn_fs-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(SVN_JAVA_SDK_LIBS) $(LIBS)
+libsvnxx_PATH = subversion/bindings/cxx
+libsvnxx_DEPS = subversion/bindings/cxx/src/aprwrap/impl.lo subversion/bindings/cxx/src/client_context.lo subversion/bindings/cxx/src/client_status.lo subversion/bindings/cxx/src/debug.lo subversion/bindings/cxx/src/depth.lo subversion/bindings/cxx/src/exception.lo subversion/bindings/cxx/src/future.lo subversion/bindings/cxx/src/init.lo subversion/bindings/cxx/src/revision.lo subversion/libsvn_repos/libsvn_repos-1.la subversion/libsvn_client/libsvn_client-1.la subversion/libsvn_wc/libsvn_wc-1.la subversion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_diff/libsvn_diff-1.la subversion/libsvn_subr/libsvn_subr-1.la subversion/libsvn_fs/libsvn_fs-1.la
+libsvnxx_OBJECTS = src/aprwrap/impl.lo src/client_context.lo src/client_status.lo src/debug.lo src/depth.lo src/exception.lo src/future.lo src/init.lo src/revision.lo
+subversion/bindings/cxx/libsvnxx-1.la: $(libsvnxx_DEPS)
+ if $(SVN_BUILD_SVNXX) ; then cd subversion/bindings/cxx && $(LINK_CXX_LIB) $(libsvnxx_LDFLAGS) -o libsvnxx-1.la $(LT_NO_UNDEFINED) $(libsvnxx_OBJECTS) ../../../subversion/libsvn_repos/libsvn_repos-1.la ../../../subversion/libsvn_client/libsvn_client-1.la ../../../subversion/libsvn_wc/libsvn_wc-1.la ../../../subversion/libsvn_ra/libsvn_ra-1.la ../../../subversion/libsvn_delta/libsvn_delta-1.la ../../../subversion/libsvn_diff/libsvn_diff-1.la ../../../subversion/libsvn_subr/libsvn_subr-1.la ../../../subversion/libsvn_fs/libsvn_fs-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(LIBS) ; else echo "fake" > subversion/bindings/cxx/libsvnxx-1.la ; fi
+
locale_PATH = subversion/po
locale_DEPS = subversion/po/de.mo subversion/po/es.mo subversion/po/fr.mo subversion/po/it.mo subversion/po/ja.mo subversion/po/ko.mo subversion/po/nb.mo subversion/po/pl.mo subversion/po/pt_BR.mo subversion/po/sv.mo subversion/po/zh_CN.mo subversion/po/zh_TW.mo
locale: $(locale_DEPS)
@@ -879,8 +888,8 @@ subversion/tests/libsvn_subr/subst_translate-test$(EXEEXT): $(subst_translate_te
cd subversion/tests/libsvn_subr && $(LINK) $(subst_translate_test_LDFLAGS) -o subst_translate-test$(EXEEXT) $(subst_translate_test_OBJECTS) ../../../subversion/tests/libsvn_test-1.la ../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(LIBS)
svn_PATH = subversion/svn
-svn_DEPS = subversion/svn/add-cmd.lo subversion/svn/auth-cmd.lo subversion/svn/blame-cmd.lo subversion/svn/cat-cmd.lo subversion/svn/changelist-cmd.lo subversion/svn/checkout-cmd.lo subversion/svn/cl-conflicts.lo subversion/svn/cleanup-cmd.lo subversion/svn/commit-cmd.lo subversion/svn/conflict-callbacks.lo subversion/svn/copy-cmd.lo subversion/svn/delete-cmd.lo subversion/svn/deprecated.lo subversion/svn/diff-cmd.lo subversion/svn/export-cmd.lo subversion/svn/file-merge.lo subversion/svn/help-cmd.lo subversion/svn/import-cmd.lo subversion/svn/info-cmd.lo subversion/svn/list-cmd.lo subversion/svn/lock-cmd.lo subversion/svn/log-cmd.lo subversion/svn/merge-cmd.lo subversion/svn/mergeinfo-cmd.lo subversion/svn/mkdir-cmd.lo subversion/svn/move-cmd.lo subversion/svn/notify.lo subversion/svn/patch-cmd.lo subversion/svn/propdel-cmd.lo subversion/svn/propedit-cmd.lo subversion/svn/propget-cmd.lo subversion/svn/proplist-cmd.lo subversion/svn/props.lo subversion/svn/propset-cmd.lo subversion/svn/relocate-cmd.lo subversion/svn/resolve-cmd.lo subversion/svn/resolved-cmd.lo subversion/svn/revert-cmd.lo subversion/svn/shelve-cmd.lo subversion/svn/similarity.lo subversion/svn/status-cmd.lo subversion/svn/status.lo subversion/svn/svn.lo subversion/svn/switch-cmd.lo subversion/svn/unlock-cmd.lo subversion/svn/update-cmd.lo subversion/svn/upgrade-cmd.lo subversion/svn/util.lo subversion/libsvn_client/libsvn_client-1.la subversion/libsvn_wc/libsvn_wc-1.la subversion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_diff/libsvn_diff-1.la subversion/libsvn_subr/libsvn_subr-1.la
-svn_OBJECTS = add-cmd.lo auth-cmd.lo blame-cmd.lo cat-cmd.lo changelist-cmd.lo checkout-cmd.lo cl-conflicts.lo cleanup-cmd.lo commit-cmd.lo conflict-callbacks.lo copy-cmd.lo delete-cmd.lo deprecated.lo diff-cmd.lo export-cmd.lo file-merge.lo help-cmd.lo import-cmd.lo info-cmd.lo list-cmd.lo lock-cmd.lo log-cmd.lo merge-cmd.lo mergeinfo-cmd.lo mkdir-cmd.lo move-cmd.lo notify.lo patch-cmd.lo propdel-cmd.lo propedit-cmd.lo propget-cmd.lo proplist-cmd.lo props.lo propset-cmd.lo relocate-cmd.lo resolve-cmd.lo resolved-cmd.lo revert-cmd.lo shelve-cmd.lo similarity.lo status-cmd.lo status.lo svn.lo switch-cmd.lo unlock-cmd.lo update-cmd.lo upgrade-cmd.lo util.lo
+svn_DEPS = subversion/svn/add-cmd.lo subversion/svn/auth-cmd.lo subversion/svn/blame-cmd.lo subversion/svn/cat-cmd.lo subversion/svn/changelist-cmd.lo subversion/svn/checkout-cmd.lo subversion/svn/cl-conflicts.lo subversion/svn/cleanup-cmd.lo subversion/svn/commit-cmd.lo subversion/svn/conflict-callbacks.lo subversion/svn/copy-cmd.lo subversion/svn/delete-cmd.lo subversion/svn/deprecated.lo subversion/svn/diff-cmd.lo subversion/svn/export-cmd.lo subversion/svn/file-merge.lo subversion/svn/filesize.lo subversion/svn/help-cmd.lo subversion/svn/import-cmd.lo subversion/svn/info-cmd.lo subversion/svn/list-cmd.lo subversion/svn/lock-cmd.lo subversion/svn/log-cmd.lo subversion/svn/merge-cmd.lo subversion/svn/mergeinfo-cmd.lo subversion/svn/mkdir-cmd.lo subversion/svn/move-cmd.lo subversion/svn/notify.lo subversion/svn/patch-cmd.lo subversion/svn/propdel-cmd.lo subversion/svn/propedit-cmd.lo subversion/svn/propget-cmd.lo subversion/svn/proplist-cmd.lo subversion/svn/props.lo subversion/svn/propset-cmd.lo subversion/svn/relocate-cmd.lo subversion/svn/resolve-cmd.lo subversion/svn/resolved-cmd.lo subversion/svn/revert-cmd.lo subversion/svn/shelf-cmd.lo subversion/svn/shelf2-cmd.lo subversion/svn/similarity.lo subversion/svn/status-cmd.lo subversion/svn/status.lo subversion/svn/svn.lo subversion/svn/switch-cmd.lo subversion/svn/unlock-cmd.lo subversion/svn/update-cmd.lo subversion/svn/upgrade-cmd.lo subversion/svn/util.lo subversion/libsvn_client/libsvn_client-1.la subversion/libsvn_wc/libsvn_wc-1.la subversion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_diff/libsvn_diff-1.la subversion/libsvn_subr/libsvn_subr-1.la
+svn_OBJECTS = add-cmd.lo auth-cmd.lo blame-cmd.lo cat-cmd.lo changelist-cmd.lo checkout-cmd.lo cl-conflicts.lo cleanup-cmd.lo commit-cmd.lo conflict-callbacks.lo copy-cmd.lo delete-cmd.lo deprecated.lo diff-cmd.lo export-cmd.lo file-merge.lo filesize.lo help-cmd.lo import-cmd.lo info-cmd.lo list-cmd.lo lock-cmd.lo log-cmd.lo merge-cmd.lo mergeinfo-cmd.lo mkdir-cmd.lo move-cmd.lo notify.lo patch-cmd.lo propdel-cmd.lo propedit-cmd.lo propget-cmd.lo proplist-cmd.lo props.lo propset-cmd.lo relocate-cmd.lo resolve-cmd.lo resolved-cmd.lo revert-cmd.lo shelf-cmd.lo shelf2-cmd.lo similarity.lo status-cmd.lo status.lo svn.lo switch-cmd.lo unlock-cmd.lo update-cmd.lo upgrade-cmd.lo util.lo
subversion/svn/svn$(EXEEXT): $(svn_DEPS)
cd subversion/svn && $(LINK) $(svn_LDFLAGS) -o svn$(EXEEXT) $(svn_OBJECTS) ../../subversion/libsvn_client/libsvn_client-1.la ../../subversion/libsvn_wc/libsvn_wc-1.la ../../subversion/libsvn_ra/libsvn_ra-1.la ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_diff/libsvn_diff-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(LIBS)
@@ -951,10 +960,10 @@ subversion/svndumpfilter/svndumpfilter$(EXEEXT): $(svndumpfilter_DEPS)
cd subversion/svndumpfilter && $(LINK) $(svndumpfilter_LDFLAGS) -o svndumpfilter$(EXEEXT) $(svndumpfilter_OBJECTS) ../../subversion/libsvn_repos/libsvn_repos-1.la ../../subversion/libsvn_fs/libsvn_fs-1.la ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(LIBS)
svnfsfs_PATH = subversion/svnfsfs
-svnfsfs_DEPS = subversion/svnfsfs/dump-index-cmd.lo subversion/svnfsfs/load-index-cmd.lo subversion/svnfsfs/stats-cmd.lo subversion/svnfsfs/svnfsfs.lo subversion/libsvn_repos/libsvn_repos-1.la subversion/libsvn_fs/libsvn_fs-1.la subversion/libsvn_fs_fs/libsvn_fs_fs-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_subr/libsvn_subr-1.la
+svnfsfs_DEPS = subversion/svnfsfs/dump-index-cmd.lo subversion/svnfsfs/load-index-cmd.lo subversion/svnfsfs/stats-cmd.lo subversion/svnfsfs/svnfsfs.lo subversion/libsvn_repos/libsvn_repos-1.la subversion/libsvn_fs/libsvn_fs-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_subr/libsvn_subr-1.la
svnfsfs_OBJECTS = dump-index-cmd.lo load-index-cmd.lo stats-cmd.lo svnfsfs.lo
subversion/svnfsfs/svnfsfs$(EXEEXT): $(svnfsfs_DEPS)
- cd subversion/svnfsfs && $(LINK) $(svnfsfs_LDFLAGS) -o svnfsfs$(EXEEXT) $(svnfsfs_OBJECTS) ../../subversion/libsvn_repos/libsvn_repos-1.la ../../subversion/libsvn_fs/libsvn_fs-1.la ../../subversion/libsvn_fs_fs/libsvn_fs_fs-1.la ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(LIBS)
+ cd subversion/svnfsfs && $(LINK) $(svnfsfs_LDFLAGS) -o svnfsfs$(EXEEXT) $(svnfsfs_OBJECTS) ../../subversion/libsvn_repos/libsvn_repos-1.la ../../subversion/libsvn_fs/libsvn_fs-1.la ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(LIBS)
svnlook_PATH = subversion/svnlook
svnlook_DEPS = subversion/svnlook/svnlook.lo subversion/libsvn_repos/libsvn_repos-1.la subversion/libsvn_fs/libsvn_fs-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_diff/libsvn_diff-1.la subversion/libsvn_subr/libsvn_subr-1.la
@@ -1004,6 +1013,12 @@ svnversion_OBJECTS = svnversion.lo
subversion/svnversion/svnversion$(EXEEXT): $(svnversion_DEPS)
cd subversion/svnversion && $(LINK) $(svnversion_LDFLAGS) -o svnversion$(EXEEXT) $(svnversion_OBJECTS) ../../subversion/libsvn_wc/libsvn_wc-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(LIBS)
+svnxx_tests_PATH = subversion/bindings/cxx
+svnxx_tests_DEPS = subversion/bindings/cxx/tests/svnxx-tests.lo subversion/bindings/cxx/tests/test_aprwrap_arrays.lo subversion/bindings/cxx/tests/test_aprwrap_hashes.lo subversion/bindings/cxx/tests/test_aprwrap_pools.lo subversion/bindings/cxx/tests/test_client_status.lo subversion/bindings/cxx/tests/test_depth.lo subversion/bindings/cxx/tests/test_exceptions.lo subversion/bindings/cxx/tests/test_init.lo subversion/bindings/cxx/tests/test_revision.lo subversion/bindings/cxx/tests/test_strings.lo subversion/bindings/cxx/tests/test_tristate.lo subversion/bindings/cxx/libsvnxx-1.la subversion/libsvn_repos/libsvn_repos-1.la subversion/libsvn_client/libsvn_client-1.la subversion/libsvn_wc/libsvn_wc-1.la subversion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_diff/libsvn_diff-1.la subversion/libsvn_subr/libsvn_subr-1.la subversion/libsvn_fs/libsvn_fs-1.la
+svnxx_tests_OBJECTS = tests/svnxx-tests.lo tests/test_aprwrap_arrays.lo tests/test_aprwrap_hashes.lo tests/test_aprwrap_pools.lo tests/test_client_status.lo tests/test_depth.lo tests/test_exceptions.lo tests/test_init.lo tests/test_revision.lo tests/test_strings.lo tests/test_tristate.lo
+subversion/bindings/cxx/svnxx-tests$(EXEEXT): $(svnxx_tests_DEPS)
+ if $(SVN_BUILD_SVNXX_TESTS) ; then cd subversion/bindings/cxx && $(LINK_SVNXX_TEST) $(svnxx_tests_LDFLAGS) -o svnxx-tests$(EXEEXT) $(svnxx_tests_OBJECTS) ../../../subversion/bindings/cxx/libsvnxx-1.la ../../../subversion/libsvn_repos/libsvn_repos-1.la ../../../subversion/libsvn_client/libsvn_client-1.la ../../../subversion/libsvn_wc/libsvn_wc-1.la ../../../subversion/libsvn_ra/libsvn_ra-1.la ../../../subversion/libsvn_delta/libsvn_delta-1.la ../../../subversion/libsvn_diff/libsvn_diff-1.la ../../../subversion/libsvn_subr/libsvn_subr-1.la ../../../subversion/libsvn_fs/libsvn_fs-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(LIBS) ; else echo "fake" > subversion/bindings/cxx/svnxx-tests$(EXEEXT) ; fi
+
time_test_PATH = subversion/tests/libsvn_subr
time_test_DEPS = subversion/tests/libsvn_subr/time-test.lo subversion/tests/libsvn_test-1.la subversion/libsvn_subr/libsvn_subr-1.la
time_test_OBJECTS = time-test.lo
@@ -1089,15 +1104,11 @@ bdb-test: subversion/tests/libsvn_fs_base/changes-test$(EXEEXT) subversion/tests
bin: subversion/svn/svn$(EXEEXT) subversion/svnadmin/svnadmin$(EXEEXT) subversion/svnbench/svnbench$(EXEEXT) subversion/svndumpfilter/svndumpfilter$(EXEEXT) subversion/svnfsfs/svnfsfs$(EXEEXT) subversion/svnlook/svnlook$(EXEEXT) subversion/svnmucc/svnmucc$(EXEEXT) subversion/svnrdump/svnrdump$(EXEEXT) subversion/svnserve/svnserve$(EXEEXT) subversion/svnsync/svnsync$(EXEEXT) subversion/svnversion/svnversion$(EXEEXT)
-cxxhl-lib: subversion/bindings/cxxhl/libsvncxxhl-1.la
-
-cxxhl-tests: subversion/bindings/cxxhl/cxxhl-tests$(EXEEXT) googlemock/libgooglemock-1.la
-
fsmod-lib: subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_fs_fs/libsvn_fs_fs-1.la subversion/libsvn_fs_util/libsvn_fs_util-1.la subversion/libsvn_fs_x/libsvn_fs_x-1.la subversion/libsvn_subr/libsvn_subr-1.la
gnome-keyring-lib: subversion/libsvn_auth_gnome_keyring/libsvn_auth_gnome_keyring-1.la
-javahl-callback-javah:
+javahl-callback-java:
javahl-compat-java:
@@ -1105,17 +1116,15 @@ javahl-compat-tests:
javahl-java:
-javahl-javah:
-
javahl-lib: subversion/bindings/javahl/native/libsvnjavahl-1.la
-javahl-remote-javah:
+javahl-remote-java:
javahl-tests:
-javahl-types-javah:
+javahl-types-java:
-javahl-util-javah:
+javahl-util-java:
kwallet-lib: subversion/libsvn_auth_kwallet/libsvn_auth_kwallet-1.la
@@ -1129,6 +1138,10 @@ serf-lib: subversion/libsvn_ra_serf/libsvn_ra_serf-1.la
sub-test: subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test$(EXEEXT)
+svnxx-lib: subversion/bindings/cxx/libsvnxx-1.la
+
+svnxx-tests: subversion/bindings/cxx/svnxx-tests$(EXEEXT)
+
swig-pl-lib: subversion/bindings/swig/perl/libsvn_swig_perl/libsvn_swig_perl-1.la
swig-py: subversion/bindings/swig/python/_client.la subversion/bindings/swig/python/_core.la subversion/bindings/swig/python/_delta.la subversion/bindings/swig/python/_diff.la subversion/bindings/swig/python/_fs.la subversion/bindings/swig/python/_ra.la subversion/bindings/swig/python/_repos.la subversion/bindings/swig/python/_wc.la
@@ -1139,7 +1152,7 @@ swig-rb: subversion/bindings/swig/ruby/client.la subversion/bindings/swig/ruby/c
swig-rb-lib: subversion/bindings/swig/ruby/libsvn_swig_ruby/libsvn_swig_ruby-1.la
-test: subversion/tests/afl/afl-x509$(EXEEXT) subversion/tests/cmdline/atomic-ra-revprop-change$(EXEEXT) subversion/tests/libsvn_subr/auth-test$(EXEEXT) subversion/tests/libsvn_repos/authz-test$(EXEEXT) subversion/tests/libsvn_subr/bit-array-test$(EXEEXT) subversion/tests/libsvn_subr/cache-test$(EXEEXT) subversion/tests/libsvn_subr/checksum-test$(EXEEXT) subversion/tests/libsvn_client/client-test$(EXEEXT) subversion/tests/libsvn_subr/compat-test$(EXEEXT) subversion/tests/libsvn_subr/compress-test$(EXEEXT) subversion/tests/libsvn_subr/config-test$(EXEEXT) subversion/tests/libsvn_wc/conflict-data-test$(EXEEXT) subversion/tests/libsvn_client/conflicts-test$(EXEEXT) subversion/tests/libsvn_subr/crypto-test$(EXEEXT) subversion/tests/libsvn_wc/db-test$(EXEEXT) subversion/tests/libsvn_diff/diff-diff3-test$(EXEEXT) subversion/tests/libsvn_subr/dirent_uri-test$(EXEEXT) subversion/tests/libsvn_repos/dump-load-test$(EXEEXT) subversion/tests/libsvn_wc/entries-compat-test$(EXEEXT) subversion/tests/cmdline/entries-dump$(EXEEXT) subversion/tests/libsvn_subr/error-code-test$(EXEEXT) subversion/tests/libsvn_subr/error-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-pack-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-private-test$(EXEEXT) subversion/tests/libsvn_fs/fs-sequential-test$(EXEEXT) subversion/tests/libsvn_fs/fs-test$(EXEEXT) subversion/tests/libsvn_fs_x/fs-x-pack-test$(EXEEXT) subversion/tests/libsvn_subr/hashdump-test$(EXEEXT) subversion/tests/libsvn_subr/io-test$(EXEEXT) subversion/tests/libsvn_test-1.la subversion/tests/cmdline/lock-helper$(EXEEXT) subversion/tests/libsvn_fs/locks-test$(EXEEXT) subversion/tests/libsvn_subr/mergeinfo-test$(EXEEXT) subversion/tests/libsvn_client/mtcc-test$(EXEEXT) subversion/tests/libsvn_wc/op-depth-test$(EXEEXT) subversion/tests/libsvn_subr/opt-test$(EXEEXT) subversion/tests/libsvn_subr/packed-data-test$(EXEEXT) subversion/tests/libsvn_diff/parse-diff-test$(EXEEXT) subversion/tests/libsvn_subr/path-test$(EXEEXT) subversion/tests/libsvn_subr/prefix-string-test$(EXEEXT) subversion/tests/libsvn_subr/priority-queue-test$(EXEEXT) subversion/tests/libsvn_wc/pristine-store-test$(EXEEXT) subversion/tests/libsvn_ra_local/ra-local-test$(EXEEXT) subversion/tests/libsvn_ra/ra-test$(EXEEXT) subversion/tests/libsvn_delta/random-test$(EXEEXT) subversion/tests/libsvn_repos/repos-test$(EXEEXT) subversion/tests/libsvn_subr/revision-test$(EXEEXT) subversion/tests/libsvn_subr/root-pools-test$(EXEEXT) subversion/tests/libsvn_subr/skel-test$(EXEEXT) subversion/tests/libsvn_subr/spillbuf-test$(EXEEXT) subversion/tests/libsvn_subr/sqlite-test$(EXEEXT) subversion/tests/libsvn_subr/stream-test$(EXEEXT) subversion/tests/libsvn_fs_x/string-table-test$(EXEEXT) subversion/tests/libsvn_subr/string-test$(EXEEXT) subversion/tests/libsvn_subr/subst_translate-test$(EXEEXT) tools/dev/wc-ng/svn-wc-db-tester$(EXEEXT) subversion/tests/libsvn_delta/svndiff-stream-test$(EXEEXT) subversion/tests/libsvn_delta/svndiff-test$(EXEEXT) subversion/tests/libsvn_subr/time-test$(EXEEXT) subversion/tests/libsvn_subr/translate-test$(EXEEXT) subversion/tests/libsvn_subr/utf-test$(EXEEXT) subversion/tests/libsvn_delta/vdelta-test$(EXEEXT) subversion/tests/libsvn_wc/wc-incomplete-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-lock-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-queries-test$(EXEEXT) subversion/tests/libsvn_wc/wc-test$(EXEEXT) subversion/tests/libsvn_delta/window-test$(EXEEXT) subversion/tests/libsvn_subr/x509-test$(EXEEXT) subversion/tests/libsvn_subr/xml-test$(EXEEXT)
+test: subversion/tests/afl/afl-svndiff$(EXEEXT) subversion/tests/afl/afl-x509$(EXEEXT) subversion/tests/cmdline/atomic-ra-revprop-change$(EXEEXT) subversion/tests/libsvn_subr/auth-test$(EXEEXT) subversion/tests/libsvn_repos/authz-test$(EXEEXT) subversion/tests/libsvn_subr/bit-array-test$(EXEEXT) subversion/tests/libsvn_subr/cache-test$(EXEEXT) subversion/tests/libsvn_subr/checksum-test$(EXEEXT) subversion/tests/libsvn_client/client-test$(EXEEXT) subversion/tests/libsvn_subr/compat-test$(EXEEXT) subversion/tests/libsvn_subr/compress-test$(EXEEXT) subversion/tests/libsvn_subr/config-test$(EXEEXT) subversion/tests/libsvn_wc/conflict-data-test$(EXEEXT) subversion/tests/libsvn_client/conflicts-test$(EXEEXT) subversion/tests/libsvn_subr/crypto-test$(EXEEXT) subversion/tests/libsvn_wc/db-test$(EXEEXT) subversion/tests/libsvn_diff/diff-diff3-test$(EXEEXT) subversion/tests/libsvn_subr/dirent_uri-test$(EXEEXT) subversion/tests/libsvn_repos/dump-load-test$(EXEEXT) subversion/tests/libsvn_wc/entries-compat-test$(EXEEXT) subversion/tests/cmdline/entries-dump$(EXEEXT) subversion/tests/libsvn_subr/error-code-test$(EXEEXT) subversion/tests/libsvn_subr/error-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-pack-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-private-test$(EXEEXT) subversion/tests/libsvn_fs/fs-sequential-test$(EXEEXT) subversion/tests/libsvn_fs/fs-test$(EXEEXT) subversion/tests/libsvn_fs_x/fs-x-pack-test$(EXEEXT) subversion/tests/libsvn_subr/hashdump-test$(EXEEXT) subversion/tests/libsvn_subr/io-test$(EXEEXT) subversion/tests/libsvn_test-1.la subversion/tests/cmdline/lock-helper$(EXEEXT) subversion/tests/libsvn_fs/locks-test$(EXEEXT) subversion/tests/libsvn_subr/mergeinfo-test$(EXEEXT) subversion/tests/libsvn_client/mtcc-test$(EXEEXT) subversion/tests/libsvn_wc/op-depth-test$(EXEEXT) subversion/tests/libsvn_subr/opt-test$(EXEEXT) subversion/tests/libsvn_subr/packed-data-test$(EXEEXT) subversion/tests/libsvn_diff/parse-diff-test$(EXEEXT) subversion/tests/libsvn_subr/path-test$(EXEEXT) subversion/tests/libsvn_subr/prefix-string-test$(EXEEXT) subversion/tests/libsvn_subr/priority-queue-test$(EXEEXT) subversion/tests/libsvn_wc/pristine-store-test$(EXEEXT) subversion/tests/libsvn_ra_local/ra-local-test$(EXEEXT) subversion/tests/libsvn_ra/ra-test$(EXEEXT) subversion/tests/libsvn_delta/random-test$(EXEEXT) subversion/tests/libsvn_repos/repos-test$(EXEEXT) subversion/tests/libsvn_subr/revision-test$(EXEEXT) subversion/tests/libsvn_subr/root-pools-test$(EXEEXT) subversion/tests/libsvn_subr/skel-test$(EXEEXT) subversion/tests/libsvn_subr/spillbuf-test$(EXEEXT) subversion/tests/libsvn_subr/sqlite-test$(EXEEXT) subversion/tests/libsvn_subr/stream-test$(EXEEXT) subversion/tests/libsvn_fs_x/string-table-test$(EXEEXT) subversion/tests/libsvn_subr/string-test$(EXEEXT) subversion/tests/libsvn_subr/subst_translate-test$(EXEEXT) tools/dev/wc-ng/svn-wc-db-tester$(EXEEXT) subversion/tests/libsvn_delta/svndiff-stream-test$(EXEEXT) subversion/tests/libsvn_delta/svndiff-test$(EXEEXT) subversion/tests/libsvn_subr/time-test$(EXEEXT) subversion/tests/libsvn_subr/translate-test$(EXEEXT) subversion/tests/libsvn_subr/utf-test$(EXEEXT) subversion/tests/libsvn_delta/vdelta-test$(EXEEXT) subversion/tests/libsvn_wc/wc-incomplete-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-lock-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-queries-test$(EXEEXT) subversion/tests/libsvn_wc/wc-test$(EXEEXT) subversion/tests/libsvn_delta/window-test$(EXEEXT) subversion/tests/libsvn_subr/x509-test$(EXEEXT) subversion/tests/libsvn_subr/xml-test$(EXEEXT)
tools: tools/diff/diff$(EXEEXT) tools/diff/diff3$(EXEEXT) tools/diff/diff4$(EXEEXT) tools/dev/fsfs-access-map$(EXEEXT) tools/server-side/mod_dontdothat/mod_dontdothat.la tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer$(EXEEXT) tools/server-side/svn-populate-node-origins-index$(EXEEXT) tools/server-side/svnauthz$(EXEEXT) tools/server-side/svnauthz-validate$(EXEEXT) tools/client-side/svnconflict/svnconflict$(EXEEXT) tools/dev/svnmover/svnmover$(EXEEXT) tools/dev/svnraisetreeconflict/svnraisetreeconflict$(EXEEXT) tools/dev/x509-parser$(EXEEXT)
@@ -1182,20 +1195,6 @@ install-bin: subversion/svn/svn$(EXEEXT) subversion/svnadmin/svnadmin$(EXEEXT) s
cd subversion/svnversion ; $(INSTALL_BIN) svnversion$(EXEEXT) $(DESTDIR)$(bindir)/svnversion$(EXEEXT)
-install-cxxhl-lib: subversion/bindings/cxxhl/libsvncxxhl-1.la
- $(MKDIR) $(DESTDIR)$(cxxhl_libdir)
- cd subversion/bindings/cxxhl ; $(INSTALL_CXXHL_LIB) libsvncxxhl-1.la $(DESTDIR)$(cxxhl_libdir)/libsvncxxhl-1.la
-
- $(INSTALL_EXTRA_CXXHL_LIB)
-
-install-cxxhl-tests: googlemock/libgooglemock-1.la subversion/bindings/cxxhl/cxxhl-tests$(EXEEXT)
- $(MKDIR) $(DESTDIR)$(cxxhl_testsdir)
- if $(SVN_USE_GOOGLEMOCK) ; then cd googlemock ; $(INSTALL_CXXHL_TESTS) libgooglemock-1.la $(DESTDIR)$(cxxhl_testsdir)/libgooglemock-1.la ; fi
-
- if $(SVN_USE_GOOGLEMOCK) ; then cd subversion/bindings/cxxhl ; $(INSTALL_CXXHL_TESTS) cxxhl-tests$(EXEEXT) $(DESTDIR)$(cxxhl_testsdir)/cxxhl-tests$(EXEEXT) ; fi
-
- $(INSTALL_EXTRA_CXXHL_TESTS)
-
install-fsmod-lib: subversion/libsvn_subr/libsvn_subr-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_fs_util/libsvn_fs_util-1.la subversion/libsvn_fs_fs/libsvn_fs_fs-1.la subversion/libsvn_fs_x/libsvn_fs_x-1.la
$(MKDIR) $(DESTDIR)$(fsmod_libdir) $(DESTDIR)$(pkgconfig_dir)
cd subversion/libsvn_subr ; $(INSTALL_FSMOD_LIB) libsvn_subr-1.la $(DESTDIR)$(fsmod_libdir)/libsvn_subr-1.la
@@ -1214,9 +1213,9 @@ install-gnome-keyring-lib: subversion/libsvn_auth_gnome_keyring/libsvn_auth_gnom
cd subversion/libsvn_auth_gnome_keyring ; $(INSTALL_GNOME_KEYRING_LIB) libsvn_auth_gnome_keyring-1.la $(DESTDIR)$(gnome_keyring_libdir)/libsvn_auth_gnome_keyring-1.la
$(INSTALL_DATA) subversion/libsvn_auth_gnome_keyring/libsvn_auth_gnome_keyring.pc $(DESTDIR)$(pkgconfig_dir)/libsvn_auth_gnome_keyring.pc
-install-javahl-callback-javah:
- $(MKDIR) $(DESTDIR)$(javahl_callback_javahdir)
- $(INSTALL_EXTRA_JAVAHL_CALLBACK_JAVAH)
+install-javahl-callback-java:
+ $(MKDIR) $(DESTDIR)$(javahl_callback_javadir)
+ $(INSTALL_EXTRA_JAVAHL_CALLBACK_JAVA)
install-javahl-compat-java:
$(MKDIR) $(DESTDIR)$(javahl_compat_javadir)
@@ -1230,31 +1229,27 @@ install-javahl-java:
$(MKDIR) $(DESTDIR)$(javahl_javadir)
$(INSTALL_EXTRA_JAVAHL_JAVA)
-install-javahl-javah:
- $(MKDIR) $(DESTDIR)$(javahl_javahdir)
- $(INSTALL_EXTRA_JAVAHL_JAVAH)
-
install-javahl-lib: subversion/bindings/javahl/native/libsvnjavahl-1.la
$(MKDIR) $(DESTDIR)$(javahl_libdir)
cd subversion/bindings/javahl/native ; $(INSTALL_JAVAHL_LIB) libsvnjavahl-1.la $(DESTDIR)$(javahl_libdir)/libsvnjavahl-1.la
$(INSTALL_EXTRA_JAVAHL_LIB)
-install-javahl-remote-javah:
- $(MKDIR) $(DESTDIR)$(javahl_remote_javahdir)
- $(INSTALL_EXTRA_JAVAHL_REMOTE_JAVAH)
+install-javahl-remote-java:
+ $(MKDIR) $(DESTDIR)$(javahl_remote_javadir)
+ $(INSTALL_EXTRA_JAVAHL_REMOTE_JAVA)
install-javahl-tests:
$(MKDIR) $(DESTDIR)$(javahl_testsdir)
$(INSTALL_EXTRA_JAVAHL_TESTS)
-install-javahl-types-javah:
- $(MKDIR) $(DESTDIR)$(javahl_types_javahdir)
- $(INSTALL_EXTRA_JAVAHL_TYPES_JAVAH)
+install-javahl-types-java:
+ $(MKDIR) $(DESTDIR)$(javahl_types_javadir)
+ $(INSTALL_EXTRA_JAVAHL_TYPES_JAVA)
-install-javahl-util-javah:
- $(MKDIR) $(DESTDIR)$(javahl_util_javahdir)
- $(INSTALL_EXTRA_JAVAHL_UTIL_JAVAH)
+install-javahl-util-java:
+ $(MKDIR) $(DESTDIR)$(javahl_util_javadir)
+ $(INSTALL_EXTRA_JAVAHL_UTIL_JAVA)
install-kwallet-lib: subversion/libsvn_auth_kwallet/libsvn_auth_kwallet-1.la
$(MKDIR) $(DESTDIR)$(kwallet_libdir) $(DESTDIR)$(pkgconfig_dir)
@@ -1320,6 +1315,18 @@ install-sub-test: subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test$(EXEEXT)
cd subversion/tests/libsvn_fs_fs ; $(INSTALL_SUB_TEST) fs-fs-fuzzy-test$(EXEEXT) $(DESTDIR)$(sub_testdir)/fs-fs-fuzzy-test$(EXEEXT)
+install-svnxx-lib: subversion/bindings/cxx/libsvnxx-1.la
+ $(MKDIR) $(DESTDIR)$(svnxx_libdir)
+ if $(SVN_BUILD_SVNXX) ; then cd subversion/bindings/cxx ; $(INSTALL_SVNXX_LIB) libsvnxx-1.la $(DESTDIR)$(svnxx_libdir)/libsvnxx-1.la ; fi
+
+ $(INSTALL_EXTRA_SVNXX_LIB)
+
+install-svnxx-tests: subversion/bindings/cxx/svnxx-tests$(EXEEXT)
+ $(MKDIR) $(DESTDIR)$(svnxx_testsdir)
+ if $(SVN_BUILD_SVNXX_TESTS) ; then cd subversion/bindings/cxx ; $(INSTALL_SVNXX_TESTS) svnxx-tests$(EXEEXT) $(DESTDIR)$(svnxx_testsdir)/svnxx-tests$(EXEEXT) ; fi
+
+ $(INSTALL_EXTRA_SVNXX_TESTS)
+
install-swig-pl-lib: subversion/bindings/swig/perl/libsvn_swig_perl/libsvn_swig_perl-1.la
$(MKDIR) $(DESTDIR)$(swig_pl_libdir)
cd subversion/bindings/swig/perl/libsvn_swig_perl ; $(INSTALL_SWIG_PL_LIB) libsvn_swig_perl-1.la $(DESTDIR)$(swig_pl_libdir)/libsvn_swig_perl-1.la
@@ -1409,7 +1416,7 @@ install-tools: tools/diff/diff$(EXEEXT) tools/diff/diff3$(EXEEXT) tools/diff/dif
# Section 8: The install-include rule
########################################
-install-include: subversion/include/mod_authz_svn.h subversion/include/mod_dav_svn.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_cache_config.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_dso.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_md5.h subversion/include/svn_mergeinfo.h subversion/include/svn_nls.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_quoprint.h subversion/include/svn_ra.h subversion/include/svn_ra_svn.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_user.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/include/svn_x509.h subversion/include/svn_xml.h
+install-include: subversion/include/mod_authz_svn.h subversion/include/mod_dav_svn.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_cache_config.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_dso.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_md5.h subversion/include/svn_mergeinfo.h subversion/include/svn_nls.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_quoprint.h subversion/include/svn_ra.h subversion/include/svn_ra_svn.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_user.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/include/svn_x509.h subversion/include/svn_xml.h
$(MKDIR) $(DESTDIR)$(includedir)/subversion-1
$(INSTALL_INCLUDE) $(abs_srcdir)/subversion/include/mod_authz_svn.h $(DESTDIR)$(includedir)/subversion-1/mod_authz_svn.h
$(INSTALL_INCLUDE) $(abs_srcdir)/subversion/include/mod_dav_svn.h $(DESTDIR)$(includedir)/subversion-1/mod_dav_svn.h
@@ -1437,6 +1444,7 @@ install-include: subversion/include/mod_authz_svn.h subversion/include/mod_dav_s
$(INSTALL_INCLUDE) $(abs_srcdir)/subversion/include/svn_mergeinfo.h $(DESTDIR)$(includedir)/subversion-1/svn_mergeinfo.h
$(INSTALL_INCLUDE) $(abs_srcdir)/subversion/include/svn_nls.h $(DESTDIR)$(includedir)/subversion-1/svn_nls.h
$(INSTALL_INCLUDE) $(abs_srcdir)/subversion/include/svn_opt.h $(DESTDIR)$(includedir)/subversion-1/svn_opt.h
+ $(INSTALL_INCLUDE) $(abs_srcdir)/subversion/include/svn_opt_impl.h $(DESTDIR)$(includedir)/subversion-1/svn_opt_impl.h
$(INSTALL_INCLUDE) $(abs_srcdir)/subversion/include/svn_path.h $(DESTDIR)$(includedir)/subversion-1/svn_path.h
$(INSTALL_INCLUDE) $(abs_srcdir)/subversion/include/svn_pools.h $(DESTDIR)$(includedir)/subversion-1/svn_pools.h
$(INSTALL_INCLUDE) $(abs_srcdir)/subversion/include/svn_props.h $(DESTDIR)$(includedir)/subversion-1/svn_props.h
@@ -1449,6 +1457,7 @@ install-include: subversion/include/mod_authz_svn.h subversion/include/mod_dav_s
$(INSTALL_INCLUDE) $(abs_srcdir)/subversion/include/svn_subst.h $(DESTDIR)$(includedir)/subversion-1/svn_subst.h
$(INSTALL_INCLUDE) $(abs_srcdir)/subversion/include/svn_time.h $(DESTDIR)$(includedir)/subversion-1/svn_time.h
$(INSTALL_INCLUDE) $(abs_srcdir)/subversion/include/svn_types.h $(DESTDIR)$(includedir)/subversion-1/svn_types.h
+ $(INSTALL_INCLUDE) $(abs_srcdir)/subversion/include/svn_types_impl.h $(DESTDIR)$(includedir)/subversion-1/svn_types_impl.h
$(INSTALL_INCLUDE) $(abs_srcdir)/subversion/include/svn_user.h $(DESTDIR)$(includedir)/subversion-1/svn_user.h
$(INSTALL_INCLUDE) $(abs_srcdir)/subversion/include/svn_utf.h $(DESTDIR)$(includedir)/subversion-1/svn_utf.h
$(INSTALL_INCLUDE) $(abs_srcdir)/subversion/include/svn_version.h $(DESTDIR)$(includedir)/subversion-1/svn_version.h
@@ -1460,6 +1469,7 @@ install-include: subversion/include/mod_authz_svn.h subversion/include/mod_dav_s
# Section 9: Shortcut targets for manual builds of specific items
########################################
+afl-svndiff: subversion/tests/afl/afl-svndiff$(EXEEXT)
afl-x509: subversion/tests/afl/afl-x509$(EXEEXT)
atomic-ra-revprop-change: subversion/tests/cmdline/atomic-ra-revprop-change$(EXEEXT)
auth-test: subversion/tests/libsvn_subr/auth-test$(EXEEXT)
@@ -1475,7 +1485,6 @@ config-test: subversion/tests/libsvn_subr/config-test$(EXEEXT)
conflict-data-test: subversion/tests/libsvn_wc/conflict-data-test$(EXEEXT)
conflicts-test: subversion/tests/libsvn_client/conflicts-test$(EXEEXT)
crypto-test: subversion/tests/libsvn_subr/crypto-test$(EXEEXT)
-cxxhl-tests: subversion/bindings/cxxhl/cxxhl-tests$(EXEEXT)
db-test: subversion/tests/libsvn_wc/db-test$(EXEEXT)
diff: tools/diff/diff$(EXEEXT)
diff-diff3-test: subversion/tests/libsvn_diff/diff-diff3-test$(EXEEXT)
@@ -1497,7 +1506,6 @@ fs-x-pack-test: subversion/tests/libsvn_fs_x/fs-x-pack-test$(EXEEXT)
fsfs-access-map: tools/dev/fsfs-access-map$(EXEEXT)
hashdump-test: subversion/tests/libsvn_subr/hashdump-test$(EXEEXT)
io-test: subversion/tests/libsvn_subr/io-test$(EXEEXT)
-libgooglemock: googlemock/libgooglemock-1.la
libsvn_auth_gnome_keyring: subversion/libsvn_auth_gnome_keyring/libsvn_auth_gnome_keyring-1.la
libsvn_auth_kwallet: subversion/libsvn_auth_kwallet/libsvn_auth_kwallet-1.la
libsvn_client: subversion/libsvn_client/libsvn_client-1.la
@@ -1519,8 +1527,8 @@ libsvn_swig_py: subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.
libsvn_swig_ruby: subversion/bindings/swig/ruby/libsvn_swig_ruby/libsvn_swig_ruby-1.la
libsvn_test: subversion/tests/libsvn_test-1.la
libsvn_wc: subversion/libsvn_wc/libsvn_wc-1.la
-libsvncxxhl: subversion/bindings/cxxhl/libsvncxxhl-1.la
libsvnjavahl: subversion/bindings/javahl/native/libsvnjavahl-1.la
+libsvnxx: subversion/bindings/cxx/libsvnxx-1.la
lock-helper: subversion/tests/cmdline/lock-helper$(EXEEXT)
locks-test: subversion/tests/libsvn_fs/locks-test$(EXEEXT)
mergeinfo-test: subversion/tests/libsvn_subr/mergeinfo-test$(EXEEXT)
@@ -1595,6 +1603,7 @@ svnrdump: subversion/svnrdump/svnrdump$(EXEEXT)
svnserve: subversion/svnserve/svnserve$(EXEEXT)
svnsync: subversion/svnsync/svnsync$(EXEEXT)
svnversion: subversion/svnversion/svnversion$(EXEEXT)
+svnxx-tests: subversion/bindings/cxx/svnxx-tests$(EXEEXT)
time-test: subversion/tests/libsvn_subr/time-test$(EXEEXT)
translate-test: subversion/tests/libsvn_subr/translate-test$(EXEEXT)
utf-test: subversion/tests/libsvn_subr/utf-test$(EXEEXT)
@@ -1612,23 +1621,65 @@ xml-test: subversion/tests/libsvn_subr/xml-test$(EXEEXT)
# Section 10: Rules to build all other kinds of object-like files
########################################
-subversion/bindings/cxxhl/src/aprwrap/impl.lo: subversion/bindings/cxxhl/src/aprwrap/impl.cpp subversion/bindings/cxxhl/include/svncxxhl/_compat.hpp subversion/bindings/cxxhl/include/svncxxhl/exception.hpp subversion/bindings/cxxhl/src/aprwrap/hash.hpp subversion/bindings/cxxhl/src/aprwrap/pool.hpp subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/svn_private_config.h
- $(COMPILE_CXXHL_CXX) $(canonicalized_srcdir)subversion/bindings/cxxhl/src/aprwrap/impl.cpp
+subversion/bindings/cxx/src/aprwrap/impl.lo: subversion/bindings/cxx/src/aprwrap/impl.cpp subversion/bindings/cxx/include/svnxx/detail/noncopyable.hpp subversion/bindings/cxx/include/svnxx/exception.hpp subversion/bindings/cxx/include/svnxx/init.hpp subversion/bindings/cxx/src/aprwrap/hash.hpp subversion/bindings/cxx/src/aprwrap/pool.hpp subversion/bindings/cxx/src/private/init_private.hpp subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
+ if $(SVN_BUILD_SVNXX) ; then $(COMPILE_SVNXX) $(canonicalized_srcdir)subversion/bindings/cxx/src/aprwrap/impl.cpp ; else echo "fake" > subversion/bindings/cxx/src/aprwrap/impl.lo ; fi
+
+subversion/bindings/cxx/src/client_context.lo: subversion/bindings/cxx/src/client_context.cpp subversion/bindings/cxx/include/svnxx/client/context.hpp subversion/bindings/cxx/include/svnxx/depth.hpp subversion/bindings/cxx/include/svnxx/detail/future.hpp subversion/bindings/cxx/include/svnxx/detail/noncopyable.hpp subversion/bindings/cxx/include/svnxx/exception.hpp subversion/bindings/cxx/include/svnxx/init.hpp subversion/bindings/cxx/include/svnxx/revision.hpp subversion/bindings/cxx/include/svnxx/tristate.hpp subversion/bindings/cxx/src/aprwrap.hpp subversion/bindings/cxx/src/aprwrap/array.hpp subversion/bindings/cxx/src/aprwrap/hash.hpp subversion/bindings/cxx/src/aprwrap/pool.hpp subversion/bindings/cxx/src/private.hpp subversion/bindings/cxx/src/private/client_context_private.hpp subversion/bindings/cxx/src/private/depth_private.hpp subversion/bindings/cxx/src/private/exception_private.hpp subversion/bindings/cxx/src/private/future_private.hpp subversion/bindings/cxx/src/private/init_private.hpp subversion/bindings/cxx/src/private/revision_private.hpp subversion/bindings/cxx/src/private/strings_private.hpp subversion/bindings/cxx/src/private/tristate_private.hpp subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h
+ if $(SVN_BUILD_SVNXX) ; then $(COMPILE_SVNXX) $(canonicalized_srcdir)subversion/bindings/cxx/src/client_context.cpp ; else echo "fake" > subversion/bindings/cxx/src/client_context.lo ; fi
+
+subversion/bindings/cxx/src/client_status.lo: subversion/bindings/cxx/src/client_status.cpp subversion/bindings/cxx/include/svnxx/client/context.hpp subversion/bindings/cxx/include/svnxx/client/status.hpp subversion/bindings/cxx/include/svnxx/depth.hpp subversion/bindings/cxx/include/svnxx/detail/future.hpp subversion/bindings/cxx/include/svnxx/detail/noncopyable.hpp subversion/bindings/cxx/include/svnxx/exception.hpp subversion/bindings/cxx/include/svnxx/init.hpp subversion/bindings/cxx/include/svnxx/revision.hpp subversion/bindings/cxx/include/svnxx/tristate.hpp subversion/bindings/cxx/src/aprwrap.hpp subversion/bindings/cxx/src/aprwrap/array.hpp subversion/bindings/cxx/src/aprwrap/hash.hpp subversion/bindings/cxx/src/aprwrap/pool.hpp subversion/bindings/cxx/src/private.hpp subversion/bindings/cxx/src/private/client_context_private.hpp subversion/bindings/cxx/src/private/depth_private.hpp subversion/bindings/cxx/src/private/exception_private.hpp subversion/bindings/cxx/src/private/future_private.hpp subversion/bindings/cxx/src/private/init_private.hpp subversion/bindings/cxx/src/private/revision_private.hpp subversion/bindings/cxx/src/private/strings_private.hpp subversion/bindings/cxx/src/private/tristate_private.hpp subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h
+ if $(SVN_BUILD_SVNXX) ; then $(COMPILE_SVNXX) $(canonicalized_srcdir)subversion/bindings/cxx/src/client_status.cpp ; else echo "fake" > subversion/bindings/cxx/src/client_status.lo ; fi
+
+subversion/bindings/cxx/src/debug.lo: subversion/bindings/cxx/src/debug.cpp subversion/bindings/cxx/src/private/debug_private.hpp subversion/include/private/svn_debug.h
+ if $(SVN_BUILD_SVNXX) ; then $(COMPILE_SVNXX) $(canonicalized_srcdir)subversion/bindings/cxx/src/debug.cpp ; else echo "fake" > subversion/bindings/cxx/src/debug.lo ; fi
+
+subversion/bindings/cxx/src/depth.lo: subversion/bindings/cxx/src/depth.cpp subversion/bindings/cxx/include/svnxx/depth.hpp subversion/bindings/cxx/src/private/depth_private.hpp subversion/bindings/cxx/src/private/strings_private.hpp subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
+ if $(SVN_BUILD_SVNXX) ; then $(COMPILE_SVNXX) $(canonicalized_srcdir)subversion/bindings/cxx/src/depth.cpp ; else echo "fake" > subversion/bindings/cxx/src/depth.lo ; fi
+
+subversion/bindings/cxx/src/exception.lo: subversion/bindings/cxx/src/exception.cpp subversion/bindings/cxx/include/svnxx/client/context.hpp subversion/bindings/cxx/include/svnxx/depth.hpp subversion/bindings/cxx/include/svnxx/detail/future.hpp subversion/bindings/cxx/include/svnxx/detail/noncopyable.hpp subversion/bindings/cxx/include/svnxx/exception.hpp subversion/bindings/cxx/include/svnxx/init.hpp subversion/bindings/cxx/include/svnxx/revision.hpp subversion/bindings/cxx/include/svnxx/tristate.hpp subversion/bindings/cxx/src/aprwrap.hpp subversion/bindings/cxx/src/aprwrap/array.hpp subversion/bindings/cxx/src/aprwrap/hash.hpp subversion/bindings/cxx/src/aprwrap/pool.hpp subversion/bindings/cxx/src/private.hpp subversion/bindings/cxx/src/private/client_context_private.hpp subversion/bindings/cxx/src/private/depth_private.hpp subversion/bindings/cxx/src/private/exception_private.hpp subversion/bindings/cxx/src/private/future_private.hpp subversion/bindings/cxx/src/private/init_private.hpp subversion/bindings/cxx/src/private/revision_private.hpp subversion/bindings/cxx/src/private/strings_private.hpp subversion/bindings/cxx/src/private/tristate_private.hpp subversion/include/private/svn_debug.h subversion/include/private/svn_error_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h
+ if $(SVN_BUILD_SVNXX) ; then $(COMPILE_SVNXX) $(canonicalized_srcdir)subversion/bindings/cxx/src/exception.cpp ; else echo "fake" > subversion/bindings/cxx/src/exception.lo ; fi
+
+subversion/bindings/cxx/src/future.lo: subversion/bindings/cxx/src/future.cpp subversion/bindings/cxx/include/svnxx/detail/future.hpp subversion/bindings/cxx/include/svnxx/detail/noncopyable.hpp subversion/bindings/cxx/include/svnxx/exception.hpp subversion/bindings/cxx/include/svnxx/init.hpp subversion/bindings/cxx/src/aprwrap.hpp subversion/bindings/cxx/src/aprwrap/array.hpp subversion/bindings/cxx/src/aprwrap/hash.hpp subversion/bindings/cxx/src/aprwrap/pool.hpp subversion/bindings/cxx/src/private/future_private.hpp subversion/bindings/cxx/src/private/init_private.hpp subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
+ if $(SVN_BUILD_SVNXX) ; then $(COMPILE_SVNXX) $(canonicalized_srcdir)subversion/bindings/cxx/src/future.cpp ; else echo "fake" > subversion/bindings/cxx/src/future.lo ; fi
+
+subversion/bindings/cxx/src/init.lo: subversion/bindings/cxx/src/init.cpp subversion/bindings/cxx/include/svnxx/detail/noncopyable.hpp subversion/bindings/cxx/include/svnxx/exception.hpp subversion/bindings/cxx/include/svnxx/init.hpp subversion/bindings/cxx/src/private/debug_private.hpp subversion/bindings/cxx/src/private/init_private.hpp subversion/include/private/svn_debug.h subversion/include/svn_types_impl.h
+ if $(SVN_BUILD_SVNXX) ; then $(COMPILE_SVNXX) $(canonicalized_srcdir)subversion/bindings/cxx/src/init.cpp ; else echo "fake" > subversion/bindings/cxx/src/init.lo ; fi
+
+subversion/bindings/cxx/src/revision.lo: subversion/bindings/cxx/src/revision.cpp subversion/bindings/cxx/include/svnxx/revision.hpp subversion/bindings/cxx/include/svnxx/tristate.hpp subversion/bindings/cxx/src/private/revision_private.hpp subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
+ if $(SVN_BUILD_SVNXX) ; then $(COMPILE_SVNXX) $(canonicalized_srcdir)subversion/bindings/cxx/src/revision.cpp ; else echo "fake" > subversion/bindings/cxx/src/revision.lo ; fi
+
+subversion/bindings/cxx/tests/svnxx-tests.lo: subversion/bindings/cxx/tests/svnxx-tests.cpp
+ if $(SVN_BUILD_SVNXX_TESTS) ; then $(COMPILE_SVNXX_TEST) $(canonicalized_srcdir)subversion/bindings/cxx/tests/svnxx-tests.cpp ; else echo "fake" > subversion/bindings/cxx/tests/svnxx-tests.lo ; fi
+
+subversion/bindings/cxx/tests/test_aprwrap_arrays.lo: subversion/bindings/cxx/tests/test_aprwrap_arrays.cpp subversion/bindings/cxx/include/svnxx/detail/noncopyable.hpp subversion/bindings/cxx/include/svnxx/exception.hpp subversion/bindings/cxx/include/svnxx/init.hpp subversion/bindings/cxx/src/aprwrap.hpp subversion/bindings/cxx/src/aprwrap/array.hpp subversion/bindings/cxx/src/aprwrap/hash.hpp subversion/bindings/cxx/src/aprwrap/pool.hpp subversion/bindings/cxx/src/private/init_private.hpp subversion/bindings/cxx/tests/fixture_init.hpp subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
+ if $(SVN_BUILD_SVNXX_TESTS) ; then $(COMPILE_SVNXX_TEST) $(canonicalized_srcdir)subversion/bindings/cxx/tests/test_aprwrap_arrays.cpp ; else echo "fake" > subversion/bindings/cxx/tests/test_aprwrap_arrays.lo ; fi
+
+subversion/bindings/cxx/tests/test_aprwrap_hashes.lo: subversion/bindings/cxx/tests/test_aprwrap_hashes.cpp subversion/bindings/cxx/include/svnxx/detail/noncopyable.hpp subversion/bindings/cxx/include/svnxx/exception.hpp subversion/bindings/cxx/include/svnxx/init.hpp subversion/bindings/cxx/src/aprwrap.hpp subversion/bindings/cxx/src/aprwrap/array.hpp subversion/bindings/cxx/src/aprwrap/hash.hpp subversion/bindings/cxx/src/aprwrap/pool.hpp subversion/bindings/cxx/src/private/init_private.hpp subversion/bindings/cxx/tests/fixture_init.hpp subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
+ if $(SVN_BUILD_SVNXX_TESTS) ; then $(COMPILE_SVNXX_TEST) $(canonicalized_srcdir)subversion/bindings/cxx/tests/test_aprwrap_hashes.cpp ; else echo "fake" > subversion/bindings/cxx/tests/test_aprwrap_hashes.lo ; fi
+
+subversion/bindings/cxx/tests/test_aprwrap_pools.lo: subversion/bindings/cxx/tests/test_aprwrap_pools.cpp subversion/bindings/cxx/include/svnxx/detail/noncopyable.hpp subversion/bindings/cxx/include/svnxx/exception.hpp subversion/bindings/cxx/include/svnxx/init.hpp subversion/bindings/cxx/src/aprwrap.hpp subversion/bindings/cxx/src/aprwrap/array.hpp subversion/bindings/cxx/src/aprwrap/hash.hpp subversion/bindings/cxx/src/aprwrap/pool.hpp subversion/bindings/cxx/src/private/init_private.hpp subversion/bindings/cxx/tests/fixture_init.hpp subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
+ if $(SVN_BUILD_SVNXX_TESTS) ; then $(COMPILE_SVNXX_TEST) $(canonicalized_srcdir)subversion/bindings/cxx/tests/test_aprwrap_pools.cpp ; else echo "fake" > subversion/bindings/cxx/tests/test_aprwrap_pools.lo ; fi
-subversion/bindings/cxxhl/src/exception.lo: subversion/bindings/cxxhl/src/exception.cpp subversion/bindings/cxxhl/include/svncxxhl/_compat.hpp subversion/bindings/cxxhl/include/svncxxhl/exception.hpp subversion/bindings/cxxhl/src/aprwrap.hpp subversion/bindings/cxxhl/src/aprwrap/array.hpp subversion/bindings/cxxhl/src/aprwrap/hash.hpp subversion/bindings/cxxhl/src/aprwrap/pool.hpp subversion/bindings/cxxhl/src/private.hpp subversion/bindings/cxxhl/src/private/exception-private.hpp subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_error_private.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/svn_private_config.h
- $(COMPILE_CXXHL_CXX) $(canonicalized_srcdir)subversion/bindings/cxxhl/src/exception.cpp
+subversion/bindings/cxx/tests/test_client_status.lo: subversion/bindings/cxx/tests/test_client_status.cpp subversion/bindings/cxx/include/svnxx/client/context.hpp subversion/bindings/cxx/include/svnxx/client/status.hpp subversion/bindings/cxx/include/svnxx/depth.hpp subversion/bindings/cxx/include/svnxx/detail/future.hpp subversion/bindings/cxx/include/svnxx/init.hpp subversion/bindings/cxx/include/svnxx/revision.hpp subversion/bindings/cxx/include/svnxx/tristate.hpp subversion/bindings/cxx/tests/fixture_init.hpp subversion/include/svn_opt_impl.h subversion/include/svn_types_impl.h
+ if $(SVN_BUILD_SVNXX_TESTS) ; then $(COMPILE_SVNXX_TEST) $(canonicalized_srcdir)subversion/bindings/cxx/tests/test_client_status.cpp ; else echo "fake" > subversion/bindings/cxx/tests/test_client_status.lo ; fi
-subversion/bindings/cxxhl/src/tristate.lo: subversion/bindings/cxxhl/src/tristate.cpp subversion/bindings/cxxhl/include/svncxxhl/tristate.hpp subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_types.h
- $(COMPILE_CXXHL_CXX) $(canonicalized_srcdir)subversion/bindings/cxxhl/src/tristate.cpp
+subversion/bindings/cxx/tests/test_depth.lo: subversion/bindings/cxx/tests/test_depth.cpp subversion/bindings/cxx/include/svnxx/depth.hpp subversion/bindings/cxx/src/private/depth_private.hpp subversion/include/svn_types_impl.h
+ if $(SVN_BUILD_SVNXX_TESTS) ; then $(COMPILE_SVNXX_TEST) $(canonicalized_srcdir)subversion/bindings/cxx/tests/test_depth.cpp ; else echo "fake" > subversion/bindings/cxx/tests/test_depth.lo ; fi
-subversion/bindings/cxxhl/tests/cxxhl-tests.lo: subversion/bindings/cxxhl/tests/cxxhl-tests.cpp
- if $(SVN_USE_GOOGLEMOCK) ; then $(COMPILE_CXXHL_GOOGLEMOCK_CXX) $(canonicalized_srcdir)subversion/bindings/cxxhl/tests/cxxhl-tests.cpp ; else echo "fake" > subversion/bindings/cxxhl/tests/cxxhl-tests.lo ; fi
+subversion/bindings/cxx/tests/test_exceptions.lo: subversion/bindings/cxx/tests/test_exceptions.cpp subversion/bindings/cxx/include/svnxx/exception.hpp subversion/bindings/cxx/include/svnxx/init.hpp subversion/bindings/cxx/src/private/exception_private.hpp subversion/bindings/cxx/tests/fixture_init.hpp subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
+ if $(SVN_BUILD_SVNXX_TESTS) ; then $(COMPILE_SVNXX_TEST) $(canonicalized_srcdir)subversion/bindings/cxx/tests/test_exceptions.cpp ; else echo "fake" > subversion/bindings/cxx/tests/test_exceptions.lo ; fi
-subversion/bindings/cxxhl/tests/test_aprwrap.lo: subversion/bindings/cxxhl/tests/test_aprwrap.cpp subversion/bindings/cxxhl/include/svncxxhl/_compat.hpp subversion/bindings/cxxhl/include/svncxxhl/exception.hpp subversion/bindings/cxxhl/src/aprwrap.hpp subversion/bindings/cxxhl/src/aprwrap/array.hpp subversion/bindings/cxxhl/src/aprwrap/hash.hpp subversion/bindings/cxxhl/src/aprwrap/pool.hpp subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/svn_private_config.h
- if $(SVN_USE_GOOGLEMOCK) ; then $(COMPILE_CXXHL_GOOGLEMOCK_CXX) $(canonicalized_srcdir)subversion/bindings/cxxhl/tests/test_aprwrap.cpp ; else echo "fake" > subversion/bindings/cxxhl/tests/test_aprwrap.lo ; fi
+subversion/bindings/cxx/tests/test_init.lo: subversion/bindings/cxx/tests/test_init.cpp subversion/bindings/cxx/include/svnxx/detail/noncopyable.hpp subversion/bindings/cxx/include/svnxx/init.hpp subversion/bindings/cxx/src/private/init_private.hpp
+ if $(SVN_BUILD_SVNXX_TESTS) ; then $(COMPILE_SVNXX_TEST) $(canonicalized_srcdir)subversion/bindings/cxx/tests/test_init.cpp ; else echo "fake" > subversion/bindings/cxx/tests/test_init.lo ; fi
-subversion/bindings/cxxhl/tests/test_exception.lo: subversion/bindings/cxxhl/tests/test_exception.cpp subversion/bindings/cxxhl/include/svncxxhl.hpp subversion/bindings/cxxhl/include/svncxxhl/_compat.hpp subversion/bindings/cxxhl/include/svncxxhl/exception.hpp subversion/bindings/cxxhl/include/svncxxhl/tristate.hpp subversion/bindings/cxxhl/src/private.hpp subversion/bindings/cxxhl/src/private/exception-private.hpp subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_types.h
- if $(SVN_USE_GOOGLEMOCK) ; then $(COMPILE_CXXHL_GOOGLEMOCK_CXX) $(canonicalized_srcdir)subversion/bindings/cxxhl/tests/test_exception.cpp ; else echo "fake" > subversion/bindings/cxxhl/tests/test_exception.lo ; fi
+subversion/bindings/cxx/tests/test_revision.lo: subversion/bindings/cxx/tests/test_revision.cpp subversion/bindings/cxx/include/svnxx/revision.hpp subversion/bindings/cxx/include/svnxx/tristate.hpp subversion/bindings/cxx/src/private/revision_private.hpp subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
+ if $(SVN_BUILD_SVNXX_TESTS) ; then $(COMPILE_SVNXX_TEST) $(canonicalized_srcdir)subversion/bindings/cxx/tests/test_revision.cpp ; else echo "fake" > subversion/bindings/cxx/tests/test_revision.lo ; fi
+
+subversion/bindings/cxx/tests/test_strings.lo: subversion/bindings/cxx/tests/test_strings.cpp subversion/bindings/cxx/include/svnxx/detail/noncopyable.hpp subversion/bindings/cxx/include/svnxx/exception.hpp subversion/bindings/cxx/include/svnxx/init.hpp subversion/bindings/cxx/src/aprwrap.hpp subversion/bindings/cxx/src/aprwrap/array.hpp subversion/bindings/cxx/src/aprwrap/hash.hpp subversion/bindings/cxx/src/aprwrap/pool.hpp subversion/bindings/cxx/src/private/init_private.hpp subversion/bindings/cxx/src/private/strings_private.hpp subversion/bindings/cxx/tests/fixture_init.hpp subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
+ if $(SVN_BUILD_SVNXX_TESTS) ; then $(COMPILE_SVNXX_TEST) $(canonicalized_srcdir)subversion/bindings/cxx/tests/test_strings.cpp ; else echo "fake" > subversion/bindings/cxx/tests/test_strings.lo ; fi
+
+subversion/bindings/cxx/tests/test_tristate.lo: subversion/bindings/cxx/tests/test_tristate.cpp subversion/bindings/cxx/include/svnxx/tristate.hpp subversion/bindings/cxx/src/private/tristate_private.hpp subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
+ if $(SVN_BUILD_SVNXX_TESTS) ; then $(COMPILE_SVNXX_TEST) $(canonicalized_srcdir)subversion/bindings/cxx/tests/test_tristate.cpp ; else echo "fake" > subversion/bindings/cxx/tests/test_tristate.lo ; fi
subversion/bindings/javahl/classes/org/apache/subversion/javahl/BasicTests.class: subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
@@ -1700,6 +1751,10 @@ subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/AuthnCa
subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/BlameCallback.class: subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/BlameCallback.java
+subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/BlameLineCallback.class: subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/BlameLineCallback.java
+
+subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/BlameRangeCallback.class: subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/BlameRangeCallback.java
+
subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ChangelistCallback.class: subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ChangelistCallback.java
subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ClientNotifyCallback.class: subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ClientNotifyCallback.java
@@ -1968,376 +2023,244 @@ subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Version.class: s
subversion/bindings/javahl/classes/org/tigris/subversion/javahl/WC.class: subversion/bindings/javahl/tests/org/tigris/subversion/javahl/WC.java
-subversion/bindings/javahl/include/AuthnCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/AuthnCallback.class
-
-subversion/bindings/javahl/include/BlameCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/BlameCallback.class
-
-subversion/bindings/javahl/include/ChangePath.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/ChangePath.class
-
-subversion/bindings/javahl/include/ChangelistCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ChangelistCallback.class
-
-subversion/bindings/javahl/include/Checksum.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Checksum.class
-
-subversion/bindings/javahl/include/ClientException.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/ClientException.class
-
-subversion/bindings/javahl/include/ClientNotifyCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ClientNotifyCallback.class
-
-subversion/bindings/javahl/include/ClientNotifyInformation.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/ClientNotifyInformation.class
-
-subversion/bindings/javahl/include/CommitCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/CommitCallback.class
-
-subversion/bindings/javahl/include/CommitEditor.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/CommitEditor.class
-
-subversion/bindings/javahl/include/CommitInfo.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/CommitInfo.class
-
-subversion/bindings/javahl/include/CommitItem.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/CommitItem.class
+subversion/bindings/javahl/include/CommitEditor.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/CommitEditor.java
-subversion/bindings/javahl/include/CommitItemStateFlags.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/CommitItemStateFlags.class
+subversion/bindings/javahl/include/CommitItemStateFlags.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItemStateFlags.java
-subversion/bindings/javahl/include/CommitMessageCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/CommitMessageCallback.class
+subversion/bindings/javahl/include/ConfigImpl.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ConfigImpl.java
-subversion/bindings/javahl/include/ConfigEvent.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ConfigEvent.class
+subversion/bindings/javahl/include/ConfigLib.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ConfigLib.java
-subversion/bindings/javahl/include/ConfigImpl.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/ConfigImpl.class
+subversion/bindings/javahl/include/DiffLib.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/util/DiffLib.java
-subversion/bindings/javahl/include/ConfigLib.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/ConfigLib.class
+subversion/bindings/javahl/include/NativeInputStream.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/types/NativeInputStream.java
-subversion/bindings/javahl/include/ConflictDescriptor.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/ConflictDescriptor.class
+subversion/bindings/javahl/include/NativeOutputStream.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/types/NativeOutputStream.java
-subversion/bindings/javahl/include/ConflictResolverCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ConflictResolverCallback.class
+subversion/bindings/javahl/include/NativeResources.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java
-subversion/bindings/javahl/include/ConflictResult.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/ConflictResult.class
+subversion/bindings/javahl/include/PropLib.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/util/PropLib.java
-subversion/bindings/javahl/include/ConflictVersion.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/ConflictVersion.class
+subversion/bindings/javahl/include/RemoteFactory.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteFactory.java
-subversion/bindings/javahl/include/CopySource.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/CopySource.class
+subversion/bindings/javahl/include/RemoteSession.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteSession.java
-subversion/bindings/javahl/include/Depth.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Depth.class
+subversion/bindings/javahl/include/RequestChannel.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/util/RequestChannel.java
-subversion/bindings/javahl/include/DiffLib.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/DiffLib.class
+subversion/bindings/javahl/include/ResponseChannel.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ResponseChannel.java
-subversion/bindings/javahl/include/DiffOptions.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/DiffOptions.class
+subversion/bindings/javahl/include/Revision.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java
-subversion/bindings/javahl/include/DiffSummary.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/DiffSummary.class
+subversion/bindings/javahl/include/RevisionRangeList.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/types/RevisionRangeList.java
-subversion/bindings/javahl/include/DiffSummaryCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/DiffSummaryCallback.class
+subversion/bindings/javahl/include/RuntimeVersion.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/types/RuntimeVersion.java
-subversion/bindings/javahl/include/DirEntry.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/DirEntry.class
+subversion/bindings/javahl/include/SVNClient.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
-subversion/bindings/javahl/include/ExternalItem.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/ExternalItem.class
+subversion/bindings/javahl/include/SVNRepos.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java
-subversion/bindings/javahl/include/ISVNClient.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNClient.class
+subversion/bindings/javahl/include/StateReporter.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StateReporter.java
-subversion/bindings/javahl/include/ISVNConfig.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNConfig.class
+subversion/bindings/javahl/include/SubstLib.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/util/SubstLib.java
-subversion/bindings/javahl/include/ISVNEditor.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNEditor.class
+subversion/bindings/javahl/include/TunnelChannel.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/util/TunnelChannel.java
-subversion/bindings/javahl/include/ISVNRemote.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNRemote.class
+subversion/bindings/javahl/include/UserPasswordCallback.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java
-subversion/bindings/javahl/include/ISVNReporter.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNReporter.class
+subversion/bindings/javahl/include/Version.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Version.java
-subversion/bindings/javahl/include/ISVNRepos.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNRepos.class
+subversion/bindings/javahl/include/VersionExtended.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/types/VersionExtended.java
-subversion/bindings/javahl/include/ImportFilterCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ImportFilterCallback.class
-
-subversion/bindings/javahl/include/Info.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Info.class
-
-subversion/bindings/javahl/include/InfoCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/InfoCallback.class
-
-subversion/bindings/javahl/include/InheritedProplistCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/InheritedProplistCallback.class
-
-subversion/bindings/javahl/include/JNIError.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/JNIError.class
-
-subversion/bindings/javahl/include/JNIObject.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/JNIObject.class
-
-subversion/bindings/javahl/include/ListCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ListCallback.class
-
-subversion/bindings/javahl/include/ListItemCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ListItemCallback.class
-
-subversion/bindings/javahl/include/Lock.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Lock.class
-
-subversion/bindings/javahl/include/LogDate.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/LogDate.class
-
-subversion/bindings/javahl/include/LogMessageCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/LogMessageCallback.class
-
-subversion/bindings/javahl/include/Mergeinfo.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Mergeinfo.class
-
-subversion/bindings/javahl/include/NativeException.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/NativeException.class
-
-subversion/bindings/javahl/include/NativeInputStream.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/NativeInputStream.class
-
-subversion/bindings/javahl/include/NativeOutputStream.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/NativeOutputStream.class
-
-subversion/bindings/javahl/include/NativeResources.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/NativeResources.class
-
-subversion/bindings/javahl/include/NodeKind.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/NodeKind.class
-
-subversion/bindings/javahl/include/OperationContext.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/OperationContext.class
-
-subversion/bindings/javahl/include/PatchCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/PatchCallback.class
-
-subversion/bindings/javahl/include/ProgressCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ProgressCallback.class
-
-subversion/bindings/javahl/include/ProgressEvent.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/ProgressEvent.class
-
-subversion/bindings/javahl/include/PropLib.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/PropLib.class
-
-subversion/bindings/javahl/include/Property.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Property.class
-
-subversion/bindings/javahl/include/ProplistCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ProplistCallback.class
-
-subversion/bindings/javahl/include/RemoteFactory.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/RemoteFactory.class
-
-subversion/bindings/javahl/include/RemoteFileRevisionsCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/RemoteFileRevisionsCallback.class
-
-subversion/bindings/javahl/include/RemoteLocationSegmentsCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/RemoteLocationSegmentsCallback.class
-
-subversion/bindings/javahl/include/RemoteSession.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/RemoteSession.class
-
-subversion/bindings/javahl/include/RemoteStatus.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/RemoteStatus.class
-
-subversion/bindings/javahl/include/ReposFreezeAction.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ReposFreezeAction.class
-
-subversion/bindings/javahl/include/ReposNotifyCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ReposNotifyCallback.class
-
-subversion/bindings/javahl/include/ReposNotifyInformation.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/ReposNotifyInformation.class
-
-subversion/bindings/javahl/include/ReposVerifyCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ReposVerifyCallback.class
-
-subversion/bindings/javahl/include/RequestChannel.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/RequestChannel.class
-
-subversion/bindings/javahl/include/ResponseChannel.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/ResponseChannel.class
-
-subversion/bindings/javahl/include/RetryOpenSession.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/RetryOpenSession.class
-
-subversion/bindings/javahl/include/Revision.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Revision.class
-
-subversion/bindings/javahl/include/RevisionRange.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/RevisionRange.class
-
-subversion/bindings/javahl/include/RevisionRangeList.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/RevisionRangeList.class
-
-subversion/bindings/javahl/include/RuntimeVersion.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/RuntimeVersion.class
-
-subversion/bindings/javahl/include/SVNClient.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNClient.class
-
-subversion/bindings/javahl/include/SVNRepos.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNRepos.class
-
-subversion/bindings/javahl/include/SVNUtil.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNUtil.class
-
-subversion/bindings/javahl/include/StateReporter.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/StateReporter.class
-
-subversion/bindings/javahl/include/Status.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Status.class
-
-subversion/bindings/javahl/include/StatusCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/StatusCallback.class
-
-subversion/bindings/javahl/include/StatusEditor.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/StatusEditor.class
-
-subversion/bindings/javahl/include/SubstLib.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/SubstLib.class
-
-subversion/bindings/javahl/include/SubversionException.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/SubversionException.class
-
-subversion/bindings/javahl/include/Tristate.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Tristate.class
-
-subversion/bindings/javahl/include/TunnelAgent.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/TunnelAgent.class
-
-subversion/bindings/javahl/include/TunnelChannel.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/TunnelChannel.class
-
-subversion/bindings/javahl/include/UserPasswordCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/UserPasswordCallback.class
-
-subversion/bindings/javahl/include/Version.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Version.class
-
-subversion/bindings/javahl/include/VersionExtended.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/VersionExtended.class
-
-subversion/bindings/javahl/native/Array.lo: subversion/bindings/javahl/native/Array.cpp subversion/bindings/javahl/native/Array.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/Array.lo: subversion/bindings/javahl/native/Array.cpp subversion/bindings/javahl/native/Array.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/Array.cpp
-subversion/bindings/javahl/native/AuthnCallback.lo: subversion/bindings/javahl/native/AuthnCallback.cpp subversion/bindings/javahl/native/AuthnCallback.hpp subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/jniwrapper/jni_array.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_iterator.hpp subversion/bindings/javahl/native/jniwrapper/jni_list.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_x509.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/AuthnCallback.lo: subversion/bindings/javahl/native/AuthnCallback.cpp subversion/bindings/javahl/native/AuthnCallback.hpp subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/jniwrapper/jni_array.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_iterator.hpp subversion/bindings/javahl/native/jniwrapper/jni_list.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_x509.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/AuthnCallback.cpp
-subversion/bindings/javahl/native/BlameCallback.lo: subversion/bindings/javahl/native/BlameCallback.cpp subversion/bindings/javahl/native/BlameCallback.h subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h
+subversion/bindings/javahl/native/BlameCallback.lo: subversion/bindings/javahl/native/BlameCallback.cpp subversion/bindings/javahl/native/BlameCallback.h subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/BlameCallback.cpp
-subversion/bindings/javahl/native/ChangelistCallback.lo: subversion/bindings/javahl/native/ChangelistCallback.cpp subversion/bindings/javahl/native/ChangelistCallback.h subversion/bindings/javahl/native/ClientContext.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/Path.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/SVNClient.h subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h
+subversion/bindings/javahl/native/ChangelistCallback.lo: subversion/bindings/javahl/native/ChangelistCallback.cpp subversion/bindings/javahl/native/ChangelistCallback.h subversion/bindings/javahl/native/ClientContext.h subversion/bindings/javahl/native/CxxCompat.hpp subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/Path.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/SVNClient.h subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/ChangelistCallback.cpp
-subversion/bindings/javahl/native/ClientContext.lo: subversion/bindings/javahl/native/ClientContext.cpp subversion/bindings/javahl/native/ClientContext.h subversion/bindings/javahl/native/CommitMessage.h subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNICriticalSection.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Prompter.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/ClientContext.lo: subversion/bindings/javahl/native/ClientContext.cpp subversion/bindings/javahl/native/ClientContext.h subversion/bindings/javahl/native/CommitMessage.h subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/CxxCompat.hpp subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNICriticalSection.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Prompter.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/ClientContext.cpp
-subversion/bindings/javahl/native/CommitCallback.lo: subversion/bindings/javahl/native/CommitCallback.cpp subversion/bindings/javahl/native/CommitCallback.h subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h
+subversion/bindings/javahl/native/CommitCallback.lo: subversion/bindings/javahl/native/CommitCallback.cpp subversion/bindings/javahl/native/CommitCallback.h subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/CommitCallback.cpp
-subversion/bindings/javahl/native/CommitEditor.lo: subversion/bindings/javahl/native/CommitEditor.cpp subversion/bindings/javahl/native/CommitCallback.h subversion/bindings/javahl/native/CommitEditor.h subversion/bindings/javahl/native/EditorCallbacks.hpp subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/InputStream.h subversion/bindings/javahl/native/Iterator.h subversion/bindings/javahl/native/JNIByteArray.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/LockTokenTable.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/Path.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Prompter.h subversion/bindings/javahl/native/PropertyTable.h subversion/bindings/javahl/native/RemoteSession.h subversion/bindings/javahl/native/RemoteSessionContext.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/CommitEditor.lo: subversion/bindings/javahl/native/CommitEditor.cpp subversion/bindings/javahl/native/CommitCallback.h subversion/bindings/javahl/native/CommitEditor.h subversion/bindings/javahl/native/CxxCompat.hpp subversion/bindings/javahl/native/EditorCallbacks.hpp subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/InputStream.h subversion/bindings/javahl/native/Iterator.h subversion/bindings/javahl/native/JNIByteArray.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/LockTokenTable.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/Path.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Prompter.h subversion/bindings/javahl/native/PropertyTable.h subversion/bindings/javahl/native/RemoteSession.h subversion/bindings/javahl/native/RemoteSessionContext.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/CommitEditor.cpp
-subversion/bindings/javahl/native/CommitMessage.lo: subversion/bindings/javahl/native/CommitMessage.cpp subversion/bindings/javahl/native/CommitMessage.h subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h
+subversion/bindings/javahl/native/CommitMessage.lo: subversion/bindings/javahl/native/CommitMessage.cpp subversion/bindings/javahl/native/CommitMessage.h subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/CommitMessage.cpp
-subversion/bindings/javahl/native/CopySources.lo: subversion/bindings/javahl/native/CopySources.cpp subversion/bindings/javahl/native/Array.h subversion/bindings/javahl/native/CopySources.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Revision.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h
+subversion/bindings/javahl/native/CopySources.lo: subversion/bindings/javahl/native/CopySources.cpp subversion/bindings/javahl/native/Array.h subversion/bindings/javahl/native/CopySources.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Revision.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/CopySources.cpp
-subversion/bindings/javahl/native/CreateJ.lo: subversion/bindings/javahl/native/CreateJ.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_CommitItemStateFlags.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Revision.h subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/RevisionRange.h subversion/bindings/javahl/native/RevisionRangeList.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h
+subversion/bindings/javahl/native/CreateJ.lo: subversion/bindings/javahl/native/CreateJ.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_CommitItemStateFlags.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Revision.h subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/RevisionRange.h subversion/bindings/javahl/native/RevisionRangeList.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/CreateJ.cpp
-subversion/bindings/javahl/native/Credential.lo: subversion/bindings/javahl/native/Credential.cpp subversion/bindings/javahl/native/AuthnCallback.hpp subversion/bindings/javahl/native/Credential.hpp subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/Credential.lo: subversion/bindings/javahl/native/Credential.cpp subversion/bindings/javahl/native/AuthnCallback.hpp subversion/bindings/javahl/native/Credential.hpp subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/Credential.cpp
-subversion/bindings/javahl/native/DiffOptions.lo: subversion/bindings/javahl/native/DiffOptions.cpp subversion/bindings/javahl/native/DiffOptions.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/DiffOptions.lo: subversion/bindings/javahl/native/DiffOptions.cpp subversion/bindings/javahl/native/DiffOptions.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/DiffOptions.cpp
-subversion/bindings/javahl/native/DiffSummaryReceiver.lo: subversion/bindings/javahl/native/DiffSummaryReceiver.cpp subversion/bindings/javahl/native/DiffSummaryReceiver.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h
+subversion/bindings/javahl/native/DiffSummaryReceiver.lo: subversion/bindings/javahl/native/DiffSummaryReceiver.cpp subversion/bindings/javahl/native/DiffSummaryReceiver.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/DiffSummaryReceiver.cpp
-subversion/bindings/javahl/native/EditorCallbacks.lo: subversion/bindings/javahl/native/EditorCallbacks.cpp subversion/bindings/javahl/native/EditorCallbacks.hpp subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Utility.hpp subversion/bindings/javahl/native/jniwrapper/jni_array.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_io_stream.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/EditorCallbacks.lo: subversion/bindings/javahl/native/EditorCallbacks.cpp subversion/bindings/javahl/native/EditorCallbacks.hpp subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Utility.hpp subversion/bindings/javahl/native/jniwrapper/jni_array.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_io_stream.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/EditorCallbacks.cpp
-subversion/bindings/javahl/native/EditorProxy.lo: subversion/bindings/javahl/native/EditorProxy.cpp subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EditorProxy.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/NativeStream.hpp subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/jniwrapper/jni_array.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_editor.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/EditorProxy.lo: subversion/bindings/javahl/native/EditorProxy.cpp subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/CxxCompat.hpp subversion/bindings/javahl/native/EditorProxy.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/NativeStream.hpp subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/jniwrapper/jni_array.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_editor.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/EditorProxy.cpp
-subversion/bindings/javahl/native/EnumMapper.lo: subversion/bindings/javahl/native/EnumMapper.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_CommitItemStateFlags.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h
+subversion/bindings/javahl/native/EnumMapper.lo: subversion/bindings/javahl/native/EnumMapper.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_CommitItemStateFlags.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/EnumMapper.cpp
-subversion/bindings/javahl/native/ExternalItem.lo: subversion/bindings/javahl/native/ExternalItem.cpp subversion/bindings/javahl/native/ExternalItem.hpp subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Revision.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h
+subversion/bindings/javahl/native/ExternalItem.lo: subversion/bindings/javahl/native/ExternalItem.cpp subversion/bindings/javahl/native/ExternalItem.hpp subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Revision.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/ExternalItem.cpp
-subversion/bindings/javahl/native/File.lo: subversion/bindings/javahl/native/File.cpp subversion/bindings/javahl/native/File.h subversion/bindings/javahl/native/JNIByteArray.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/File.lo: subversion/bindings/javahl/native/File.cpp subversion/bindings/javahl/native/File.h subversion/bindings/javahl/native/JNIByteArray.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/File.cpp
-subversion/bindings/javahl/native/ImportFilterCallback.lo: subversion/bindings/javahl/native/ImportFilterCallback.cpp subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/ImportFilterCallback.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h
+subversion/bindings/javahl/native/ImportFilterCallback.lo: subversion/bindings/javahl/native/ImportFilterCallback.cpp subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/ImportFilterCallback.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/ImportFilterCallback.cpp
-subversion/bindings/javahl/native/InfoCallback.lo: subversion/bindings/javahl/native/InfoCallback.cpp subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/InfoCallback.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h
+subversion/bindings/javahl/native/InfoCallback.lo: subversion/bindings/javahl/native/InfoCallback.cpp subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/InfoCallback.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/InfoCallback.cpp
-subversion/bindings/javahl/native/InputStream.lo: subversion/bindings/javahl/native/InputStream.cpp subversion/bindings/javahl/native/InputStream.h subversion/bindings/javahl/native/JNIByteArray.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/InputStream.lo: subversion/bindings/javahl/native/InputStream.cpp subversion/bindings/javahl/native/InputStream.h subversion/bindings/javahl/native/JNIByteArray.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/InputStream.cpp
-subversion/bindings/javahl/native/Iterator.lo: subversion/bindings/javahl/native/Iterator.cpp subversion/bindings/javahl/native/Iterator.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/Iterator.lo: subversion/bindings/javahl/native/Iterator.cpp subversion/bindings/javahl/native/Iterator.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/Iterator.cpp
-subversion/bindings/javahl/native/JNIByteArray.lo: subversion/bindings/javahl/native/JNIByteArray.cpp subversion/bindings/javahl/native/JNIByteArray.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/JNIByteArray.lo: subversion/bindings/javahl/native/JNIByteArray.cpp subversion/bindings/javahl/native/JNIByteArray.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/JNIByteArray.cpp
-subversion/bindings/javahl/native/JNICriticalSection.lo: subversion/bindings/javahl/native/JNICriticalSection.cpp subversion/bindings/javahl/native/JNICriticalSection.h subversion/bindings/javahl/native/JNIMutex.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/JNICriticalSection.lo: subversion/bindings/javahl/native/JNICriticalSection.cpp subversion/bindings/javahl/native/JNICriticalSection.h subversion/bindings/javahl/native/JNIMutex.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/JNICriticalSection.cpp
-subversion/bindings/javahl/native/JNIMutex.lo: subversion/bindings/javahl/native/JNIMutex.cpp subversion/bindings/javahl/native/JNIMutex.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/JNIMutex.lo: subversion/bindings/javahl/native/JNIMutex.cpp subversion/bindings/javahl/native/JNIMutex.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/JNIMutex.cpp
-subversion/bindings/javahl/native/JNIStackElement.lo: subversion/bindings/javahl/native/JNIStackElement.cpp subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/JNIStackElement.lo: subversion/bindings/javahl/native/JNIStackElement.cpp subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/JNIStackElement.cpp
-subversion/bindings/javahl/native/JNIStringHolder.lo: subversion/bindings/javahl/native/JNIStringHolder.cpp subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/JNIStringHolder.lo: subversion/bindings/javahl/native/JNIStringHolder.cpp subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/JNIStringHolder.cpp
-subversion/bindings/javahl/native/JNIUtil.lo: subversion/bindings/javahl/native/JNIUtil.cpp subversion/bindings/javahl/native/Array.h subversion/bindings/javahl/native/JNICriticalSection.h subversion/bindings/javahl/native/JNIMutex.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_auth.h subversion/include/svn_cache_config.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_dso.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/JNIUtil.lo: subversion/bindings/javahl/native/JNIUtil.cpp subversion/bindings/javahl/native/Array.h subversion/bindings/javahl/native/JNICriticalSection.h subversion/bindings/javahl/native/JNIMutex.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_auth.h subversion/include/svn_cache_config.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_dso.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/JNIUtil.cpp
-subversion/bindings/javahl/native/ListCallback.lo: subversion/bindings/javahl/native/ListCallback.cpp subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/ListCallback.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h
+subversion/bindings/javahl/native/ListCallback.lo: subversion/bindings/javahl/native/ListCallback.cpp subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/ListCallback.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/ListCallback.cpp
-subversion/bindings/javahl/native/LockTokenTable.lo: subversion/bindings/javahl/native/LockTokenTable.cpp subversion/bindings/javahl/native/Array.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/LockTokenTable.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/LockTokenTable.lo: subversion/bindings/javahl/native/LockTokenTable.cpp subversion/bindings/javahl/native/Array.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/LockTokenTable.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/LockTokenTable.cpp
-subversion/bindings/javahl/native/LogMessageCallback.lo: subversion/bindings/javahl/native/LogMessageCallback.cpp subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/LogMessageCallback.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h
+subversion/bindings/javahl/native/LogMessageCallback.lo: subversion/bindings/javahl/native/LogMessageCallback.cpp subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/LogMessageCallback.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/LogMessageCallback.cpp
-subversion/bindings/javahl/native/MessageReceiver.lo: subversion/bindings/javahl/native/MessageReceiver.cpp subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/MessageReceiver.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/MessageReceiver.lo: subversion/bindings/javahl/native/MessageReceiver.cpp subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/MessageReceiver.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/MessageReceiver.cpp
-subversion/bindings/javahl/native/NativeStream.lo: subversion/bindings/javahl/native/NativeStream.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_types_NativeInputStream.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_NativeOutputStream.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/NativeStream.hpp subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/jniwrapper/jni_array.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/NativeStream.lo: subversion/bindings/javahl/native/NativeStream.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_types_NativeInputStream.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_NativeOutputStream.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/NativeStream.hpp subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/jniwrapper/jni_array.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/NativeStream.cpp
-subversion/bindings/javahl/native/OperationContext.lo: subversion/bindings/javahl/native/OperationContext.cpp subversion/bindings/javahl/native/CommitMessage.h subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/GlobalConfig.h subversion/bindings/javahl/native/JNICriticalSection.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Prompter.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/OperationContext.lo: subversion/bindings/javahl/native/OperationContext.cpp subversion/bindings/javahl/native/CommitMessage.h subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/CxxCompat.hpp subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/GlobalConfig.h subversion/bindings/javahl/native/JNICriticalSection.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Prompter.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/OperationContext.cpp
-subversion/bindings/javahl/native/OutputStream.lo: subversion/bindings/javahl/native/OutputStream.cpp subversion/bindings/javahl/native/JNIByteArray.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/OutputStream.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/OutputStream.lo: subversion/bindings/javahl/native/OutputStream.cpp subversion/bindings/javahl/native/JNIByteArray.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/OutputStream.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/OutputStream.cpp
-subversion/bindings/javahl/native/PatchCallback.lo: subversion/bindings/javahl/native/PatchCallback.cpp subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/PatchCallback.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h
+subversion/bindings/javahl/native/PatchCallback.lo: subversion/bindings/javahl/native/PatchCallback.cpp subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/PatchCallback.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/PatchCallback.cpp
-subversion/bindings/javahl/native/Path.lo: subversion/bindings/javahl/native/Path.cpp subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Path.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/Path.lo: subversion/bindings/javahl/native/Path.cpp subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Path.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/private/svn_dirent_uri_private.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/Path.cpp
-subversion/bindings/javahl/native/Pool.lo: subversion/bindings/javahl/native/Pool.cpp subversion/bindings/javahl/native/JNICriticalSection.h subversion/bindings/javahl/native/JNIMutex.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/Pool.lo: subversion/bindings/javahl/native/Pool.cpp subversion/bindings/javahl/native/JNICriticalSection.h subversion/bindings/javahl/native/JNIMutex.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/Pool.cpp
-subversion/bindings/javahl/native/Prompter.lo: subversion/bindings/javahl/native/Prompter.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_UserPasswordCallback.h subversion/bindings/javahl/native/AuthnCallback.hpp subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Prompter.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/Prompter.lo: subversion/bindings/javahl/native/Prompter.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_UserPasswordCallback.h subversion/bindings/javahl/native/AuthnCallback.hpp subversion/bindings/javahl/native/CxxCompat.hpp subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Prompter.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/Prompter.cpp
-subversion/bindings/javahl/native/PropertyTable.lo: subversion/bindings/javahl/native/PropertyTable.cpp subversion/bindings/javahl/native/Array.h subversion/bindings/javahl/native/JNIByteArray.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Path.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/PropertyTable.h subversion/include/private/svn_debug.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/PropertyTable.lo: subversion/bindings/javahl/native/PropertyTable.cpp subversion/bindings/javahl/native/Array.h subversion/bindings/javahl/native/JNIByteArray.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Path.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/PropertyTable.h subversion/include/private/svn_debug.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/PropertyTable.cpp
-subversion/bindings/javahl/native/ProplistCallback.lo: subversion/bindings/javahl/native/ProplistCallback.cpp subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/ProplistCallback.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h
+subversion/bindings/javahl/native/ProplistCallback.lo: subversion/bindings/javahl/native/ProplistCallback.cpp subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/ProplistCallback.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/ProplistCallback.cpp
-subversion/bindings/javahl/native/RemoteSession.lo: subversion/bindings/javahl/native/RemoteSession.cpp subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EditorProxy.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/Iterator.h subversion/bindings/javahl/native/JNIByteArray.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/LogMessageCallback.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/OutputStream.h subversion/bindings/javahl/native/Path.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Prompter.h subversion/bindings/javahl/native/RemoteSession.h subversion/bindings/javahl/native/RemoteSessionContext.h subversion/bindings/javahl/native/Revision.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/StateReporter.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/RemoteSession.lo: subversion/bindings/javahl/native/RemoteSession.cpp subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/CxxCompat.hpp subversion/bindings/javahl/native/EditorProxy.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/Iterator.h subversion/bindings/javahl/native/JNIByteArray.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/LogMessageCallback.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/OutputStream.h subversion/bindings/javahl/native/Path.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Prompter.h subversion/bindings/javahl/native/RemoteSession.h subversion/bindings/javahl/native/RemoteSessionContext.h subversion/bindings/javahl/native/Revision.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/StateReporter.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/RemoteSession.cpp
-subversion/bindings/javahl/native/RemoteSessionContext.lo: subversion/bindings/javahl/native/RemoteSessionContext.cpp subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Prompter.h subversion/bindings/javahl/native/RemoteSessionContext.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h
+subversion/bindings/javahl/native/RemoteSessionContext.lo: subversion/bindings/javahl/native/RemoteSessionContext.cpp subversion/bindings/javahl/native/CxxCompat.hpp subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Prompter.h subversion/bindings/javahl/native/RemoteSessionContext.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/RemoteSessionContext.cpp
-subversion/bindings/javahl/native/ReposFreezeAction.lo: subversion/bindings/javahl/native/ReposFreezeAction.cpp subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/ReposFreezeAction.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/ReposFreezeAction.lo: subversion/bindings/javahl/native/ReposFreezeAction.cpp subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/ReposFreezeAction.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/ReposFreezeAction.cpp
-subversion/bindings/javahl/native/ReposNotifyCallback.lo: subversion/bindings/javahl/native/ReposNotifyCallback.cpp subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/ReposNotifyCallback.h subversion/bindings/javahl/native/RevisionRange.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h
+subversion/bindings/javahl/native/ReposNotifyCallback.lo: subversion/bindings/javahl/native/ReposNotifyCallback.cpp subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/ReposNotifyCallback.h subversion/bindings/javahl/native/RevisionRange.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/ReposNotifyCallback.cpp
-subversion/bindings/javahl/native/ReposVerifyCallback.lo: subversion/bindings/javahl/native/ReposVerifyCallback.cpp subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/ReposVerifyCallback.h subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/ReposVerifyCallback.lo: subversion/bindings/javahl/native/ReposVerifyCallback.cpp subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/ReposVerifyCallback.h subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/ReposVerifyCallback.cpp
-subversion/bindings/javahl/native/Revision.lo: subversion/bindings/javahl/native/Revision.cpp subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Revision.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h
+subversion/bindings/javahl/native/Revision.lo: subversion/bindings/javahl/native/Revision.cpp subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Revision.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/Revision.cpp
-subversion/bindings/javahl/native/RevisionRange.lo: subversion/bindings/javahl/native/RevisionRange.cpp subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Revision.h subversion/bindings/javahl/native/RevisionRange.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h
+subversion/bindings/javahl/native/RevisionRange.lo: subversion/bindings/javahl/native/RevisionRange.cpp subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Revision.h subversion/bindings/javahl/native/RevisionRange.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/RevisionRange.cpp
-subversion/bindings/javahl/native/RevisionRangeList.lo: subversion/bindings/javahl/native/RevisionRangeList.cpp subversion/bindings/javahl/native/Iterator.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/RevisionRange.h subversion/bindings/javahl/native/RevisionRangeList.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/RevisionRangeList.lo: subversion/bindings/javahl/native/RevisionRangeList.cpp subversion/bindings/javahl/native/Iterator.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/RevisionRange.h subversion/bindings/javahl/native/RevisionRangeList.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/RevisionRangeList.cpp
-subversion/bindings/javahl/native/SVNBase.lo: subversion/bindings/javahl/native/SVNBase.cpp subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SVNBase.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/SVNBase.lo: subversion/bindings/javahl/native/SVNBase.cpp subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SVNBase.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/SVNBase.cpp
-subversion/bindings/javahl/native/SVNClient.lo: subversion/bindings/javahl/native/SVNClient.cpp subversion/bindings/javahl/native/Array.h subversion/bindings/javahl/native/BlameCallback.h subversion/bindings/javahl/native/ChangelistCallback.h subversion/bindings/javahl/native/ClientContext.h subversion/bindings/javahl/native/CommitCallback.h subversion/bindings/javahl/native/CommitMessage.h subversion/bindings/javahl/native/CopySources.h subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/DiffOptions.h subversion/bindings/javahl/native/DiffSummaryReceiver.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/ExternalItem.hpp subversion/bindings/javahl/native/ImportFilterCallback.h subversion/bindings/javahl/native/InfoCallback.h subversion/bindings/javahl/native/JNIByteArray.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/ListCallback.h subversion/bindings/javahl/native/LogMessageCallback.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/OutputStream.h subversion/bindings/javahl/native/PatchCallback.h subversion/bindings/javahl/native/Path.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Prompter.h subversion/bindings/javahl/native/PropertyTable.h subversion/bindings/javahl/native/ProplistCallback.h subversion/bindings/javahl/native/RemoteSession.h subversion/bindings/javahl/native/RemoteSessionContext.h subversion/bindings/javahl/native/Revision.h subversion/bindings/javahl/native/RevisionRange.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/SVNClient.h subversion/bindings/javahl/native/StatusCallback.h subversion/bindings/javahl/native/StringArray.h subversion/bindings/javahl/native/Targets.h subversion/bindings/javahl/native/VersionExtended.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_iterator.hpp subversion/bindings/javahl/native/jniwrapper/jni_list.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/bindings/javahl/native/jniwrapper/jni_string_map.hpp subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_dso.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/SVNClient.lo: subversion/bindings/javahl/native/SVNClient.cpp subversion/bindings/javahl/native/Array.h subversion/bindings/javahl/native/BlameCallback.h subversion/bindings/javahl/native/ChangelistCallback.h subversion/bindings/javahl/native/ClientContext.h subversion/bindings/javahl/native/CommitCallback.h subversion/bindings/javahl/native/CommitMessage.h subversion/bindings/javahl/native/CopySources.h subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/CxxCompat.hpp subversion/bindings/javahl/native/DiffOptions.h subversion/bindings/javahl/native/DiffSummaryReceiver.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/ExternalItem.hpp subversion/bindings/javahl/native/ImportFilterCallback.h subversion/bindings/javahl/native/InfoCallback.h subversion/bindings/javahl/native/JNIByteArray.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/ListCallback.h subversion/bindings/javahl/native/LogMessageCallback.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/OutputStream.h subversion/bindings/javahl/native/PatchCallback.h subversion/bindings/javahl/native/Path.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Prompter.h subversion/bindings/javahl/native/PropertyTable.h subversion/bindings/javahl/native/ProplistCallback.h subversion/bindings/javahl/native/RemoteSession.h subversion/bindings/javahl/native/RemoteSessionContext.h subversion/bindings/javahl/native/Revision.h subversion/bindings/javahl/native/RevisionRange.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/SVNClient.h subversion/bindings/javahl/native/StatusCallback.h subversion/bindings/javahl/native/StringArray.h subversion/bindings/javahl/native/Targets.h subversion/bindings/javahl/native/VersionExtended.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_iterator.hpp subversion/bindings/javahl/native/jniwrapper/jni_list.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/bindings/javahl/native/jniwrapper/jni_string_map.hpp subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_dso.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/SVNClient.cpp
-subversion/bindings/javahl/native/SVNRepos.lo: subversion/bindings/javahl/native/SVNRepos.cpp subversion/bindings/javahl/native/Array.h subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/File.h subversion/bindings/javahl/native/InputStream.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/MessageReceiver.h subversion/bindings/javahl/native/OutputStream.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/ReposFreezeAction.h subversion/bindings/javahl/native/ReposNotifyCallback.h subversion/bindings/javahl/native/ReposVerifyCallback.h subversion/bindings/javahl/native/Revision.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/SVNRepos.h subversion/bindings/javahl/native/StringArray.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/SVNRepos.lo: subversion/bindings/javahl/native/SVNRepos.cpp subversion/bindings/javahl/native/Array.h subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/File.h subversion/bindings/javahl/native/InputStream.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/MessageReceiver.h subversion/bindings/javahl/native/OutputStream.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/ReposFreezeAction.h subversion/bindings/javahl/native/ReposNotifyCallback.h subversion/bindings/javahl/native/ReposVerifyCallback.h subversion/bindings/javahl/native/Revision.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/SVNRepos.h subversion/bindings/javahl/native/StringArray.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/SVNRepos.cpp
-subversion/bindings/javahl/native/StateReporter.lo: subversion/bindings/javahl/native/StateReporter.cpp subversion/bindings/javahl/native/EditorProxy.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Path.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/StateReporter.h subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_editor.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/StateReporter.lo: subversion/bindings/javahl/native/StateReporter.cpp subversion/bindings/javahl/native/CxxCompat.hpp subversion/bindings/javahl/native/EditorProxy.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Path.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/StateReporter.h subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_editor.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/StateReporter.cpp
-subversion/bindings/javahl/native/StatusCallback.lo: subversion/bindings/javahl/native/StatusCallback.cpp subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/StatusCallback.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h
+subversion/bindings/javahl/native/StatusCallback.lo: subversion/bindings/javahl/native/StatusCallback.cpp subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/StatusCallback.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/StatusCallback.cpp
-subversion/bindings/javahl/native/StringArray.lo: subversion/bindings/javahl/native/StringArray.cpp subversion/bindings/javahl/native/Array.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/StringArray.h subversion/include/private/svn_debug.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/StringArray.lo: subversion/bindings/javahl/native/StringArray.cpp subversion/bindings/javahl/native/Array.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/StringArray.h subversion/include/private/svn_debug.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/StringArray.cpp
-subversion/bindings/javahl/native/SubversionException.lo: subversion/bindings/javahl/native/SubversionException.cpp subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SubversionException.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/SubversionException.lo: subversion/bindings/javahl/native/SubversionException.cpp subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SubversionException.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/SubversionException.cpp
-subversion/bindings/javahl/native/Targets.lo: subversion/bindings/javahl/native/Targets.cpp subversion/bindings/javahl/native/Array.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Path.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/StringArray.h subversion/bindings/javahl/native/Targets.h subversion/include/private/svn_debug.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/Targets.lo: subversion/bindings/javahl/native/Targets.cpp subversion/bindings/javahl/native/Array.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Path.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/StringArray.h subversion/bindings/javahl/native/Targets.h subversion/include/private/svn_debug.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/Targets.cpp
-subversion/bindings/javahl/native/Utility.lo: subversion/bindings/javahl/native/Utility.cpp subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Utility.hpp subversion/bindings/javahl/native/jniwrapper/jni_array.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_iterator.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/bindings/javahl/native/jniwrapper/jni_string_map.hpp subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/Utility.lo: subversion/bindings/javahl/native/Utility.cpp subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Utility.hpp subversion/bindings/javahl/native/jniwrapper/jni_array.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_iterator.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/bindings/javahl/native/jniwrapper/jni_string_map.hpp subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/Utility.cpp
-subversion/bindings/javahl/native/VersionExtended.lo: subversion/bindings/javahl/native/VersionExtended.cpp subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/VersionExtended.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_version.h
+subversion/bindings/javahl/native/VersionExtended.lo: subversion/bindings/javahl/native/VersionExtended.cpp subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/VersionExtended.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/VersionExtended.cpp
-subversion/bindings/javahl/native/deprecated.lo: subversion/bindings/javahl/native/deprecated.cpp subversion/bindings/javahl/native/ClientContext.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/Path.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Revision.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/SVNClient.h subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h
+subversion/bindings/javahl/native/deprecated.lo: subversion/bindings/javahl/native/deprecated.cpp subversion/bindings/javahl/native/ClientContext.h subversion/bindings/javahl/native/CxxCompat.hpp subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/Path.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Revision.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/SVNClient.h subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/deprecated.cpp
-subversion/bindings/javahl/native/jniwrapper/jni_base.lo: subversion/bindings/javahl/native/jniwrapper/jni_base.cpp subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/jniwrapper/jni_array.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/jniwrapper/jni_base.lo: subversion/bindings/javahl/native/jniwrapper/jni_base.cpp subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/jniwrapper/jni_array.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/jniwrapper/jni_base.cpp
-subversion/bindings/javahl/native/jniwrapper/jni_channel.lo: subversion/bindings/javahl/native/jniwrapper/jni_channel.cpp subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/jniwrapper/jni_array.hpp subversion/bindings/javahl/native/jniwrapper/jni_channel.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/jniwrapper/jni_channel.lo: subversion/bindings/javahl/native/jniwrapper/jni_channel.cpp subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/jniwrapper/jni_array.hpp subversion/bindings/javahl/native/jniwrapper/jni_channel.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/jniwrapper/jni_channel.cpp
-subversion/bindings/javahl/native/jniwrapper/jni_class_cache.lo: subversion/bindings/javahl/native/jniwrapper/jni_class_cache.cpp subversion/bindings/javahl/native/AuthnCallback.hpp subversion/bindings/javahl/native/Credential.hpp subversion/bindings/javahl/native/EditorCallbacks.hpp subversion/bindings/javahl/native/ExternalItem.hpp subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SubversionException.hpp subversion/bindings/javahl/native/jniwrapper/jni_array.hpp subversion/bindings/javahl/native/jniwrapper/jni_channel.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_io_stream.hpp subversion/bindings/javahl/native/jniwrapper/jni_iterator.hpp subversion/bindings/javahl/native/jniwrapper/jni_list.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/bindings/javahl/native/jniwrapper/jni_string_map.hpp subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h
+subversion/bindings/javahl/native/jniwrapper/jni_class_cache.lo: subversion/bindings/javahl/native/jniwrapper/jni_class_cache.cpp subversion/bindings/javahl/native/AuthnCallback.hpp subversion/bindings/javahl/native/Credential.hpp subversion/bindings/javahl/native/CxxCompat.hpp subversion/bindings/javahl/native/EditorCallbacks.hpp subversion/bindings/javahl/native/ExternalItem.hpp subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SubversionException.hpp subversion/bindings/javahl/native/jniwrapper/jni_array.hpp subversion/bindings/javahl/native/jniwrapper/jni_channel.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_io_stream.hpp subversion/bindings/javahl/native/jniwrapper/jni_iterator.hpp subversion/bindings/javahl/native/jniwrapper/jni_list.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/bindings/javahl/native/jniwrapper/jni_string_map.hpp subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/jniwrapper/jni_class_cache.cpp
-subversion/bindings/javahl/native/jniwrapper/jni_io_stream.lo: subversion/bindings/javahl/native/jniwrapper/jni_io_stream.cpp subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/jniwrapper/jni_array.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_io_stream.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/jniwrapper/jni_io_stream.lo: subversion/bindings/javahl/native/jniwrapper/jni_io_stream.cpp subversion/bindings/javahl/native/CxxCompat.hpp subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/jniwrapper/jni_array.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_io_stream.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/jniwrapper/jni_io_stream.cpp
subversion/bindings/javahl/native/jniwrapper/jni_iterator.lo: subversion/bindings/javahl/native/jniwrapper/jni_iterator.cpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_iterator.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/svn_private_config.h
@@ -2352,937 +2275,943 @@ subversion/bindings/javahl/native/jniwrapper/jni_string_map.lo: subversion/bindi
subversion/bindings/javahl/native/org_apache_subversion_javahl_NativeResources.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_NativeResources.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_NativeResources.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/org_apache_subversion_javahl_NativeResources.cpp
-subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_SVNClient.h subversion/bindings/javahl/native/Array.h subversion/bindings/javahl/native/BlameCallback.h subversion/bindings/javahl/native/ChangelistCallback.h subversion/bindings/javahl/native/ClientContext.h subversion/bindings/javahl/native/CommitCallback.h subversion/bindings/javahl/native/CommitMessage.h subversion/bindings/javahl/native/CopySources.h subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/DiffOptions.h subversion/bindings/javahl/native/DiffSummaryReceiver.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/ImportFilterCallback.h subversion/bindings/javahl/native/InfoCallback.h subversion/bindings/javahl/native/JNIByteArray.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/ListCallback.h subversion/bindings/javahl/native/LogMessageCallback.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/OutputStream.h subversion/bindings/javahl/native/PatchCallback.h subversion/bindings/javahl/native/Path.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Prompter.h subversion/bindings/javahl/native/PropertyTable.h subversion/bindings/javahl/native/ProplistCallback.h subversion/bindings/javahl/native/Revision.h subversion/bindings/javahl/native/RevisionRange.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/SVNClient.h subversion/bindings/javahl/native/StatusCallback.h subversion/bindings/javahl/native/StringArray.h subversion/bindings/javahl/native/Targets.h subversion/bindings/javahl/native/VersionExtended.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/version.h subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_SVNClient.h subversion/bindings/javahl/native/Array.h subversion/bindings/javahl/native/BlameCallback.h subversion/bindings/javahl/native/ChangelistCallback.h subversion/bindings/javahl/native/ClientContext.h subversion/bindings/javahl/native/CommitCallback.h subversion/bindings/javahl/native/CommitMessage.h subversion/bindings/javahl/native/CopySources.h subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/CxxCompat.hpp subversion/bindings/javahl/native/DiffOptions.h subversion/bindings/javahl/native/DiffSummaryReceiver.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/ImportFilterCallback.h subversion/bindings/javahl/native/InfoCallback.h subversion/bindings/javahl/native/JNIByteArray.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/ListCallback.h subversion/bindings/javahl/native/LogMessageCallback.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/OutputStream.h subversion/bindings/javahl/native/PatchCallback.h subversion/bindings/javahl/native/Path.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Prompter.h subversion/bindings/javahl/native/PropertyTable.h subversion/bindings/javahl/native/ProplistCallback.h subversion/bindings/javahl/native/Revision.h subversion/bindings/javahl/native/RevisionRange.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/SVNClient.h subversion/bindings/javahl/native/StatusCallback.h subversion/bindings/javahl/native/StringArray.h subversion/bindings/javahl/native/Targets.h subversion/bindings/javahl/native/VersionExtended.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/version.h subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
-subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_SVNRepos.h subversion/bindings/javahl/native/Array.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/File.h subversion/bindings/javahl/native/InputStream.h subversion/bindings/javahl/native/JNIByteArray.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/MessageReceiver.h subversion/bindings/javahl/native/OutputStream.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/ReposFreezeAction.h subversion/bindings/javahl/native/ReposNotifyCallback.h subversion/bindings/javahl/native/ReposVerifyCallback.h subversion/bindings/javahl/native/Revision.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/SVNRepos.h subversion/bindings/javahl/native/StringArray.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_SVNRepos.h subversion/bindings/javahl/native/Array.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/File.h subversion/bindings/javahl/native/InputStream.h subversion/bindings/javahl/native/JNIByteArray.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/MessageReceiver.h subversion/bindings/javahl/native/OutputStream.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/ReposFreezeAction.h subversion/bindings/javahl/native/ReposNotifyCallback.h subversion/bindings/javahl/native/ReposVerifyCallback.h subversion/bindings/javahl/native/Revision.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/SVNRepos.h subversion/bindings/javahl/native/StringArray.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp
-subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_CommitEditor.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_CommitEditor.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_CommitEditor.h subversion/bindings/javahl/native/CommitCallback.h subversion/bindings/javahl/native/CommitEditor.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_CommitEditor.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_CommitEditor.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_CommitEditor.h subversion/bindings/javahl/native/CommitCallback.h subversion/bindings/javahl/native/CommitEditor.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_CommitEditor.cpp
-subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_RemoteFactory.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Prompter.h subversion/bindings/javahl/native/RemoteSession.h subversion/bindings/javahl/native/RemoteSessionContext.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_RemoteFactory.h subversion/bindings/javahl/native/CxxCompat.hpp subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Prompter.h subversion/bindings/javahl/native/RemoteSession.h subversion/bindings/javahl/native/RemoteSessionContext.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.cpp
-subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteSession.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteSession.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_RemoteSession.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Prompter.h subversion/bindings/javahl/native/RemoteSession.h subversion/bindings/javahl/native/RemoteSessionContext.h subversion/bindings/javahl/native/Revision.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteSession.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteSession.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_RemoteSession.h subversion/bindings/javahl/native/CxxCompat.hpp subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Prompter.h subversion/bindings/javahl/native/RemoteSession.h subversion/bindings/javahl/native/RemoteSessionContext.h subversion/bindings/javahl/native/Revision.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteSession.cpp
-subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_StateReporter.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_StateReporter.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_StateReporter.h subversion/bindings/javahl/native/EditorProxy.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/StateReporter.h subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_editor.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_StateReporter.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_StateReporter.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_StateReporter.h subversion/bindings/javahl/native/CxxCompat.hpp subversion/bindings/javahl/native/EditorProxy.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/StateReporter.h subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_editor.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_StateReporter.cpp
-subversion/bindings/javahl/native/org_apache_subversion_javahl_types_RevisionRangeList.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_types_RevisionRangeList.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_types_RevisionRangeList.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/RevisionRangeList.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/org_apache_subversion_javahl_types_RevisionRangeList.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_types_RevisionRangeList.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_types_RevisionRangeList.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/RevisionRangeList.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/org_apache_subversion_javahl_types_RevisionRangeList.cpp
-subversion/bindings/javahl/native/org_apache_subversion_javahl_types_RuntimeVersion.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_types_RuntimeVersion.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_types_RuntimeVersion.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_wc.h
+subversion/bindings/javahl/native/org_apache_subversion_javahl_types_RuntimeVersion.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_types_RuntimeVersion.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_types_RuntimeVersion.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_wc.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/org_apache_subversion_javahl_types_RuntimeVersion.cpp
-subversion/bindings/javahl/native/org_apache_subversion_javahl_types_Version.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_types_Version.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Version.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_version.h
+subversion/bindings/javahl/native/org_apache_subversion_javahl_types_Version.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_types_Version.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Version.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/org_apache_subversion_javahl_types_Version.cpp
-subversion/bindings/javahl/native/org_apache_subversion_javahl_types_VersionExtended.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_types_VersionExtended.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended_LinkedLib.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended_LinkedLibIterator.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended_LoadedLib.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended_LoadedLibIterator.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/VersionExtended.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/org_apache_subversion_javahl_types_VersionExtended.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_types_VersionExtended.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended_LinkedLib.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended_LinkedLibIterator.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended_LoadedLib.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended_LoadedLibIterator.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/VersionExtended.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/org_apache_subversion_javahl_types_VersionExtended.cpp
-subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigImpl_Category.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigImpl_Category.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_util_ConfigImpl_Category.h subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigImpl_Category.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigImpl_Category.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_util_ConfigImpl_Category.h subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/CxxCompat.hpp subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigImpl_Category.cpp
-subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigLib.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigLib.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_util_ConfigLib.h subversion/bindings/javahl/native/AuthnCallback.hpp subversion/bindings/javahl/native/Credential.hpp subversion/bindings/javahl/native/GlobalConfig.h subversion/bindings/javahl/native/JNICriticalSection.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SubversionException.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_iterator.hpp subversion/bindings/javahl/native/jniwrapper/jni_list.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_x509.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigLib.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigLib.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_util_ConfigLib.h subversion/bindings/javahl/native/AuthnCallback.hpp subversion/bindings/javahl/native/Credential.hpp subversion/bindings/javahl/native/GlobalConfig.h subversion/bindings/javahl/native/JNICriticalSection.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SubversionException.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_iterator.hpp subversion/bindings/javahl/native/jniwrapper/jni_list.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_x509.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigLib.cpp
-subversion/bindings/javahl/native/org_apache_subversion_javahl_util_DiffLib.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_util_DiffLib.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_util_DiffLib.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/OutputStream.h subversion/bindings/javahl/native/Path.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/bindings/javahl/native/org_apache_subversion_javahl_util_DiffLib.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_util_DiffLib.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_util_DiffLib.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/OutputStream.h subversion/bindings/javahl/native/Path.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/org_apache_subversion_javahl_util_DiffLib.cpp
-subversion/bindings/javahl/native/org_apache_subversion_javahl_util_PropLib.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_util_PropLib.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_util_PropLib.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/ExternalItem.hpp subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SubversionException.hpp subversion/bindings/javahl/native/jniwrapper/jni_array.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_io_stream.hpp subversion/bindings/javahl/native/jniwrapper/jni_iterator.hpp subversion/bindings/javahl/native/jniwrapper/jni_list.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/org_apache_subversion_javahl_util_PropLib.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_util_PropLib.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_util_PropLib.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/ExternalItem.hpp subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SubversionException.hpp subversion/bindings/javahl/native/jniwrapper/jni_array.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_io_stream.hpp subversion/bindings/javahl/native/jniwrapper/jni_iterator.hpp subversion/bindings/javahl/native/jniwrapper/jni_list.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/org_apache_subversion_javahl_util_PropLib.cpp
-subversion/bindings/javahl/native/org_apache_subversion_javahl_util_SubstLib.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_util_SubstLib.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_util_SubstLib.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/NativeStream.hpp subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/Utility.hpp subversion/bindings/javahl/native/jniwrapper/jni_array.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_io_stream.hpp subversion/bindings/javahl/native/jniwrapper/jni_iterator.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/bindings/javahl/native/jniwrapper/jni_string_map.hpp subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/org_apache_subversion_javahl_util_SubstLib.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_util_SubstLib.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_util_SubstLib.h subversion/bindings/javahl/native/CxxCompat.hpp subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/NativeStream.hpp subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/Utility.hpp subversion/bindings/javahl/native/jniwrapper/jni_array.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_io_stream.hpp subversion/bindings/javahl/native/jniwrapper/jni_iterator.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/bindings/javahl/native/jniwrapper/jni_string_map.hpp subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/org_apache_subversion_javahl_util_SubstLib.cpp
-subversion/bindings/javahl/native/org_apache_subversion_javahl_util_TunnelChannel.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_util_TunnelChannel.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_util_RequestChannel.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_ResponseChannel.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_TunnelChannel.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/jniwrapper/jni_channel.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/bindings/javahl/native/org_apache_subversion_javahl_util_TunnelChannel.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_util_TunnelChannel.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_util_RequestChannel.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_ResponseChannel.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_TunnelChannel.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/jniwrapper/jni_channel.hpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_exception.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_stack.hpp subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/org_apache_subversion_javahl_util_TunnelChannel.cpp
-subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.lo: subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl__pre_perl.h subversion/bindings/swig/proxy/swig_perl_external_runtime.swg subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.lo: subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl__pre_perl.h subversion/bindings/swig/proxy/swig_perl_external_runtime.swg subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_SWIG_PL) $(canonicalized_srcdir)subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
-subversion/bindings/swig/perl/native/core.lo: subversion/bindings/swig/perl/native/core.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_delta.h subversion/include/svn_fs.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/swig/perl/native/core.lo: subversion/bindings/swig/perl/native/core.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_delta.h subversion/include/svn_fs.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_PL_WRAPPER) $(canonicalized_srcdir)subversion/bindings/swig/perl/native/core.c
-subversion/bindings/swig/perl/native/svn_client.lo: subversion/bindings/swig/perl/native/svn_client.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_fs.h subversion/include/svn_repos.h subversion/svn_private_config.h
+subversion/bindings/swig/perl/native/svn_client.lo: subversion/bindings/swig/perl/native/svn_client.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_fs.h subversion/include/svn_repos.h subversion/svn_private_config.h
$(COMPILE_PL_WRAPPER) $(canonicalized_srcdir)subversion/bindings/swig/perl/native/svn_client.c
-subversion/bindings/swig/perl/native/svn_delta.lo: subversion/bindings/swig/perl/native/svn_delta.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_fs.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/swig/perl/native/svn_delta.lo: subversion/bindings/swig/perl/native/svn_delta.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_fs.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_PL_WRAPPER) $(canonicalized_srcdir)subversion/bindings/swig/perl/native/svn_delta.c
-subversion/bindings/swig/perl/native/svn_diff.lo: subversion/bindings/swig/perl/native/svn_diff.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_delta.h subversion/include/svn_fs.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/swig/perl/native/svn_diff.lo: subversion/bindings/swig/perl/native/svn_diff.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_delta.h subversion/include/svn_fs.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_PL_WRAPPER) $(canonicalized_srcdir)subversion/bindings/swig/perl/native/svn_diff.c
-subversion/bindings/swig/perl/native/svn_fs.lo: subversion/bindings/swig/perl/native/svn_fs.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/swig/perl/native/svn_fs.lo: subversion/bindings/swig/perl/native/svn_fs.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_PL_WRAPPER) $(canonicalized_srcdir)subversion/bindings/swig/perl/native/svn_fs.c
-subversion/bindings/swig/perl/native/svn_ra.lo: subversion/bindings/swig/perl/native/svn_ra.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_fs.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/swig/perl/native/svn_ra.lo: subversion/bindings/swig/perl/native/svn_ra.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_fs.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_PL_WRAPPER) $(canonicalized_srcdir)subversion/bindings/swig/perl/native/svn_ra.c
-subversion/bindings/swig/perl/native/svn_repos.lo: subversion/bindings/swig/perl/native/svn_repos.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_ra.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/swig/perl/native/svn_repos.lo: subversion/bindings/swig/perl/native/svn_repos.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_ra.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_PL_WRAPPER) $(canonicalized_srcdir)subversion/bindings/swig/perl/native/svn_repos.c
-subversion/bindings/swig/perl/native/svn_wc.lo: subversion/bindings/swig/perl/native/svn_wc.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_fs.h subversion/include/svn_repos.h subversion/svn_private_config.h
+subversion/bindings/swig/perl/native/svn_wc.lo: subversion/bindings/swig/perl/native/svn_wc.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_fs.h subversion/include/svn_repos.h subversion/svn_private_config.h
$(COMPILE_PL_WRAPPER) $(canonicalized_srcdir)subversion/bindings/swig/perl/native/svn_wc.c
-subversion/bindings/swig/python/core.lo: subversion/bindings/swig/python/core.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_delta.h subversion/include/svn_fs.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/swig/python/core.lo: subversion/bindings/swig/python/core.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_delta.h subversion/include/svn_fs.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_PY_WRAPPER) $(canonicalized_srcdir)subversion/bindings/swig/python/core.c
-subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.lo: subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c subversion/bindings/swig/proxy/swig_python_external_runtime.swg subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.lo: subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c subversion/bindings/swig/proxy/swig_python_external_runtime.swg subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_SWIG_PY) $(canonicalized_srcdir)subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
-subversion/bindings/swig/python/svn_client.lo: subversion/bindings/swig/python/svn_client.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_fs.h subversion/include/svn_repos.h subversion/svn_private_config.h
+subversion/bindings/swig/python/svn_client.lo: subversion/bindings/swig/python/svn_client.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_fs.h subversion/include/svn_repos.h subversion/svn_private_config.h
$(COMPILE_PY_WRAPPER) $(canonicalized_srcdir)subversion/bindings/swig/python/svn_client.c
-subversion/bindings/swig/python/svn_delta.lo: subversion/bindings/swig/python/svn_delta.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_fs.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/swig/python/svn_delta.lo: subversion/bindings/swig/python/svn_delta.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_fs.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_PY_WRAPPER) $(canonicalized_srcdir)subversion/bindings/swig/python/svn_delta.c
-subversion/bindings/swig/python/svn_diff.lo: subversion/bindings/swig/python/svn_diff.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_delta.h subversion/include/svn_fs.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/swig/python/svn_diff.lo: subversion/bindings/swig/python/svn_diff.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_delta.h subversion/include/svn_fs.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_PY_WRAPPER) $(canonicalized_srcdir)subversion/bindings/swig/python/svn_diff.c
-subversion/bindings/swig/python/svn_fs.lo: subversion/bindings/swig/python/svn_fs.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/swig/python/svn_fs.lo: subversion/bindings/swig/python/svn_fs.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_PY_WRAPPER) $(canonicalized_srcdir)subversion/bindings/swig/python/svn_fs.c
-subversion/bindings/swig/python/svn_ra.lo: subversion/bindings/swig/python/svn_ra.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_fs.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/swig/python/svn_ra.lo: subversion/bindings/swig/python/svn_ra.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_fs.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_PY_WRAPPER) $(canonicalized_srcdir)subversion/bindings/swig/python/svn_ra.c
-subversion/bindings/swig/python/svn_repos.lo: subversion/bindings/swig/python/svn_repos.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_ra.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/swig/python/svn_repos.lo: subversion/bindings/swig/python/svn_repos.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_ra.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_PY_WRAPPER) $(canonicalized_srcdir)subversion/bindings/swig/python/svn_repos.c
-subversion/bindings/swig/python/svn_wc.lo: subversion/bindings/swig/python/svn_wc.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_fs.h subversion/include/svn_repos.h subversion/svn_private_config.h
+subversion/bindings/swig/python/svn_wc.lo: subversion/bindings/swig/python/svn_wc.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_fs.h subversion/include/svn_repos.h subversion/svn_private_config.h
$(COMPILE_PY_WRAPPER) $(canonicalized_srcdir)subversion/bindings/swig/python/svn_wc.c
-subversion/bindings/swig/ruby/core.lo: subversion/bindings/swig/ruby/core.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_delta.h subversion/include/svn_fs.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/swig/ruby/core.lo: subversion/bindings/swig/ruby/core.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_delta.h subversion/include/svn_fs.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_RB_WRAPPER) $(canonicalized_srcdir)subversion/bindings/swig/ruby/core.c
-subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.lo: subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c subversion/bindings/swig/proxy/swig_ruby_external_runtime.swg subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_nls.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.lo: subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c subversion/bindings/swig/proxy/swig_ruby_external_runtime.swg subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_nls.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_SWIG_RB) $(canonicalized_srcdir)subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
-subversion/bindings/swig/ruby/svn_client.lo: subversion/bindings/swig/ruby/svn_client.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_fs.h subversion/include/svn_repos.h subversion/svn_private_config.h
+subversion/bindings/swig/ruby/svn_client.lo: subversion/bindings/swig/ruby/svn_client.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_fs.h subversion/include/svn_repos.h subversion/svn_private_config.h
$(COMPILE_RB_WRAPPER) $(canonicalized_srcdir)subversion/bindings/swig/ruby/svn_client.c
-subversion/bindings/swig/ruby/svn_delta.lo: subversion/bindings/swig/ruby/svn_delta.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_fs.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/swig/ruby/svn_delta.lo: subversion/bindings/swig/ruby/svn_delta.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_fs.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_RB_WRAPPER) $(canonicalized_srcdir)subversion/bindings/swig/ruby/svn_delta.c
-subversion/bindings/swig/ruby/svn_diff.lo: subversion/bindings/swig/ruby/svn_diff.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_delta.h subversion/include/svn_fs.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/swig/ruby/svn_diff.lo: subversion/bindings/swig/ruby/svn_diff.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_delta.h subversion/include/svn_fs.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_RB_WRAPPER) $(canonicalized_srcdir)subversion/bindings/swig/ruby/svn_diff.c
-subversion/bindings/swig/ruby/svn_fs.lo: subversion/bindings/swig/ruby/svn_fs.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/swig/ruby/svn_fs.lo: subversion/bindings/swig/ruby/svn_fs.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_RB_WRAPPER) $(canonicalized_srcdir)subversion/bindings/swig/ruby/svn_fs.c
-subversion/bindings/swig/ruby/svn_ra.lo: subversion/bindings/swig/ruby/svn_ra.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_fs.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/swig/ruby/svn_ra.lo: subversion/bindings/swig/ruby/svn_ra.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_fs.h subversion/include/svn_repos.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_RB_WRAPPER) $(canonicalized_srcdir)subversion/bindings/swig/ruby/svn_ra.c
-subversion/bindings/swig/ruby/svn_repos.lo: subversion/bindings/swig/ruby/svn_repos.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_ra.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/bindings/swig/ruby/svn_repos.lo: subversion/bindings/swig/ruby/svn_repos.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_ra.h subversion/include/svn_wc.h subversion/svn_private_config.h
$(COMPILE_RB_WRAPPER) $(canonicalized_srcdir)subversion/bindings/swig/ruby/svn_repos.c
-subversion/bindings/swig/ruby/svn_wc.lo: subversion/bindings/swig/ruby/svn_wc.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_fs.h subversion/include/svn_repos.h subversion/svn_private_config.h
+subversion/bindings/swig/ruby/svn_wc.lo: subversion/bindings/swig/ruby/svn_wc.c subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb__pre_ruby.h subversion/include/svn_client.h subversion/include/svn_fs.h subversion/include/svn_repos.h subversion/svn_private_config.h
$(COMPILE_RB_WRAPPER) $(canonicalized_srcdir)subversion/bindings/swig/ruby/svn_wc.c
-subversion/libsvn_auth_gnome_keyring/gnome_keyring.lo: subversion/libsvn_auth_gnome_keyring/gnome_keyring.c subversion/include/private/svn_auth_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/svn_private_config.h
+subversion/libsvn_auth_gnome_keyring/gnome_keyring.lo: subversion/libsvn_auth_gnome_keyring/gnome_keyring.c subversion/include/private/svn_auth_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/svn_private_config.h
$(COMPILE_SHARED_ONLY_LIB) $(canonicalized_srcdir)subversion/libsvn_auth_gnome_keyring/gnome_keyring.c
-subversion/libsvn_auth_gnome_keyring/version.lo: subversion/libsvn_auth_gnome_keyring/version.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h
+subversion/libsvn_auth_gnome_keyring/version.lo: subversion/libsvn_auth_gnome_keyring/version.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h
$(COMPILE_SHARED_ONLY_LIB) $(canonicalized_srcdir)subversion/libsvn_auth_gnome_keyring/version.c
-subversion/libsvn_auth_kwallet/kwallet.lo: subversion/libsvn_auth_kwallet/kwallet.cpp subversion/include/private/svn_auth_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/svn_private_config.h
+subversion/libsvn_auth_kwallet/kwallet.lo: subversion/libsvn_auth_kwallet/kwallet.cpp subversion/include/private/svn_auth_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/svn_private_config.h
$(COMPILE_SHARED_ONLY_CXX_LIB) $(canonicalized_srcdir)subversion/libsvn_auth_kwallet/kwallet.cpp
-subversion/libsvn_auth_kwallet/version.lo: subversion/libsvn_auth_kwallet/version.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h
+subversion/libsvn_auth_kwallet/version.lo: subversion/libsvn_auth_kwallet/version.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h
$(COMPILE_SHARED_ONLY_CXX_LIB) $(canonicalized_srcdir)subversion/libsvn_auth_kwallet/version.c
-subversion/libsvn_client/add.lo: subversion/libsvn_client/add.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/add.lo: subversion/libsvn_client/add.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+
+subversion/libsvn_client/blame.lo: subversion/libsvn_client/blame.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/blame.lo: subversion/libsvn_client/blame.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/cat.lo: subversion/libsvn_client/cat.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/cat.lo: subversion/libsvn_client/cat.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/changelist.lo: subversion/libsvn_client/changelist.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/changelist.lo: subversion/libsvn_client/changelist.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/checkout.lo: subversion/libsvn_client/checkout.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/checkout.lo: subversion/libsvn_client/checkout.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/cleanup.lo: subversion/libsvn_client/cleanup.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/cleanup.lo: subversion/libsvn_client/cleanup.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/cmdline.lo: subversion/libsvn_client/cmdline.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_opt_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/cmdline.lo: subversion/libsvn_client/cmdline.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_opt_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/commit.lo: subversion/libsvn_client/commit.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/commit.lo: subversion/libsvn_client/commit.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/commit_util.lo: subversion/libsvn_client/commit_util.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/commit_util.lo: subversion/libsvn_client/commit_util.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/compat_providers.lo: subversion/libsvn_client/compat_providers.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h
-subversion/libsvn_client/compat_providers.lo: subversion/libsvn_client/compat_providers.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h
+subversion/libsvn_client/conflicts.lo: subversion/libsvn_client/conflicts.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/conflicts.lo: subversion/libsvn_client/conflicts.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/copy.lo: subversion/libsvn_client/copy.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/libsvn_client/mergeinfo.h subversion/svn_private_config.h
-subversion/libsvn_client/copy.lo: subversion/libsvn_client/copy.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/libsvn_client/mergeinfo.h subversion/svn_private_config.h
+subversion/libsvn_client/ctx.lo: subversion/libsvn_client/ctx.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h
-subversion/libsvn_client/copy_foreign.lo: subversion/libsvn_client/copy_foreign.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/delete.lo: subversion/libsvn_client/delete.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/ctx.lo: subversion/libsvn_client/ctx.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h
+subversion/libsvn_client/deprecated.lo: subversion/libsvn_client/deprecated.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_opt_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/libsvn_client/mergeinfo.h subversion/svn_private_config.h
-subversion/libsvn_client/delete.lo: subversion/libsvn_client/delete.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/diff.lo: subversion/libsvn_client/diff.c subversion/include/private/svn_client_private.h subversion/include/private/svn_client_shelf.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_private.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_io_private.h subversion/include/private/svn_magic.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/deprecated.lo: subversion/libsvn_client/deprecated.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_opt_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/libsvn_client/mergeinfo.h subversion/svn_private_config.h
+subversion/libsvn_client/diff_local.lo: subversion/libsvn_client/diff_local.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/diff.lo: subversion/libsvn_client/diff.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_private.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_io_private.h subversion/include/private/svn_magic.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/diff_summarize.lo: subversion/libsvn_client/diff_summarize.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h
-subversion/libsvn_client/diff_local.lo: subversion/libsvn_client/diff_local.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/export.lo: subversion/libsvn_client/export.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/diff_summarize.lo: subversion/libsvn_client/diff_summarize.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h
+subversion/libsvn_client/externals.lo: subversion/libsvn_client/externals.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/export.lo: subversion/libsvn_client/export.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/import.lo: subversion/libsvn_client/import.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/externals.lo: subversion/libsvn_client/externals.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/info.lo: subversion/libsvn_client/info.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_magic.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/import.lo: subversion/libsvn_client/import.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/iprops.lo: subversion/libsvn_client/iprops.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/info.lo: subversion/libsvn_client/info.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_magic.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/layout.lo: subversion/libsvn_client/layout.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/iprops.lo: subversion/libsvn_client/iprops.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/list.lo: subversion/libsvn_client/list.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_magic.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/list.lo: subversion/libsvn_client/list.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_magic.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/locking_commands.lo: subversion/libsvn_client/locking_commands.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/locking_commands.lo: subversion/libsvn_client/locking_commands.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/log.lo: subversion/libsvn_client/log.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/log.lo: subversion/libsvn_client/log.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/merge.lo: subversion/libsvn_client/merge.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_magic.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/libsvn_client/mergeinfo.h subversion/svn_private_config.h
-subversion/libsvn_client/merge.lo: subversion/libsvn_client/merge.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_magic.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/libsvn_client/mergeinfo.h subversion/svn_private_config.h
+subversion/libsvn_client/merge_elements.lo: subversion/libsvn_client/merge_elements.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_element.h subversion/include/private/svn_magic.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/merge_elements.lo: subversion/libsvn_client/merge_elements.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_element.h subversion/include/private/svn_magic.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/mergeinfo.lo: subversion/libsvn_client/mergeinfo.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_magic.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_opt_private.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/libsvn_client/mergeinfo.h subversion/svn_private_config.h
-subversion/libsvn_client/mergeinfo.lo: subversion/libsvn_client/mergeinfo.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_magic.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_opt_private.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/libsvn_client/mergeinfo.h subversion/svn_private_config.h
+subversion/libsvn_client/mtcc.lo: subversion/libsvn_client/mtcc.c subversion/include/private/svn_client_mtcc.h subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/mtcc.lo: subversion/libsvn_client/mtcc.c subversion/include/private/svn_client_mtcc.h subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/patch.lo: subversion/libsvn_client/patch.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_diff_private.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_eol_private.h subversion/include/private/svn_magic.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/patch.lo: subversion/libsvn_client/patch.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_diff_private.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_eol_private.h subversion/include/private/svn_magic.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/prop_commands.lo: subversion/libsvn_client/prop_commands.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/prop_commands.lo: subversion/libsvn_client/prop_commands.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/ra.lo: subversion/libsvn_client/ra.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/libsvn_client/mergeinfo.h subversion/svn_private_config.h
-subversion/libsvn_client/ra.lo: subversion/libsvn_client/ra.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/libsvn_client/mergeinfo.h subversion/svn_private_config.h
+subversion/libsvn_client/relocate.lo: subversion/libsvn_client/relocate.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/relocate.lo: subversion/libsvn_client/relocate.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/repos_diff.lo: subversion/libsvn_client/repos_diff.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/repos_diff.lo: subversion/libsvn_client/repos_diff.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/resolved.lo: subversion/libsvn_client/resolved.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/resolved.lo: subversion/libsvn_client/resolved.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/revert.lo: subversion/libsvn_client/revert.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/revert.lo: subversion/libsvn_client/revert.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/revisions.lo: subversion/libsvn_client/revisions.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/revisions.lo: subversion/libsvn_client/revisions.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/shelf.lo: subversion/libsvn_client/shelf.c subversion/include/private/svn_client_private.h subversion/include/private/svn_client_shelf.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/shelve.lo: subversion/libsvn_client/shelve.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/shelf2.lo: subversion/libsvn_client/shelf2.c subversion/include/private/svn_client_private.h subversion/include/private/svn_client_shelf2.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/status.lo: subversion/libsvn_client/status.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/status.lo: subversion/libsvn_client/status.c subversion/include/private/svn_client_private.h subversion/include/private/svn_client_shelf.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/switch.lo: subversion/libsvn_client/switch.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/switch.lo: subversion/libsvn_client/switch.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/update.lo: subversion/libsvn_client/update.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/update.lo: subversion/libsvn_client/update.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/upgrade.lo: subversion/libsvn_client/upgrade.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/upgrade.lo: subversion/libsvn_client/upgrade.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/url.lo: subversion/libsvn_client/url.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/url.lo: subversion/libsvn_client/url.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/util.lo: subversion/libsvn_client/util.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/util.lo: subversion/libsvn_client/util.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/version.lo: subversion/libsvn_client/version.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_wc.h
+subversion/libsvn_client/version.lo: subversion/libsvn_client/version.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_wc.h
-subversion/libsvn_delta/branch.lo: subversion/libsvn_delta/branch.c subversion/include/private/svn_branch.h subversion/include/private/svn_branch_impl.h subversion/include/private/svn_debug.h subversion/include/private/svn_element.h subversion/include/private/svn_sorts_private.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_client/wc_editor.lo: subversion/libsvn_client/wc_editor.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_delta/branch_compat.lo: subversion/libsvn_delta/branch_compat.c subversion/include/private/svn_branch.h subversion/include/private/svn_branch_compat.h subversion/include/private/svn_branch_impl.h subversion/include/private/svn_branch_nested.h subversion/include/private/svn_branch_repos.h subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_editor.h subversion/include/private/svn_element.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_delta/branch.lo: subversion/libsvn_delta/branch.c subversion/include/private/svn_branch.h subversion/include/private/svn_branch_impl.h subversion/include/private/svn_debug.h subversion/include/private/svn_element.h subversion/include/private/svn_sorts_private.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_delta/branch_migrate.lo: subversion/libsvn_delta/branch_migrate.c subversion/include/private/svn_branch.h subversion/include/private/svn_branch_compat.h subversion/include/private/svn_debug.h subversion/include/private/svn_element.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_delta/branch_compat.lo: subversion/libsvn_delta/branch_compat.c subversion/include/private/svn_branch.h subversion/include/private/svn_branch_compat.h subversion/include/private/svn_branch_impl.h subversion/include/private/svn_branch_nested.h subversion/include/private/svn_branch_repos.h subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_editor.h subversion/include/private/svn_element.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_delta/branch_nested.lo: subversion/libsvn_delta/branch_nested.c subversion/include/private/svn_branch.h subversion/include/private/svn_branch_impl.h subversion/include/private/svn_branch_nested.h subversion/include/private/svn_branch_repos.h subversion/include/private/svn_debug.h subversion/include/private/svn_element.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_delta/branch_migrate.lo: subversion/libsvn_delta/branch_migrate.c subversion/include/private/svn_branch.h subversion/include/private/svn_branch_compat.h subversion/include/private/svn_debug.h subversion/include/private/svn_element.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_delta/branch_repos.lo: subversion/libsvn_delta/branch_repos.c subversion/include/private/svn_branch.h subversion/include/private/svn_branch_repos.h subversion/include/private/svn_debug.h subversion/include/private/svn_element.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_delta/branch_nested.lo: subversion/libsvn_delta/branch_nested.c subversion/include/private/svn_branch.h subversion/include/private/svn_branch_impl.h subversion/include/private/svn_branch_nested.h subversion/include/private/svn_branch_repos.h subversion/include/private/svn_debug.h subversion/include/private/svn_element.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_delta/cancel.lo: subversion/libsvn_delta/cancel.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_delta/branch_repos.lo: subversion/libsvn_delta/branch_repos.c subversion/include/private/svn_branch.h subversion/include/private/svn_branch_repos.h subversion/include/private/svn_debug.h subversion/include/private/svn_element.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_delta/compat.lo: subversion/libsvn_delta/compat.c subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_editor.h subversion/include/private/svn_sorts_private.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_delta/cancel.lo: subversion/libsvn_delta/cancel.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_delta/compose_delta.lo: subversion/libsvn_delta/compose_delta.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_delta/delta.h
+subversion/libsvn_delta/compat.lo: subversion/libsvn_delta/compat.c subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_editor.h subversion/include/private/svn_sorts_private.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_delta/debug_editor.lo: subversion/libsvn_delta/debug_editor.c subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_editor.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_delta/compose_delta.lo: subversion/libsvn_delta/compose_delta.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_delta/delta.h
-subversion/libsvn_delta/default_editor.lo: subversion/libsvn_delta/default_editor.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_delta/debug_editor.lo: subversion/libsvn_delta/debug_editor.c subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_editor.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_delta/deprecated.lo: subversion/libsvn_delta/deprecated.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_delta/default_editor.lo: subversion/libsvn_delta/default_editor.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_delta/depth_filter_editor.lo: subversion/libsvn_delta/depth_filter_editor.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_delta/deprecated.lo: subversion/libsvn_delta/deprecated.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_delta/editor.lo: subversion/libsvn_delta/editor.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_delta/depth_filter_editor.lo: subversion/libsvn_delta/depth_filter_editor.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_delta/element.lo: subversion/libsvn_delta/element.c subversion/include/private/svn_debug.h subversion/include/private/svn_element.h subversion/include/private/svn_sorts_private.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_iter.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_delta/editor.lo: subversion/libsvn_delta/editor.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_delta/path_driver.lo: subversion/libsvn_delta/path_driver.c subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_sorts_private.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_delta/element.lo: subversion/libsvn_delta/element.c subversion/include/private/svn_debug.h subversion/include/private/svn_element.h subversion/include/private/svn_sorts_private.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_iter.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_delta/svndiff.lo: subversion/libsvn_delta/svndiff.c subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_error_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_delta/delta.h subversion/svn_private_config.h
+subversion/libsvn_delta/path_driver.lo: subversion/libsvn_delta/path_driver.c subversion/include/private/svn_debug.h subversion/include/private/svn_sorts_private.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_delta/text_delta.lo: subversion/libsvn_delta/text_delta.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_delta/delta.h
+subversion/libsvn_delta/svndiff.lo: subversion/libsvn_delta/svndiff.c subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_error_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_delta/delta.h subversion/svn_private_config.h
-subversion/libsvn_delta/version.lo: subversion/libsvn_delta/version.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h
+subversion/libsvn_delta/text_delta.lo: subversion/libsvn_delta/text_delta.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_delta/delta.h
-subversion/libsvn_delta/xdelta.lo: subversion/libsvn_delta/xdelta.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_delta/delta.h
+subversion/libsvn_delta/version.lo: subversion/libsvn_delta/version.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h
-subversion/libsvn_diff/binary_diff.lo: subversion/libsvn_diff/binary_diff.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_diff/diff.h subversion/svn_private_config.h
+subversion/libsvn_delta/xdelta.lo: subversion/libsvn_delta/xdelta.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_delta/delta.h
-subversion/libsvn_diff/deprecated.lo: subversion/libsvn_diff/deprecated.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/svn_private_config.h
+subversion/libsvn_diff/binary_diff.lo: subversion/libsvn_diff/binary_diff.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_diff/diff.h subversion/svn_private_config.h
-subversion/libsvn_diff/diff.lo: subversion/libsvn_diff/diff.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_diff/diff.h
+subversion/libsvn_diff/deprecated.lo: subversion/libsvn_diff/deprecated.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/svn_private_config.h
-subversion/libsvn_diff/diff3.lo: subversion/libsvn_diff/diff3.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_diff/diff.h
+subversion/libsvn_diff/diff.lo: subversion/libsvn_diff/diff.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_diff/diff.h
-subversion/libsvn_diff/diff4.lo: subversion/libsvn_diff/diff4.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_diff/diff.h
+subversion/libsvn_diff/diff3.lo: subversion/libsvn_diff/diff3.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_diff/diff.h
-subversion/libsvn_diff/diff_file.lo: subversion/libsvn_diff/diff_file.c subversion/include/private/svn_adler32.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_diff_private.h subversion/include/private/svn_eol_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_ctype.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/libsvn_diff/diff.h subversion/svn_private_config.h
+subversion/libsvn_diff/diff4.lo: subversion/libsvn_diff/diff4.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_diff/diff.h
-subversion/libsvn_diff/diff_memory.lo: subversion/libsvn_diff/diff_memory.c subversion/include/private/svn_adler32.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_private.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/libsvn_diff/diff.h subversion/svn_private_config.h
+subversion/libsvn_diff/diff_file.lo: subversion/libsvn_diff/diff_file.c subversion/include/private/svn_adler32.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_diff_private.h subversion/include/private/svn_eol_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_ctype.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/libsvn_diff/diff.h subversion/svn_private_config.h
-subversion/libsvn_diff/diff_tree.lo: subversion/libsvn_diff/diff_tree.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/svn_checksum.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_diff/diff_memory.lo: subversion/libsvn_diff/diff_memory.c subversion/include/private/svn_adler32.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_private.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/libsvn_diff/diff.h subversion/svn_private_config.h
-subversion/libsvn_diff/lcs.lo: subversion/libsvn_diff/lcs.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_diff/diff.h
+subversion/libsvn_diff/diff_tree.lo: subversion/libsvn_diff/diff_tree.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/svn_checksum.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_diff/parse-diff.lo: subversion/libsvn_diff/parse-diff.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_diff_private.h subversion/include/private/svn_eol_private.h subversion/include/private/svn_sorts_private.h subversion/include/svn_checksum.h subversion/include/svn_ctype.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/libsvn_diff/diff.h subversion/svn_private_config.h
+subversion/libsvn_diff/lcs.lo: subversion/libsvn_diff/lcs.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_diff/diff.h
-subversion/libsvn_diff/token.lo: subversion/libsvn_diff/token.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_diff/diff.h
+subversion/libsvn_diff/parse-diff.lo: subversion/libsvn_diff/parse-diff.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_diff_private.h subversion/include/private/svn_eol_private.h subversion/include/private/svn_sorts_private.h subversion/include/svn_checksum.h subversion/include/svn_ctype.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/libsvn_diff/diff.h subversion/svn_private_config.h
-subversion/libsvn_diff/util.lo: subversion/libsvn_diff/util.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_private.h subversion/include/private/svn_sorts_private.h subversion/include/svn_checksum.h subversion/include/svn_ctype.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/libsvn_diff/diff.h subversion/svn_private_config.h
+subversion/libsvn_diff/token.lo: subversion/libsvn_diff/token.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_diff/diff.h
-subversion/libsvn_fs/access.lo: subversion/libsvn_fs/access.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h
+subversion/libsvn_diff/util.lo: subversion/libsvn_diff/util.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_private.h subversion/include/private/svn_sorts_private.h subversion/include/svn_checksum.h subversion/include/svn_ctype.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/libsvn_diff/diff.h subversion/svn_private_config.h
-subversion/libsvn_fs/deprecated.lo: subversion/libsvn_fs/deprecated.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_fs/access.lo: subversion/libsvn_fs/access.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h
-subversion/libsvn_fs/editor.lo: subversion/libsvn_fs/editor.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs/deprecated.lo: subversion/libsvn_fs/deprecated.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_fs/fs-loader.lo: subversion/libsvn_fs/fs-loader.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_dso.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs/editor.lo: subversion/libsvn_fs/editor.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/bdb/bdb-err.lo: subversion/libsvn_fs_base/bdb/bdb-err.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs/fs-loader.lo: subversion/libsvn_fs/fs-loader.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_dso.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+
+subversion/libsvn_fs_base/bdb/bdb-err.lo: subversion/libsvn_fs_base/bdb/bdb-err.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
subversion/libsvn_fs_base/bdb/bdb_compat.lo: subversion/libsvn_fs_base/bdb/bdb_compat.c subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/bdb/changes-table.lo: subversion/libsvn_fs_base/bdb/changes-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/changes-table.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/id.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/util/fs_skels.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/bdb/changes-table.lo: subversion/libsvn_fs_base/bdb/changes-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/changes-table.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/id.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/util/fs_skels.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/bdb/checksum-reps-table.lo: subversion/libsvn_fs_base/bdb/checksum-reps-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/checksum-reps-table.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/key-gen.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/bdb/checksum-reps-table.lo: subversion/libsvn_fs_base/bdb/checksum-reps-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/checksum-reps-table.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/key-gen.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/bdb/copies-table.lo: subversion/libsvn_fs_base/bdb/copies-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/copies-table.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/rev-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/key-gen.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/util/fs_skels.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/bdb/copies-table.lo: subversion/libsvn_fs_base/bdb/copies-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/copies-table.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/rev-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/key-gen.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/util/fs_skels.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/bdb/dbt.lo: subversion/libsvn_fs_base/bdb/dbt.c subversion/include/private/svn_debug.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/id.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/bdb/dbt.lo: subversion/libsvn_fs_base/bdb/dbt.c subversion/include/private/svn_debug.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/id.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/bdb/env.lo: subversion/libsvn_fs_base/bdb/env.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/env.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/bdb/env.lo: subversion/libsvn_fs_base/bdb/env.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/env.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/bdb/lock-tokens-table.lo: subversion/libsvn_fs_base/bdb/lock-tokens-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/lock-tokens-table.h subversion/libsvn_fs_base/bdb/locks-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/util/fs_skels.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/bdb/lock-tokens-table.lo: subversion/libsvn_fs_base/bdb/lock-tokens-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/lock-tokens-table.h subversion/libsvn_fs_base/bdb/locks-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/util/fs_skels.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/bdb/locks-table.lo: subversion/libsvn_fs_base/bdb/locks-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/lock-tokens-table.h subversion/libsvn_fs_base/bdb/locks-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/util/fs_skels.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/bdb/locks-table.lo: subversion/libsvn_fs_base/bdb/locks-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/lock-tokens-table.h subversion/libsvn_fs_base/bdb/locks-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/util/fs_skels.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/bdb/miscellaneous-table.lo: subversion/libsvn_fs_base/bdb/miscellaneous-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/miscellaneous-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/bdb/miscellaneous-table.lo: subversion/libsvn_fs_base/bdb/miscellaneous-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/miscellaneous-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/bdb/node-origins-table.lo: subversion/libsvn_fs_base/bdb/node-origins-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/node-origins-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/id.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/bdb/node-origins-table.lo: subversion/libsvn_fs_base/bdb/node-origins-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/node-origins-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/id.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/bdb/nodes-table.lo: subversion/libsvn_fs_base/bdb/nodes-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/nodes-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/id.h subversion/libsvn_fs_base/key-gen.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/util/fs_skels.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/bdb/nodes-table.lo: subversion/libsvn_fs_base/bdb/nodes-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/nodes-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/id.h subversion/libsvn_fs_base/key-gen.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/util/fs_skels.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/bdb/reps-table.lo: subversion/libsvn_fs_base/bdb/reps-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/reps-table.h subversion/libsvn_fs_base/bdb/strings-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/key-gen.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/util/fs_skels.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/bdb/reps-table.lo: subversion/libsvn_fs_base/bdb/reps-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/reps-table.h subversion/libsvn_fs_base/bdb/strings-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/key-gen.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/util/fs_skels.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/bdb/rev-table.lo: subversion/libsvn_fs_base/bdb/rev-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/rev-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/util/fs_skels.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/bdb/rev-table.lo: subversion/libsvn_fs_base/bdb/rev-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/rev-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/util/fs_skels.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/bdb/strings-table.lo: subversion/libsvn_fs_base/bdb/strings-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/strings-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/key-gen.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/bdb/strings-table.lo: subversion/libsvn_fs_base/bdb/strings-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/strings-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/key-gen.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/bdb/txn-table.lo: subversion/libsvn_fs_base/bdb/txn-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/txn-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/key-gen.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/util/fs_skels.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/bdb/txn-table.lo: subversion/libsvn_fs_base/bdb/txn-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/txn-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/key-gen.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/util/fs_skels.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/bdb/uuids-table.lo: subversion/libsvn_fs_base/bdb/uuids-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/uuids-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/bdb/uuids-table.lo: subversion/libsvn_fs_base/bdb/uuids-table.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/dbt.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/uuids-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/dag.lo: subversion/libsvn_fs_base/dag.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/changes-table.h subversion/libsvn_fs_base/bdb/checksum-reps-table.h subversion/libsvn_fs_base/bdb/copies-table.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/node-origins-table.h subversion/libsvn_fs_base/bdb/nodes-table.h subversion/libsvn_fs_base/bdb/reps-table.h subversion/libsvn_fs_base/bdb/rev-table.h subversion/libsvn_fs_base/bdb/strings-table.h subversion/libsvn_fs_base/bdb/txn-table.h subversion/libsvn_fs_base/dag.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/id.h subversion/libsvn_fs_base/key-gen.h subversion/libsvn_fs_base/node-rev.h subversion/libsvn_fs_base/reps-strings.h subversion/libsvn_fs_base/revs-txns.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/util/fs_skels.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/dag.lo: subversion/libsvn_fs_base/dag.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/changes-table.h subversion/libsvn_fs_base/bdb/checksum-reps-table.h subversion/libsvn_fs_base/bdb/copies-table.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/node-origins-table.h subversion/libsvn_fs_base/bdb/nodes-table.h subversion/libsvn_fs_base/bdb/reps-table.h subversion/libsvn_fs_base/bdb/rev-table.h subversion/libsvn_fs_base/bdb/strings-table.h subversion/libsvn_fs_base/bdb/txn-table.h subversion/libsvn_fs_base/dag.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/id.h subversion/libsvn_fs_base/key-gen.h subversion/libsvn_fs_base/node-rev.h subversion/libsvn_fs_base/reps-strings.h subversion/libsvn_fs_base/revs-txns.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/util/fs_skels.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/err.lo: subversion/libsvn_fs_base/err.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/id.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/err.lo: subversion/libsvn_fs_base/err.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/id.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/fs.lo: subversion/libsvn_fs_base/fs.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/changes-table.h subversion/libsvn_fs_base/bdb/checksum-reps-table.h subversion/libsvn_fs_base/bdb/copies-table.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/lock-tokens-table.h subversion/libsvn_fs_base/bdb/locks-table.h subversion/libsvn_fs_base/bdb/miscellaneous-table.h subversion/libsvn_fs_base/bdb/node-origins-table.h subversion/libsvn_fs_base/bdb/nodes-table.h subversion/libsvn_fs_base/bdb/reps-table.h subversion/libsvn_fs_base/bdb/rev-table.h subversion/libsvn_fs_base/bdb/strings-table.h subversion/libsvn_fs_base/bdb/txn-table.h subversion/libsvn_fs_base/bdb/uuids-table.h subversion/libsvn_fs_base/dag.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/id.h subversion/libsvn_fs_base/lock.h subversion/libsvn_fs_base/revs-txns.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/tree.h subversion/libsvn_fs_base/uuid.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/fs.lo: subversion/libsvn_fs_base/fs.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/changes-table.h subversion/libsvn_fs_base/bdb/checksum-reps-table.h subversion/libsvn_fs_base/bdb/copies-table.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/lock-tokens-table.h subversion/libsvn_fs_base/bdb/locks-table.h subversion/libsvn_fs_base/bdb/miscellaneous-table.h subversion/libsvn_fs_base/bdb/node-origins-table.h subversion/libsvn_fs_base/bdb/nodes-table.h subversion/libsvn_fs_base/bdb/reps-table.h subversion/libsvn_fs_base/bdb/rev-table.h subversion/libsvn_fs_base/bdb/strings-table.h subversion/libsvn_fs_base/bdb/txn-table.h subversion/libsvn_fs_base/bdb/uuids-table.h subversion/libsvn_fs_base/dag.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/id.h subversion/libsvn_fs_base/lock.h subversion/libsvn_fs_base/revs-txns.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/tree.h subversion/libsvn_fs_base/uuid.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/id.lo: subversion/libsvn_fs_base/id.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/id.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h
+subversion/libsvn_fs_base/id.lo: subversion/libsvn_fs_base/id.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/id.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h
-subversion/libsvn_fs_base/key-gen.lo: subversion/libsvn_fs_base/key-gen.c subversion/include/private/svn_debug.h subversion/include/private/svn_skel.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs_base/key-gen.h
+subversion/libsvn_fs_base/key-gen.lo: subversion/libsvn_fs_base/key-gen.c subversion/include/private/svn_debug.h subversion/include/private/svn_skel.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs_base/key-gen.h
-subversion/libsvn_fs_base/lock.lo: subversion/libsvn_fs_base/lock.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/lock-tokens-table.h subversion/libsvn_fs_base/bdb/locks-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/lock.h subversion/libsvn_fs_base/revs-txns.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/tree.h subversion/libsvn_fs_base/util/fs_skels.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/lock.lo: subversion/libsvn_fs_base/lock.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/lock-tokens-table.h subversion/libsvn_fs_base/bdb/locks-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/lock.h subversion/libsvn_fs_base/revs-txns.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/tree.h subversion/libsvn_fs_base/util/fs_skels.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/node-rev.lo: subversion/libsvn_fs_base/node-rev.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/node-origins-table.h subversion/libsvn_fs_base/bdb/nodes-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/id.h subversion/libsvn_fs_base/node-rev.h subversion/libsvn_fs_base/reps-strings.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/node-rev.lo: subversion/libsvn_fs_base/node-rev.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/node-origins-table.h subversion/libsvn_fs_base/bdb/nodes-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/id.h subversion/libsvn_fs_base/node-rev.h subversion/libsvn_fs_base/reps-strings.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/reps-strings.lo: subversion/libsvn_fs_base/reps-strings.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/reps-table.h subversion/libsvn_fs_base/bdb/strings-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/reps-strings.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/reps-strings.lo: subversion/libsvn_fs_base/reps-strings.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/reps-table.h subversion/libsvn_fs_base/bdb/strings-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/reps-strings.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/revs-txns.lo: subversion/libsvn_fs_base/revs-txns.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/changes-table.h subversion/libsvn_fs_base/bdb/copies-table.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/rev-table.h subversion/libsvn_fs_base/bdb/txn-table.h subversion/libsvn_fs_base/dag.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/id.h subversion/libsvn_fs_base/key-gen.h subversion/libsvn_fs_base/revs-txns.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/tree.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/revs-txns.lo: subversion/libsvn_fs_base/revs-txns.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/changes-table.h subversion/libsvn_fs_base/bdb/copies-table.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/rev-table.h subversion/libsvn_fs_base/bdb/txn-table.h subversion/libsvn_fs_base/dag.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/id.h subversion/libsvn_fs_base/key-gen.h subversion/libsvn_fs_base/revs-txns.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/tree.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/trail.lo: subversion/libsvn_fs_base/trail.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/trail.lo: subversion/libsvn_fs_base/trail.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb-err.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/tree.lo: subversion/libsvn_fs_base/tree.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/private/svn_sorts_private.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/changes-table.h subversion/libsvn_fs_base/bdb/copies-table.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/miscellaneous-table.h subversion/libsvn_fs_base/bdb/node-origins-table.h subversion/libsvn_fs_base/bdb/nodes-table.h subversion/libsvn_fs_base/bdb/rev-table.h subversion/libsvn_fs_base/bdb/txn-table.h subversion/libsvn_fs_base/dag.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/id.h subversion/libsvn_fs_base/key-gen.h subversion/libsvn_fs_base/lock.h subversion/libsvn_fs_base/node-rev.h subversion/libsvn_fs_base/revs-txns.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/tree.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/tree.lo: subversion/libsvn_fs_base/tree.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/private/svn_sorts_private.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/changes-table.h subversion/libsvn_fs_base/bdb/copies-table.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/miscellaneous-table.h subversion/libsvn_fs_base/bdb/node-origins-table.h subversion/libsvn_fs_base/bdb/nodes-table.h subversion/libsvn_fs_base/bdb/rev-table.h subversion/libsvn_fs_base/bdb/txn-table.h subversion/libsvn_fs_base/dag.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/id.h subversion/libsvn_fs_base/key-gen.h subversion/libsvn_fs_base/lock.h subversion/libsvn_fs_base/node-rev.h subversion/libsvn_fs_base/revs-txns.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/tree.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/util/fs_skels.lo: subversion/libsvn_fs_base/util/fs_skels.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_skel.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/id.h subversion/libsvn_fs_base/util/fs_skels.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/util/fs_skels.lo: subversion/libsvn_fs_base/util/fs_skels.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_skel.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/id.h subversion/libsvn_fs_base/util/fs_skels.h subversion/svn_private_config.h
-subversion/libsvn_fs_base/uuid.lo: subversion/libsvn_fs_base/uuid.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/uuids-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/uuid.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_base/uuid.lo: subversion/libsvn_fs_base/uuid.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/uuids-table.h subversion/libsvn_fs_base/err.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/uuid.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_fs/cached_data.lo: subversion/libsvn_fs_fs/cached_data.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_io_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_delta/delta.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/cached_data.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/low_level.h subversion/libsvn_fs_fs/pack.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/temp_serializer.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_fs/cached_data.lo: subversion/libsvn_fs_fs/cached_data.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_io_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_delta/delta.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/cached_data.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/low_level.h subversion/libsvn_fs_fs/pack.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/temp_serializer.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_fs/caching.lo: subversion/libsvn_fs_fs/caching.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_cache_config.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/dag.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/temp_serializer.h subversion/libsvn_fs_fs/tree.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_fs/caching.lo: subversion/libsvn_fs_fs/caching.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_cache_config.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/dag.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/temp_serializer.h subversion/libsvn_fs_fs/tree.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_fs/dag.lo: subversion/libsvn_fs_fs/dag.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/cached_data.h subversion/libsvn_fs_fs/dag.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/temp_serializer.h subversion/libsvn_fs_fs/transaction.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_fs/dag.lo: subversion/libsvn_fs_fs/dag.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/cached_data.h subversion/libsvn_fs_fs/dag.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/temp_serializer.h subversion/libsvn_fs_fs/transaction.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_fs/dump-index.lo: subversion/libsvn_fs_fs/dump-index.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h
+subversion/libsvn_fs_fs/dump-index.lo: subversion/libsvn_fs_fs/dump-index.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h
-subversion/libsvn_fs_fs/fs.lo: subversion/libsvn_fs_fs/fs.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/hotcopy.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/lock.h subversion/libsvn_fs_fs/pack.h subversion/libsvn_fs_fs/recovery.h subversion/libsvn_fs_fs/rep-cache.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/revprops.h subversion/libsvn_fs_fs/transaction.h subversion/libsvn_fs_fs/tree.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_fs/verify.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_fs/fs.lo: subversion/libsvn_fs_fs/fs.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/hotcopy.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/lock.h subversion/libsvn_fs_fs/pack.h subversion/libsvn_fs_fs/recovery.h subversion/libsvn_fs_fs/rep-cache.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/revprops.h subversion/libsvn_fs_fs/transaction.h subversion/libsvn_fs_fs/tree.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_fs/verify.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_fs/fs_fs.lo: subversion/libsvn_fs_fs/fs_fs.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_io_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/cached_data.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/rep-cache.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/revprops.h subversion/libsvn_fs_fs/transaction.h subversion/libsvn_fs_fs/tree.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_fs/fs_fs.lo: subversion/libsvn_fs_fs/fs_fs.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_io_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/cached_data.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/low_level.h subversion/libsvn_fs_fs/rep-cache.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/revprops.h subversion/libsvn_fs_fs/transaction.h subversion/libsvn_fs_fs/tree.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_fs/hotcopy.lo: subversion/libsvn_fs_fs/hotcopy.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/hotcopy.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/recovery.h subversion/libsvn_fs_fs/rep-cache.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/revprops.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_fs/hotcopy.lo: subversion/libsvn_fs_fs/hotcopy.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/hotcopy.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/recovery.h subversion/libsvn_fs_fs/rep-cache.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/revprops.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_fs/id.lo: subversion/libsvn_fs_fs/id.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_x/fs_init.h
+subversion/libsvn_fs_fs/id.lo: subversion/libsvn_fs_fs/id.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_x/fs_init.h
-subversion/libsvn_fs_fs/index.lo: subversion/libsvn_fs_fs/index.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/pack.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/temp_serializer.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_fs/index.lo: subversion/libsvn_fs_fs/index.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/pack.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/temp_serializer.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_fs/load-index.lo: subversion/libsvn_fs_fs/load-index.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/transaction.h subversion/libsvn_fs_fs/util.h
+subversion/libsvn_fs_fs/load-index.lo: subversion/libsvn_fs_fs/load-index.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/transaction.h subversion/libsvn_fs_fs/util.h
-subversion/libsvn_fs_fs/lock.lo: subversion/libsvn_fs_fs/lock.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/lock.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/tree.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_fs/lock.lo: subversion/libsvn_fs_fs/lock.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/lock.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/tree.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_fs/low_level.lo: subversion/libsvn_fs_fs/low_level.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/low_level.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_fs/low_level.lo: subversion/libsvn_fs_fs/low_level.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/low_level.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_fs/pack.lo: subversion/libsvn_fs_fs/pack.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_io_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/low_level.h subversion/libsvn_fs_fs/pack.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/revprops.h subversion/libsvn_fs_fs/temp_serializer.h subversion/libsvn_fs_fs/transaction.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_fs/pack.lo: subversion/libsvn_fs_fs/pack.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_io_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/low_level.h subversion/libsvn_fs_fs/pack.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/revprops.h subversion/libsvn_fs_fs/temp_serializer.h subversion/libsvn_fs_fs/transaction.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_fs/recovery.lo: subversion/libsvn_fs_fs/recovery.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/cached_data.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/low_level.h subversion/libsvn_fs_fs/recovery.h subversion/libsvn_fs_fs/rep-cache.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/revprops.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_fs/recovery.lo: subversion/libsvn_fs_fs/recovery.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/cached_data.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/low_level.h subversion/libsvn_fs_fs/recovery.h subversion/libsvn_fs_fs/rep-cache.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/revprops.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_fs/rep-cache.lo: subversion/libsvn_fs_fs/rep-cache.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/cached_data.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/rep-cache-db.h subversion/libsvn_fs_fs/rep-cache.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_fs/rep-cache.lo: subversion/libsvn_fs_fs/rep-cache.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/cached_data.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/rep-cache-db.h subversion/libsvn_fs_fs/rep-cache.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_fs/rev_file.lo: subversion/libsvn_fs_fs/rev_file.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_io_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/low_level.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_fs/rev_file.lo: subversion/libsvn_fs_fs/rev_file.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_io_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/low_level.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_fs/revprops.lo: subversion/libsvn_fs_fs/revprops.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/revprops.h subversion/libsvn_fs_fs/temp_serializer.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_fs/revprops.lo: subversion/libsvn_fs_fs/revprops.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/revprops.h subversion/libsvn_fs_fs/temp_serializer.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_fs/stats.lo: subversion/libsvn_fs_fs/stats.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/cached_data.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/low_level.h subversion/libsvn_fs_fs/pack.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_fs/stats.lo: subversion/libsvn_fs_fs/stats.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/cached_data.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/low_level.h subversion/libsvn_fs_fs/pack.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/revprops.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_fs/temp_serializer.lo: subversion/libsvn_fs_fs/temp_serializer.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_fs_fs/cached_data.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/low_level.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/temp_serializer.h
+subversion/libsvn_fs_fs/temp_serializer.lo: subversion/libsvn_fs_fs/temp_serializer.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_fs_fs/cached_data.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/low_level.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/temp_serializer.h
-subversion/libsvn_fs_fs/transaction.lo: subversion/libsvn_fs_fs/transaction.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/cached_data.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/lock.h subversion/libsvn_fs_fs/low_level.h subversion/libsvn_fs_fs/rep-cache.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/temp_serializer.h subversion/libsvn_fs_fs/transaction.h subversion/libsvn_fs_fs/tree.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_fs/transaction.lo: subversion/libsvn_fs_fs/transaction.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/cached_data.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/lock.h subversion/libsvn_fs_fs/low_level.h subversion/libsvn_fs_fs/rep-cache.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/temp_serializer.h subversion/libsvn_fs_fs/transaction.h subversion/libsvn_fs_fs/tree.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_fs/tree.lo: subversion/libsvn_fs_fs/tree.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/cached_data.h subversion/libsvn_fs_fs/dag.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/lock.h subversion/libsvn_fs_fs/pack.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/temp_serializer.h subversion/libsvn_fs_fs/transaction.h subversion/libsvn_fs_fs/tree.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_fs/tree.lo: subversion/libsvn_fs_fs/tree.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/cached_data.h subversion/libsvn_fs_fs/dag.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/lock.h subversion/libsvn_fs_fs/pack.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/temp_serializer.h subversion/libsvn_fs_fs/transaction.h subversion/libsvn_fs_fs/tree.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_fs/util.lo: subversion/libsvn_fs_fs/util.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/pack.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_fs/util.lo: subversion/libsvn_fs_fs/util.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/pack.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_fs/verify.lo: subversion/libsvn_fs_fs/verify.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/cached_data.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/rep-cache.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/revprops.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_fs/verify.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_fs/verify.lo: subversion/libsvn_fs_fs/verify.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/cached_data.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/rep-cache.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/revprops.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_fs/verify.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_util/fs-util.lo: subversion/libsvn_fs_util/fs-util.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
+subversion/libsvn_fs_util/fs-util.lo: subversion/libsvn_fs_util/fs-util.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h
-subversion/libsvn_fs_x/batch_fsync.lo: subversion/libsvn_fs_x/batch_fsync.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_mutex.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs_x/batch_fsync.h subversion/svn_private_config.h
+subversion/libsvn_fs_x/batch_fsync.lo: subversion/libsvn_fs_x/batch_fsync.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_mutex.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs_x/batch_fsync.h subversion/svn_private_config.h
-subversion/libsvn_fs_x/cached_data.lo: subversion/libsvn_fs_x/cached_data.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_io_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_delta/delta.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/changes.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/low_level.h subversion/libsvn_fs_x/noderevs.h subversion/libsvn_fs_x/pack.h subversion/libsvn_fs_x/reps.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/temp_serializer.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
+subversion/libsvn_fs_x/cached_data.lo: subversion/libsvn_fs_x/cached_data.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_io_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_delta/delta.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/changes.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/low_level.h subversion/libsvn_fs_x/noderevs.h subversion/libsvn_fs_x/pack.h subversion/libsvn_fs_x/reps.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/temp_serializer.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
-subversion/libsvn_fs_x/caching.lo: subversion/libsvn_fs_x/caching.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_cache_config.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/changes.h subversion/libsvn_fs_x/dag.h subversion/libsvn_fs_x/dag_cache.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/noderevs.h subversion/libsvn_fs_x/reps.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/temp_serializer.h subversion/svn_private_config.h
+subversion/libsvn_fs_x/caching.lo: subversion/libsvn_fs_x/caching.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_cache_config.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/changes.h subversion/libsvn_fs_x/dag.h subversion/libsvn_fs_x/dag_cache.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/noderevs.h subversion/libsvn_fs_x/reps.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/temp_serializer.h subversion/svn_private_config.h
-subversion/libsvn_fs_x/changes.lo: subversion/libsvn_fs_x/changes.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_packed_data.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs_x/changes.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/string_table.h subversion/libsvn_fs_x/temp_serializer.h subversion/svn_private_config.h
+subversion/libsvn_fs_x/changes.lo: subversion/libsvn_fs_x/changes.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_packed_data.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs_x/changes.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/string_table.h subversion/libsvn_fs_x/temp_serializer.h subversion/svn_private_config.h
-subversion/libsvn_fs_x/dag.lo: subversion/libsvn_fs_x/dag.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/dag.h subversion/libsvn_fs_x/dag_cache.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_id.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/temp_serializer.h subversion/libsvn_fs_x/transaction.h subversion/svn_private_config.h
+subversion/libsvn_fs_x/dag.lo: subversion/libsvn_fs_x/dag.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/dag.h subversion/libsvn_fs_x/dag_cache.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_id.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/temp_serializer.h subversion/libsvn_fs_x/transaction.h subversion/svn_private_config.h
-subversion/libsvn_fs_x/dag_cache.lo: subversion/libsvn_fs_x/dag_cache.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/dag.h subversion/libsvn_fs_x/dag_cache.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_id.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/lock.h subversion/libsvn_fs_x/pack.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/temp_serializer.h subversion/libsvn_fs_x/transaction.h subversion/libsvn_fs_x/tree.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
+subversion/libsvn_fs_x/dag_cache.lo: subversion/libsvn_fs_x/dag_cache.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/dag.h subversion/libsvn_fs_x/dag_cache.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_id.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/lock.h subversion/libsvn_fs_x/pack.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/temp_serializer.h subversion/libsvn_fs_x/transaction.h subversion/libsvn_fs_x/tree.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
-subversion/libsvn_fs_x/fs.lo: subversion/libsvn_fs_x/fs.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/dag.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/hotcopy.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/lock.h subversion/libsvn_fs_x/pack.h subversion/libsvn_fs_x/recovery.h subversion/libsvn_fs_x/rep-cache.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/revprops.h subversion/libsvn_fs_x/transaction.h subversion/libsvn_fs_x/tree.h subversion/libsvn_fs_x/util.h subversion/libsvn_fs_x/verify.h subversion/svn_private_config.h
+subversion/libsvn_fs_x/fs.lo: subversion/libsvn_fs_x/fs.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/dag.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/hotcopy.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/lock.h subversion/libsvn_fs_x/pack.h subversion/libsvn_fs_x/recovery.h subversion/libsvn_fs_x/rep-cache.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/revprops.h subversion/libsvn_fs_x/transaction.h subversion/libsvn_fs_x/tree.h subversion/libsvn_fs_x/util.h subversion/libsvn_fs_x/verify.h subversion/svn_private_config.h
-subversion/libsvn_fs_x/fs_id.lo: subversion/libsvn_fs_x/fs_id.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_id.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/rev_file.h
+subversion/libsvn_fs_x/fs_id.lo: subversion/libsvn_fs_x/fs_id.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_id.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/rev_file.h
-subversion/libsvn_fs_x/fs_x.lo: subversion/libsvn_fs_x/fs_x.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/dag.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/low_level.h subversion/libsvn_fs_x/rep-cache.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/revprops.h subversion/libsvn_fs_x/transaction.h subversion/libsvn_fs_x/tree.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
+subversion/libsvn_fs_x/fs_x.lo: subversion/libsvn_fs_x/fs_x.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/dag.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/low_level.h subversion/libsvn_fs_x/rep-cache.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/revprops.h subversion/libsvn_fs_x/transaction.h subversion/libsvn_fs_x/tree.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
-subversion/libsvn_fs_x/hotcopy.lo: subversion/libsvn_fs_x/hotcopy.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/hotcopy.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/recovery.h subversion/libsvn_fs_x/rep-cache.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/revprops.h subversion/libsvn_fs_x/transaction.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
+subversion/libsvn_fs_x/hotcopy.lo: subversion/libsvn_fs_x/hotcopy.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/hotcopy.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/recovery.h subversion/libsvn_fs_x/rep-cache.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/revprops.h subversion/libsvn_fs_x/transaction.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
-subversion/libsvn_fs_x/id.lo: subversion/libsvn_fs_x/id.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/util.h
+subversion/libsvn_fs_x/id.lo: subversion/libsvn_fs_x/id.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/util.h
-subversion/libsvn_fs_x/index.lo: subversion/libsvn_fs_x/index.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/pack.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/temp_serializer.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
+subversion/libsvn_fs_x/index.lo: subversion/libsvn_fs_x/index.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/pack.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/temp_serializer.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
-subversion/libsvn_fs_x/lock.lo: subversion/libsvn_fs_x/lock.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/dag.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/lock.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/transaction.h subversion/libsvn_fs_x/tree.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
+subversion/libsvn_fs_x/lock.lo: subversion/libsvn_fs_x/lock.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/dag.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/lock.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/transaction.h subversion/libsvn_fs_x/tree.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
-subversion/libsvn_fs_x/low_level.lo: subversion/libsvn_fs_x/low_level.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/low_level.h subversion/libsvn_fs_x/pack.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
+subversion/libsvn_fs_x/low_level.lo: subversion/libsvn_fs_x/low_level.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/low_level.h subversion/libsvn_fs_x/pack.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
-subversion/libsvn_fs_x/noderevs.lo: subversion/libsvn_fs_x/noderevs.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_packed_data.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/noderevs.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/string_table.h subversion/libsvn_fs_x/temp_serializer.h subversion/svn_private_config.h
+subversion/libsvn_fs_x/noderevs.lo: subversion/libsvn_fs_x/noderevs.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_packed_data.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/noderevs.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/string_table.h subversion/libsvn_fs_x/temp_serializer.h subversion/svn_private_config.h
-subversion/libsvn_fs_x/pack.lo: subversion/libsvn_fs_x/pack.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/changes.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/low_level.h subversion/libsvn_fs_x/noderevs.h subversion/libsvn_fs_x/pack.h subversion/libsvn_fs_x/reps.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/revprops.h subversion/libsvn_fs_x/temp_serializer.h subversion/libsvn_fs_x/transaction.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
+subversion/libsvn_fs_x/pack.lo: subversion/libsvn_fs_x/pack.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/changes.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/low_level.h subversion/libsvn_fs_x/noderevs.h subversion/libsvn_fs_x/pack.h subversion/libsvn_fs_x/reps.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/revprops.h subversion/libsvn_fs_x/temp_serializer.h subversion/libsvn_fs_x/transaction.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
-subversion/libsvn_fs_x/recovery.lo: subversion/libsvn_fs_x/recovery.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/low_level.h subversion/libsvn_fs_x/recovery.h subversion/libsvn_fs_x/rep-cache.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/revprops.h subversion/libsvn_fs_x/transaction.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
+subversion/libsvn_fs_x/recovery.lo: subversion/libsvn_fs_x/recovery.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/low_level.h subversion/libsvn_fs_x/recovery.h subversion/libsvn_fs_x/rep-cache.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/revprops.h subversion/libsvn_fs_x/transaction.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
-subversion/libsvn_fs_x/rep-cache.lo: subversion/libsvn_fs_x/rep-cache.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/rep-cache-db.h subversion/libsvn_fs_x/rep-cache.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
+subversion/libsvn_fs_x/rep-cache.lo: subversion/libsvn_fs_x/rep-cache.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/rep-cache-db.h subversion/libsvn_fs_x/rep-cache.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
-subversion/libsvn_fs_x/reps.lo: subversion/libsvn_fs_x/reps.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_packed_data.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/reps.h subversion/libsvn_fs_x/rev_file.h subversion/svn_private_config.h
+subversion/libsvn_fs_x/reps.lo: subversion/libsvn_fs_x/reps.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_packed_data.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/reps.h subversion/libsvn_fs_x/rev_file.h subversion/svn_private_config.h
-subversion/libsvn_fs_x/rev_file.lo: subversion/libsvn_fs_x/rev_file.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_io_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/low_level.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
+subversion/libsvn_fs_x/rev_file.lo: subversion/libsvn_fs_x/rev_file.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_io_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/low_level.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
-subversion/libsvn_fs_x/revprops.lo: subversion/libsvn_fs_x/revprops.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_packed_data.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/low_level.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/revprops.h subversion/libsvn_fs_x/transaction.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
+subversion/libsvn_fs_x/revprops.lo: subversion/libsvn_fs_x/revprops.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_packed_data.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/low_level.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/revprops.h subversion/libsvn_fs_x/transaction.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
-subversion/libsvn_fs_x/string_table.lo: subversion/libsvn_fs_x/string_table.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_packed_data.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs_x/string_table.h
+subversion/libsvn_fs_x/string_table.lo: subversion/libsvn_fs_x/string_table.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_packed_data.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs_x/string_table.h
-subversion/libsvn_fs_x/temp_serializer.lo: subversion/libsvn_fs_x/temp_serializer.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/low_level.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/temp_serializer.h
+subversion/libsvn_fs_x/temp_serializer.lo: subversion/libsvn_fs_x/temp_serializer.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/low_level.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/temp_serializer.h
-subversion/libsvn_fs_x/transaction.lo: subversion/libsvn_fs_x/transaction.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_io_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/dag.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/lock.h subversion/libsvn_fs_x/low_level.h subversion/libsvn_fs_x/rep-cache.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/revprops.h subversion/libsvn_fs_x/temp_serializer.h subversion/libsvn_fs_x/transaction.h subversion/libsvn_fs_x/tree.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
+subversion/libsvn_fs_x/transaction.lo: subversion/libsvn_fs_x/transaction.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_io_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/dag.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/lock.h subversion/libsvn_fs_x/low_level.h subversion/libsvn_fs_x/rep-cache.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/revprops.h subversion/libsvn_fs_x/temp_serializer.h subversion/libsvn_fs_x/transaction.h subversion/libsvn_fs_x/tree.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
-subversion/libsvn_fs_x/tree.lo: subversion/libsvn_fs_x/tree.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/dag.h subversion/libsvn_fs_x/dag_cache.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_id.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/lock.h subversion/libsvn_fs_x/pack.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/temp_serializer.h subversion/libsvn_fs_x/transaction.h subversion/libsvn_fs_x/tree.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
+subversion/libsvn_fs_x/tree.lo: subversion/libsvn_fs_x/tree.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_temp_serializer.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/dag.h subversion/libsvn_fs_x/dag_cache.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_id.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/lock.h subversion/libsvn_fs_x/pack.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/temp_serializer.h subversion/libsvn_fs_x/transaction.h subversion/libsvn_fs_x/tree.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
-subversion/libsvn_fs_x/util.lo: subversion/libsvn_fs_x/util.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
+subversion/libsvn_fs_x/util.lo: subversion/libsvn_fs_x/util.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/util.h subversion/svn_private_config.h
-subversion/libsvn_fs_x/verify.lo: subversion/libsvn_fs_x/verify.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/rep-cache.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/revprops.h subversion/libsvn_fs_x/util.h subversion/libsvn_fs_x/verify.h subversion/svn_private_config.h
+subversion/libsvn_fs_x/verify.lo: subversion/libsvn_fs_x/verify.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/cached_data.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/fs_init.h subversion/libsvn_fs_x/fs_x.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/index.h subversion/libsvn_fs_x/rep-cache.h subversion/libsvn_fs_x/rev_file.h subversion/libsvn_fs_x/revprops.h subversion/libsvn_fs_x/util.h subversion/libsvn_fs_x/verify.h subversion/svn_private_config.h
-subversion/libsvn_ra/compat.lo: subversion/libsvn_ra/compat.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_sorts_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_ra/ra_loader.h subversion/svn_private_config.h
+subversion/libsvn_ra/compat.lo: subversion/libsvn_ra/compat.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_sorts_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_ra/ra_loader.h subversion/svn_private_config.h
-subversion/libsvn_ra/debug_reporter.lo: subversion/libsvn_ra/debug_reporter.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_ra/debug_reporter.h
+subversion/libsvn_ra/debug_reporter.lo: subversion/libsvn_ra/debug_reporter.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_ra/debug_reporter.h
-subversion/libsvn_ra/deprecated.lo: subversion/libsvn_ra/deprecated.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_ra/deprecated.h subversion/libsvn_ra/ra_loader.h subversion/svn_private_config.h
+subversion/libsvn_ra/deprecated.lo: subversion/libsvn_ra/deprecated.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_ra/deprecated.h subversion/libsvn_ra/ra_loader.h subversion/svn_private_config.h
-subversion/libsvn_ra/editor.lo: subversion/libsvn_ra/editor.c subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_ra/ra_loader.h subversion/svn_private_config.h
+subversion/libsvn_ra/editor.lo: subversion/libsvn_ra/editor.c subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_ra/ra_loader.h subversion/svn_private_config.h
-subversion/libsvn_ra/ra_loader.lo: subversion/libsvn_ra/ra_loader.c subversion/include/private/svn_auth_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_dso.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/deprecated.h subversion/libsvn_ra/ra_loader.h subversion/svn_private_config.h
+subversion/libsvn_ra/ra_loader.lo: subversion/libsvn_ra/ra_loader.c subversion/include/private/svn_auth_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_dso.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/deprecated.h subversion/libsvn_ra/ra_loader.h subversion/svn_private_config.h
-subversion/libsvn_ra/util.lo: subversion/libsvn_ra/util.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_ra/util.lo: subversion/libsvn_ra/util.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_ra_local/ra_plugin.lo: subversion/libsvn_ra_local/ra_plugin.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_cache_config.h subversion/include/svn_checksum.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra/wrapper_template.h subversion/libsvn_ra_local/ra_local.h subversion/svn_private_config.h
+subversion/libsvn_ra_local/ra_plugin.lo: subversion/libsvn_ra_local/ra_plugin.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_cache_config.h subversion/include/svn_checksum.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra/wrapper_template.h subversion/libsvn_ra_local/ra_local.h subversion/svn_private_config.h
-subversion/libsvn_ra_local/split_url.lo: subversion/libsvn_ra_local/split_url.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_ra_local/ra_local.h subversion/svn_private_config.h
+subversion/libsvn_ra_local/split_url.lo: subversion/libsvn_ra_local/split_url.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_ra_local/ra_local.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/blame.lo: subversion/libsvn_ra_serf/blame.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/blame.lo: subversion/libsvn_ra_serf/blame.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/blncache.lo: subversion/libsvn_ra_serf/blncache.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_ra_serf/blncache.h
+subversion/libsvn_ra_serf/blncache.lo: subversion/libsvn_ra_serf/blncache.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_ra_serf/blncache.h
-subversion/libsvn_ra_serf/commit.lo: subversion/libsvn_ra_serf/commit.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_skel.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/commit.lo: subversion/libsvn_ra_serf/commit.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_skel.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/eagain_bucket.lo: subversion/libsvn_ra_serf/eagain_bucket.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/eagain_bucket.lo: subversion/libsvn_ra_serf/eagain_bucket.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/get_deleted_rev.lo: subversion/libsvn_ra_serf/get_deleted_rev.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/get_deleted_rev.lo: subversion/libsvn_ra_serf/get_deleted_rev.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/get_file.lo: subversion/libsvn_ra_serf/get_file.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/get_file.lo: subversion/libsvn_ra_serf/get_file.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/get_lock.lo: subversion/libsvn_ra_serf/get_lock.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/get_lock.lo: subversion/libsvn_ra_serf/get_lock.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/getdate.lo: subversion/libsvn_ra_serf/getdate.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/getdate.lo: subversion/libsvn_ra_serf/getdate.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/getlocations.lo: subversion/libsvn_ra_serf/getlocations.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/getlocations.lo: subversion/libsvn_ra_serf/getlocations.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/getlocationsegments.lo: subversion/libsvn_ra_serf/getlocationsegments.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/getlocationsegments.lo: subversion/libsvn_ra_serf/getlocationsegments.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/getlocks.lo: subversion/libsvn_ra_serf/getlocks.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/getlocks.lo: subversion/libsvn_ra_serf/getlocks.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/inherited_props.lo: subversion/libsvn_ra_serf/inherited_props.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/inherited_props.lo: subversion/libsvn_ra_serf/inherited_props.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/list.lo: subversion/libsvn_ra_serf/list.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/list.lo: subversion/libsvn_ra_serf/list.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/lock.lo: subversion/libsvn_ra_serf/lock.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/lock.lo: subversion/libsvn_ra_serf/lock.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/log.lo: subversion/libsvn_ra_serf/log.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/log.lo: subversion/libsvn_ra_serf/log.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/merge.lo: subversion/libsvn_ra_serf/merge.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/merge.lo: subversion/libsvn_ra_serf/merge.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/mergeinfo.lo: subversion/libsvn_ra_serf/mergeinfo.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/mergeinfo.lo: subversion/libsvn_ra_serf/mergeinfo.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/multistatus.lo: subversion/libsvn_ra_serf/multistatus.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/multistatus.lo: subversion/libsvn_ra_serf/multistatus.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/options.lo: subversion/libsvn_ra_serf/options.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/options.lo: subversion/libsvn_ra_serf/options.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/property.lo: subversion/libsvn_ra_serf/property.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/property.lo: subversion/libsvn_ra_serf/property.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/replay.lo: subversion/libsvn_ra_serf/replay.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/replay.lo: subversion/libsvn_ra_serf/replay.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/request_body.lo: subversion/libsvn_ra_serf/request_body.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h
+subversion/libsvn_ra_serf/request_body.lo: subversion/libsvn_ra_serf/request_body.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h
-subversion/libsvn_ra_serf/sb_bucket.lo: subversion/libsvn_ra_serf/sb_bucket.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/sb_bucket.lo: subversion/libsvn_ra_serf/sb_bucket.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/serf.lo: subversion/libsvn_ra_serf/serf.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra/wrapper_template.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/serf.lo: subversion/libsvn_ra_serf/serf.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra/wrapper_template.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/stat.lo: subversion/libsvn_ra_serf/stat.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/stat.lo: subversion/libsvn_ra_serf/stat.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/stream_bucket.lo: subversion/libsvn_ra_serf/stream_bucket.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h
+subversion/libsvn_ra_serf/stream_bucket.lo: subversion/libsvn_ra_serf/stream_bucket.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h
-subversion/libsvn_ra_serf/update.lo: subversion/libsvn_ra_serf/update.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/update.lo: subversion/libsvn_ra_serf/update.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/util.lo: subversion/libsvn_ra_serf/util.c subversion/include/private/svn_auth_private.h subversion/include/private/svn_cert.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/util.lo: subversion/libsvn_ra_serf/util.c subversion/include/private/svn_auth_private.h subversion/include/private/svn_cert.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/util_error.lo: subversion/libsvn_ra_serf/util_error.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_error_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h
+subversion/libsvn_ra_serf/util_error.lo: subversion/libsvn_ra_serf/util_error.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_error_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h
-subversion/libsvn_ra_serf/xml.lo: subversion/libsvn_ra_serf/xml.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/xml.lo: subversion/libsvn_ra_serf/xml.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_svn/client.lo: subversion/libsvn_ra_svn/client.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_ra_svn_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_ra_svn.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra/wrapper_template.h subversion/libsvn_ra_svn/ra_svn.h subversion/svn_private_config.h
+subversion/libsvn_ra_svn/client.lo: subversion/libsvn_ra_svn/client.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_ra_svn_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_ra_svn.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra/wrapper_template.h subversion/libsvn_ra_svn/ra_svn.h subversion/svn_private_config.h
-subversion/libsvn_ra_svn/cram.lo: subversion/libsvn_ra_svn/cram.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_svn_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_ra.h subversion/include/svn_ra_svn.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_ra_svn/ra_svn.h subversion/svn_private_config.h
+subversion/libsvn_ra_svn/cram.lo: subversion/libsvn_ra_svn/cram.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_svn_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_ra.h subversion/include/svn_ra_svn.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_ra_svn/ra_svn.h subversion/svn_private_config.h
-subversion/libsvn_ra_svn/cyrus_auth.lo: subversion/libsvn_ra_svn/cyrus_auth.c subversion/include/private/ra_svn_sasl.h subversion/include/private/ra_svn_wrapped_sasl.h subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_ra_svn_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_ra_svn.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_ra_svn/ra_svn.h subversion/svn_private_config.h
+subversion/libsvn_ra_svn/cyrus_auth.lo: subversion/libsvn_ra_svn/cyrus_auth.c subversion/include/private/ra_svn_sasl.h subversion/include/private/ra_svn_wrapped_sasl.h subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_ra_svn_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_ra_svn.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_ra_svn/ra_svn.h subversion/svn_private_config.h
-subversion/libsvn_ra_svn/deprecated.lo: subversion/libsvn_ra_svn/deprecated.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_svn_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_ra_svn.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_ra_svn/deprecated.lo: subversion/libsvn_ra_svn/deprecated.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_svn_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_ra_svn.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_ra_svn/editorp.lo: subversion/libsvn_ra_svn/editorp.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_svn_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_ra_svn.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_ra_svn/ra_svn.h subversion/svn_private_config.h
+subversion/libsvn_ra_svn/editorp.lo: subversion/libsvn_ra_svn/editorp.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_svn_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_ra_svn.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_ra_svn/ra_svn.h subversion/svn_private_config.h
-subversion/libsvn_ra_svn/internal_auth.lo: subversion/libsvn_ra_svn/internal_auth.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_svn_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_ra.h subversion/include/svn_ra_svn.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_ra_svn/ra_svn.h subversion/svn_private_config.h
+subversion/libsvn_ra_svn/internal_auth.lo: subversion/libsvn_ra_svn/internal_auth.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_svn_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_ra.h subversion/include/svn_ra_svn.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_ra_svn/ra_svn.h subversion/svn_private_config.h
-subversion/libsvn_ra_svn/marshal.lo: subversion/libsvn_ra_svn/marshal.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_error_private.h subversion/include/private/svn_ra_svn_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_ra_svn.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/libsvn_ra_svn/ra_svn.h subversion/svn_private_config.h
+subversion/libsvn_ra_svn/marshal.lo: subversion/libsvn_ra_svn/marshal.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_error_private.h subversion/include/private/svn_ra_svn_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_ra_svn.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_ra_svn/ra_svn.h subversion/svn_private_config.h
-subversion/libsvn_ra_svn/streams.lo: subversion/libsvn_ra_svn/streams.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_io_private.h subversion/include/private/svn_ra_svn_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_ra_svn.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_ra_svn/ra_svn.h subversion/svn_private_config.h
+subversion/libsvn_ra_svn/streams.lo: subversion/libsvn_ra_svn/streams.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_io_private.h subversion/include/private/svn_ra_svn_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_ra_svn.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_ra_svn/ra_svn.h subversion/svn_private_config.h
-subversion/libsvn_ra_svn/version.lo: subversion/libsvn_ra_svn/version.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_ra_svn.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h
+subversion/libsvn_ra_svn/version.lo: subversion/libsvn_ra_svn/version.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_ra_svn.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h
subversion/libsvn_ra_svn/wrapped_sasl.lo: subversion/libsvn_ra_svn/wrapped_sasl.c subversion/include/private/ra_svn_wrapped_sasl.h subversion/svn_private_config.h
-subversion/libsvn_repos/authz.lo: subversion/libsvn_repos/authz.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_repos/authz.h subversion/libsvn_repos/config_file.h subversion/libsvn_repos/repos.h
+subversion/libsvn_repos/authz.lo: subversion/libsvn_repos/authz.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_repos/authz.h subversion/libsvn_repos/config_file.h subversion/libsvn_repos/repos.h
+
+subversion/libsvn_repos/authz_info.lo: subversion/libsvn_repos/authz_info.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_repos/authz.h subversion/svn_private_config.h
-subversion/libsvn_repos/authz_info.lo: subversion/libsvn_repos/authz_info.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_repos/authz.h subversion/svn_private_config.h
+subversion/libsvn_repos/authz_parse.lo: subversion/libsvn_repos/authz_parse.c subversion/include/private/svn_config_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_repos/authz.h subversion/svn_private_config.h
-subversion/libsvn_repos/authz_parse.lo: subversion/libsvn_repos/authz_parse.c subversion/include/private/svn_config_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_repos/authz.h subversion/svn_private_config.h
+subversion/libsvn_repos/commit.lo: subversion/libsvn_repos/commit.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/svn_checksum.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
-subversion/libsvn_repos/commit.lo: subversion/libsvn_repos/commit.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/svn_checksum.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
+subversion/libsvn_repos/compat.lo: subversion/libsvn_repos/compat.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
-subversion/libsvn_repos/compat.lo: subversion/libsvn_repos/compat.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
+subversion/libsvn_repos/config_file.lo: subversion/libsvn_repos/config_file.c subversion/include/private/svn_config_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_repos/config_file.h subversion/svn_private_config.h
-subversion/libsvn_repos/config_file.lo: subversion/libsvn_repos/config_file.c subversion/include/private/svn_config_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_repos/config_file.h subversion/svn_private_config.h
+subversion/libsvn_repos/config_pool.lo: subversion/libsvn_repos/config_pool.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_repos/config_file.h subversion/svn_private_config.h
-subversion/libsvn_repos/config_pool.lo: subversion/libsvn_repos/config_pool.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_repos/config_file.h subversion/svn_private_config.h
+subversion/libsvn_repos/delta.lo: subversion/libsvn_repos/delta.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
-subversion/libsvn_repos/delta.lo: subversion/libsvn_repos/delta.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
+subversion/libsvn_repos/deprecated.lo: subversion/libsvn_repos/deprecated.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
-subversion/libsvn_repos/deprecated.lo: subversion/libsvn_repos/deprecated.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
+subversion/libsvn_repos/dump.lo: subversion/libsvn_repos/dump.c subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_repos/dump.lo: subversion/libsvn_repos/dump.c subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_repos/dump_editor.lo: subversion/libsvn_repos/dump_editor.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_repos/fs-wrap.lo: subversion/libsvn_repos/fs-wrap.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
+subversion/libsvn_repos/fs-wrap.lo: subversion/libsvn_repos/fs-wrap.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
-subversion/libsvn_repos/hooks.lo: subversion/libsvn_repos/hooks.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
+subversion/libsvn_repos/hooks.lo: subversion/libsvn_repos/hooks.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
-subversion/libsvn_repos/list.lo: subversion/libsvn_repos/list.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
+subversion/libsvn_repos/list.lo: subversion/libsvn_repos/list.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
-subversion/libsvn_repos/load-fs-vtable.lo: subversion/libsvn_repos/load-fs-vtable.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
+subversion/libsvn_repos/load-fs-vtable.lo: subversion/libsvn_repos/load-fs-vtable.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
-subversion/libsvn_repos/load.lo: subversion/libsvn_repos/load.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
+subversion/libsvn_repos/load.lo: subversion/libsvn_repos/load.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
-subversion/libsvn_repos/log.lo: subversion/libsvn_repos/log.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
+subversion/libsvn_repos/log.lo: subversion/libsvn_repos/log.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
-subversion/libsvn_repos/node_tree.lo: subversion/libsvn_repos/node_tree.c subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
+subversion/libsvn_repos/node_tree.lo: subversion/libsvn_repos/node_tree.c subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
-subversion/libsvn_repos/notify.lo: subversion/libsvn_repos/notify.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
+subversion/libsvn_repos/notify.lo: subversion/libsvn_repos/notify.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
-subversion/libsvn_repos/replay.lo: subversion/libsvn_repos/replay.c subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_repos/replay.lo: subversion/libsvn_repos/replay.c subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_repos/reporter.lo: subversion/libsvn_repos/reporter.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_fspath.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
+subversion/libsvn_repos/reporter.lo: subversion/libsvn_repos/reporter.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_fspath.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
-subversion/libsvn_repos/repos.lo: subversion/libsvn_repos/repos.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
+subversion/libsvn_repos/repos.lo: subversion/libsvn_repos/repos.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
-subversion/libsvn_repos/rev_hunt.lo: subversion/libsvn_repos/rev_hunt.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fspath.h subversion/include/private/svn_sorts_private.h subversion/include/svn_checksum.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
+subversion/libsvn_repos/rev_hunt.lo: subversion/libsvn_repos/rev_hunt.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fspath.h subversion/include/private/svn_sorts_private.h subversion/include/svn_checksum.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
subversion/libsvn_subr/adler32.lo: subversion/libsvn_subr/adler32.c subversion/include/private/svn_adler32.h
-subversion/libsvn_subr/atomic.lo: subversion/libsvn_subr/atomic.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_mutex.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h
+subversion/libsvn_subr/atomic.lo: subversion/libsvn_subr/atomic.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_mutex.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_subr/auth.lo: subversion/libsvn_subr/auth.c subversion/include/private/svn_auth_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dso.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_subr/auth.h subversion/svn_private_config.h
+subversion/libsvn_subr/auth.lo: subversion/libsvn_subr/auth.c subversion/include/private/svn_auth_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dso.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_subr/auth.h subversion/svn_private_config.h
-subversion/libsvn_subr/base64.lo: subversion/libsvn_subr/base64.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_subr/base64.lo: subversion/libsvn_subr/base64.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_subr/bit_array.lo: subversion/libsvn_subr/bit_array.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_subr/bit_array.lo: subversion/libsvn_subr/bit_array.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_subr/cache-inprocess.lo: subversion/libsvn_subr/cache-inprocess.c subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_subr/cache.h subversion/svn_private_config.h
+subversion/libsvn_subr/cache-inprocess.lo: subversion/libsvn_subr/cache-inprocess.c subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_subr/cache.h subversion/svn_private_config.h
-subversion/libsvn_subr/cache-membuffer.lo: subversion/libsvn_subr/cache-membuffer.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_mutex.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_subr/cache.h subversion/libsvn_subr/fnv1a.h subversion/svn_private_config.h
+subversion/libsvn_subr/cache-membuffer.lo: subversion/libsvn_subr/cache-membuffer.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_mutex.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_subr/cache.h subversion/libsvn_subr/fnv1a.h subversion/svn_private_config.h
-subversion/libsvn_subr/cache-memcache.lo: subversion/libsvn_subr/cache-memcache.c subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_subr/cache.h subversion/svn_private_config.h
+subversion/libsvn_subr/cache-memcache.lo: subversion/libsvn_subr/cache-memcache.c subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_subr/cache.h subversion/svn_private_config.h
-subversion/libsvn_subr/cache-null.lo: subversion/libsvn_subr/cache-null.c subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_subr/cache.h subversion/svn_private_config.h
+subversion/libsvn_subr/cache-null.lo: subversion/libsvn_subr/cache-null.c subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_subr/cache.h subversion/svn_private_config.h
-subversion/libsvn_subr/cache.lo: subversion/libsvn_subr/cache.c subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_subr/cache.h
+subversion/libsvn_subr/cache.lo: subversion/libsvn_subr/cache.c subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_subr/cache.h
-subversion/libsvn_subr/cache_config.lo: subversion/libsvn_subr/cache_config.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_cache_config.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_subr/cache_config.lo: subversion/libsvn_subr/cache_config.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_cache_config.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_subr/checksum.lo: subversion/libsvn_subr/checksum.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_subr/checksum.h subversion/libsvn_subr/fnv1a.h subversion/svn_private_config.h
+subversion/libsvn_subr/checksum.lo: subversion/libsvn_subr/checksum.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_subr/checksum.h subversion/libsvn_subr/fnv1a.h subversion/svn_private_config.h
-subversion/libsvn_subr/cmdline.lo: subversion/libsvn_subr/cmdline.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_dirent_uri.h subversion/include/svn_dso.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_nls.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_xml.h subversion/libsvn_subr/win32_crashrpt.h subversion/svn_private_config.h
+subversion/libsvn_subr/cmdline.lo: subversion/libsvn_subr/cmdline.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_dirent_uri.h subversion/include/svn_dso.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_nls.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_xml.h subversion/libsvn_subr/win32_crashrpt.h subversion/svn_private_config.h
-subversion/libsvn_subr/compat.lo: subversion/libsvn_subr/compat.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_compat.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_subr/compat.lo: subversion/libsvn_subr/compat.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_compat.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_subr/compress_lz4.lo: subversion/libsvn_subr/compress_lz4.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_subr/lz4/lz4internal.h subversion/svn_private_config.h
+subversion/libsvn_subr/compress_lz4.lo: subversion/libsvn_subr/compress_lz4.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_subr/lz4/lz4internal.h subversion/svn_private_config.h
-subversion/libsvn_subr/compress_zlib.lo: subversion/libsvn_subr/compress_zlib.c subversion/include/private/svn_debug.h subversion/include/private/svn_error_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_subr/compress_zlib.lo: subversion/libsvn_subr/compress_zlib.c subversion/include/private/svn_debug.h subversion/include/private/svn_error_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_subr/config.lo: subversion/libsvn_subr/config.c subversion/include/private/svn_config_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_subr/config_impl.h subversion/svn_private_config.h
+subversion/libsvn_subr/config.lo: subversion/libsvn_subr/config.c subversion/include/private/svn_config_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_subr/config_impl.h subversion/svn_private_config.h
-subversion/libsvn_subr/config_auth.lo: subversion/libsvn_subr/config_auth.c subversion/include/private/svn_auth_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_subr/auth.h subversion/libsvn_subr/config_impl.h subversion/svn_private_config.h
+subversion/libsvn_subr/config_auth.lo: subversion/libsvn_subr/config_auth.c subversion/include/private/svn_auth_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_subr/auth.h subversion/libsvn_subr/config_impl.h subversion/svn_private_config.h
-subversion/libsvn_subr/config_file.lo: subversion/libsvn_subr/config_file.c subversion/include/private/svn_config_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_user.h subversion/include/svn_utf.h subversion/libsvn_subr/config_impl.h subversion/svn_private_config.h
+subversion/libsvn_subr/config_file.lo: subversion/libsvn_subr/config_file.c subversion/include/private/svn_config_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_user.h subversion/include/svn_utf.h subversion/libsvn_subr/config_impl.h subversion/svn_private_config.h
-subversion/libsvn_subr/config_win.lo: subversion/libsvn_subr/config_win.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/libsvn_subr/config_impl.h subversion/svn_private_config.h
+subversion/libsvn_subr/config_win.lo: subversion/libsvn_subr/config_win.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/libsvn_subr/config_impl.h subversion/svn_private_config.h
-subversion/libsvn_subr/crypto.lo: subversion/libsvn_subr/crypto.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_subr/crypto.h subversion/svn_private_config.h
+subversion/libsvn_subr/crypto.lo: subversion/libsvn_subr/crypto.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_subr/crypto.h subversion/svn_private_config.h
subversion/libsvn_subr/ctype.lo: subversion/libsvn_subr/ctype.c subversion/include/svn_ctype.h
-subversion/libsvn_subr/date.lo: subversion/libsvn_subr/date.c subversion/include/private/svn_debug.h subversion/include/private/svn_token.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_subr/date.lo: subversion/libsvn_subr/date.c subversion/include/private/svn_debug.h subversion/include/private/svn_token.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_subr/debug.lo: subversion/libsvn_subr/debug.c subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_subr/debug.lo: subversion/libsvn_subr/debug.c subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_subr/deprecated.lo: subversion/libsvn_subr/deprecated.c subversion/include/private/svn_debug.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_opt_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_dirent_uri.h subversion/include/svn_dso.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_subr/auth.h subversion/libsvn_subr/opt.h subversion/svn_private_config.h
+subversion/libsvn_subr/deprecated.lo: subversion/libsvn_subr/deprecated.c subversion/include/private/svn_debug.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_opt_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_dirent_uri.h subversion/include/svn_dso.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_subr/auth.h subversion/libsvn_subr/opt.h subversion/svn_private_config.h
-subversion/libsvn_subr/dirent_uri.lo: subversion/libsvn_subr/dirent_uri.c subversion/include/private/svn_cert.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/svn_ctype.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_subr/dirent_uri.h subversion/svn_private_config.h
+subversion/libsvn_subr/dirent_uri.lo: subversion/libsvn_subr/dirent_uri.c subversion/include/private/svn_cert.h subversion/include/private/svn_debug.h subversion/include/private/svn_dirent_uri_private.h subversion/include/private/svn_fspath.h subversion/include/svn_ctype.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_subr/dirent_uri.h subversion/svn_private_config.h
-subversion/libsvn_subr/dso.lo: subversion/libsvn_subr/dso.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_mutex.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dso.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_subr/dso.lo: subversion/libsvn_subr/dso.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_mutex.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dso.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_subr/encode.lo: subversion/libsvn_subr/encode.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_subr/encode.lo: subversion/libsvn_subr/encode.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_subr/eol.lo: subversion/libsvn_subr/eol.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_eol_private.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_subr/eol.lo: subversion/libsvn_subr/eol.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_eol_private.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_subr/error.lo: subversion/libsvn_subr/error.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_error_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/libsvn_subr/pools.h subversion/svn_private_config.h
+subversion/libsvn_subr/error.lo: subversion/libsvn_subr/error.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_error_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/libsvn_subr/pools.h subversion/svn_private_config.h
-subversion/libsvn_subr/fnv1a.lo: subversion/libsvn_subr/fnv1a.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_subr/fnv1a.h
+subversion/libsvn_subr/fnv1a.lo: subversion/libsvn_subr/fnv1a.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_subr/fnv1a.h
-subversion/libsvn_subr/gpg_agent.lo: subversion/libsvn_subr/gpg_agent.c subversion/include/private/svn_auth_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_user.h subversion/libsvn_subr/auth.h subversion/svn_private_config.h
+subversion/libsvn_subr/gpg_agent.lo: subversion/libsvn_subr/gpg_agent.c subversion/include/private/svn_auth_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_user.h subversion/libsvn_subr/auth.h subversion/svn_private_config.h
-subversion/libsvn_subr/hash.lo: subversion/libsvn_subr/hash.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_subr/hash.lo: subversion/libsvn_subr/hash.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_subr/io.lo: subversion/libsvn_subr/io.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_io_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/svn_private_config.h
+subversion/libsvn_subr/io.lo: subversion/libsvn_subr/io.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_io_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/svn_private_config.h
-subversion/libsvn_subr/iter.lo: subversion/libsvn_subr/iter.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_iter.h subversion/include/svn_pools.h subversion/include/svn_types.h
+subversion/libsvn_subr/iter.lo: subversion/libsvn_subr/iter.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_iter.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_subr/lock.lo: subversion/libsvn_subr/lock.c subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_types.h
+subversion/libsvn_subr/lock.lo: subversion/libsvn_subr/lock.c subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_subr/log.lo: subversion/libsvn_subr/log.c subversion/include/private/svn_debug.h subversion/include/private/svn_log.h subversion/include/svn_checksum.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_subr/log.lo: subversion/libsvn_subr/log.c subversion/include/private/svn_debug.h subversion/include/private/svn_log.h subversion/include/svn_checksum.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
subversion/libsvn_subr/lz4/lz4.lo: subversion/libsvn_subr/lz4/lz4.c subversion/libsvn_subr/lz4/lz4internal.h subversion/svn_private_config.h
-subversion/libsvn_subr/macos_keychain.lo: subversion/libsvn_subr/macos_keychain.c subversion/include/private/svn_auth_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_user.h subversion/include/svn_utf.h subversion/libsvn_subr/auth.h subversion/svn_private_config.h
+subversion/libsvn_subr/macos_keychain.lo: subversion/libsvn_subr/macos_keychain.c subversion/include/private/svn_auth_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_user.h subversion/include/svn_utf.h subversion/libsvn_subr/auth.h subversion/svn_private_config.h
-subversion/libsvn_subr/magic.lo: subversion/libsvn_subr/magic.c subversion/include/private/svn_debug.h subversion/include/private/svn_magic.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_subr/magic.lo: subversion/libsvn_subr/magic.c subversion/include/private/svn_debug.h subversion/include/private/svn_magic.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_subr/md5.lo: subversion/libsvn_subr/md5.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_md5.h subversion/include/svn_types.h subversion/libsvn_subr/checksum.h
+subversion/libsvn_subr/md5.lo: subversion/libsvn_subr/md5.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_md5.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_subr/checksum.h
-subversion/libsvn_subr/mergeinfo.lo: subversion/libsvn_subr/mergeinfo.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_subr/mergeinfo.lo: subversion/libsvn_subr/mergeinfo.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_subr/mutex.lo: subversion/libsvn_subr/mutex.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_mutex.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_subr/mutex.lo: subversion/libsvn_subr/mutex.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_mutex.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_subr/nls.lo: subversion/libsvn_subr/nls.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_nls.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_subr/nls.lo: subversion/libsvn_subr/nls.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_nls.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_subr/object_pool.lo: subversion/libsvn_subr/object_pool.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_subr/object_pool.lo: subversion/libsvn_subr/object_pool.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_subr/opt.lo: subversion/libsvn_subr/opt.c subversion/include/private/svn_debug.h subversion/include/private/svn_opt_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/libsvn_subr/opt.h subversion/svn_private_config.h
+subversion/libsvn_subr/opt.lo: subversion/libsvn_subr/opt.c subversion/include/private/svn_debug.h subversion/include/private/svn_opt_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/libsvn_subr/opt.h subversion/svn_private_config.h
-subversion/libsvn_subr/packed_data.lo: subversion/libsvn_subr/packed_data.c subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_editor.h subversion/include/private/svn_packed_data.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_subr/packed_data.lo: subversion/libsvn_subr/packed_data.c subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_editor.h subversion/include/private/svn_packed_data.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_subr/path.lo: subversion/libsvn_subr/path.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_ctype.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/libsvn_subr/dirent_uri.h subversion/svn_private_config.h
+subversion/libsvn_subr/path.lo: subversion/libsvn_subr/path.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_ctype.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/libsvn_subr/dirent_uri.h subversion/svn_private_config.h
-subversion/libsvn_subr/pool.lo: subversion/libsvn_subr/pool.c subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/libsvn_subr/pools.h
+subversion/libsvn_subr/pool.lo: subversion/libsvn_subr/pool.c subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_subr/pools.h
-subversion/libsvn_subr/prefix_string.lo: subversion/libsvn_subr/prefix_string.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_subr/prefix_string.lo: subversion/libsvn_subr/prefix_string.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_subr/prompt.lo: subversion/libsvn_subr/prompt.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_subr/prompt.lo: subversion/libsvn_subr/prompt.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_subr/properties.lo: subversion/libsvn_subr/properties.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_subr/properties.lo: subversion/libsvn_subr/properties.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_subr/quoprint.lo: subversion/libsvn_subr/quoprint.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_quoprint.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_subr/quoprint.lo: subversion/libsvn_subr/quoprint.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_quoprint.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_subr/root_pools.lo: subversion/libsvn_subr/root_pools.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_subr/root_pools.lo: subversion/libsvn_subr/root_pools.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_subr/simple_providers.lo: subversion/libsvn_subr/simple_providers.c subversion/include/private/svn_auth_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_user.h subversion/include/svn_utf.h subversion/libsvn_subr/auth.h subversion/svn_private_config.h
+subversion/libsvn_subr/simple_providers.lo: subversion/libsvn_subr/simple_providers.c subversion/include/private/svn_auth_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_user.h subversion/include/svn_utf.h subversion/libsvn_subr/auth.h subversion/svn_private_config.h
-subversion/libsvn_subr/skel.lo: subversion/libsvn_subr/skel.c subversion/include/private/svn_debug.h subversion/include/private/svn_skel.h subversion/include/private/svn_string_private.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_subr/skel.lo: subversion/libsvn_subr/skel.c subversion/include/private/svn_debug.h subversion/include/private/svn_skel.h subversion/include/private/svn_string_private.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_subr/sorts.lo: subversion/libsvn_subr/sorts.c subversion/include/private/svn_debug.h subversion/include/private/svn_sorts_private.h subversion/include/svn_checksum.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_subr/sorts.lo: subversion/libsvn_subr/sorts.c subversion/include/private/svn_debug.h subversion/include/private/svn_sorts_private.h subversion/include/svn_checksum.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_subr/spillbuf.lo: subversion/libsvn_subr/spillbuf.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_subr/spillbuf.lo: subversion/libsvn_subr/spillbuf.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_subr/sqlite.lo: subversion/libsvn_subr/sqlite.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_io_private.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_subr/internal_statements.h subversion/svn_private_config.h
+subversion/libsvn_subr/sqlite.lo: subversion/libsvn_subr/sqlite.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_io_private.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_subr/internal_statements.h subversion/svn_private_config.h
subversion/libsvn_subr/sqlite3wrapper.lo: subversion/libsvn_subr/sqlite3wrapper.c subversion/svn_private_config.h
-subversion/libsvn_subr/ssl_client_cert_providers.lo: subversion/libsvn_subr/ssl_client_cert_providers.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_subr/ssl_client_cert_providers.lo: subversion/libsvn_subr/ssl_client_cert_providers.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_subr/ssl_client_cert_pw_providers.lo: subversion/libsvn_subr/ssl_client_cert_pw_providers.c subversion/include/private/svn_auth_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_subr/ssl_client_cert_pw_providers.lo: subversion/libsvn_subr/ssl_client_cert_pw_providers.c subversion/include/private/svn_auth_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_subr/ssl_server_trust_providers.lo: subversion/libsvn_subr/ssl_server_trust_providers.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_subr/ssl_server_trust_providers.lo: subversion/libsvn_subr/ssl_server_trust_providers.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_subr/stream.lo: subversion/libsvn_subr/stream.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_eol_private.h subversion/include/private/svn_error_private.h subversion/include/private/svn_io_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/svn_private_config.h
+subversion/libsvn_subr/stream.lo: subversion/libsvn_subr/stream.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_eol_private.h subversion/include/private/svn_error_private.h subversion/include/private/svn_io_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/svn_private_config.h
-subversion/libsvn_subr/string.lo: subversion/libsvn_subr/string.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_string_private.h subversion/include/svn_ctype.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_subr/string.lo: subversion/libsvn_subr/string.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_string_private.h subversion/include/svn_ctype.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_subr/subst.lo: subversion/libsvn_subr/subst.c subversion/include/private/svn_debug.h subversion/include/private/svn_eol_private.h subversion/include/private/svn_io_private.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/svn_private_config.h
+subversion/libsvn_subr/subst.lo: subversion/libsvn_subr/subst.c subversion/include/private/svn_debug.h subversion/include/private/svn_eol_private.h subversion/include/private/svn_io_private.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/svn_private_config.h
-subversion/libsvn_subr/sysinfo.lo: subversion/libsvn_subr/sysinfo.c subversion/include/private/svn_debug.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/libsvn_subr/sysinfo.h subversion/svn_private_config.h
+subversion/libsvn_subr/sysinfo.lo: subversion/libsvn_subr/sysinfo.c subversion/include/private/svn_debug.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/libsvn_subr/sysinfo.h subversion/svn_private_config.h
-subversion/libsvn_subr/target.lo: subversion/libsvn_subr/target.c subversion/include/private/svn_debug.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_subr/target.lo: subversion/libsvn_subr/target.c subversion/include/private/svn_debug.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_subr/temp_serializer.lo: subversion/libsvn_subr/temp_serializer.c subversion/include/private/svn_debug.h subversion/include/private/svn_temp_serializer.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_subr/temp_serializer.lo: subversion/libsvn_subr/temp_serializer.c subversion/include/private/svn_debug.h subversion/include/private/svn_temp_serializer.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_subr/time.lo: subversion/libsvn_subr/time.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/svn_private_config.h
+subversion/libsvn_subr/time.lo: subversion/libsvn_subr/time.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/svn_private_config.h
-subversion/libsvn_subr/token.lo: subversion/libsvn_subr/token.c subversion/include/private/svn_debug.h subversion/include/private/svn_token.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_subr/token.lo: subversion/libsvn_subr/token.c subversion/include/private/svn_debug.h subversion/include/private/svn_token.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_subr/types.lo: subversion/libsvn_subr/types.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_string_private.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_subr/types.lo: subversion/libsvn_subr/types.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_string_private.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_props.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_subr/user.lo: subversion/libsvn_subr/user.c subversion/include/private/svn_debug.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_user.h subversion/include/svn_utf.h
+subversion/libsvn_subr/user.lo: subversion/libsvn_subr/user.c subversion/include/private/svn_debug.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_user.h subversion/include/svn_utf.h
-subversion/libsvn_subr/username_providers.lo: subversion/libsvn_subr/username_providers.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_user.h subversion/include/svn_utf.h
+subversion/libsvn_subr/username_providers.lo: subversion/libsvn_subr/username_providers.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_user.h subversion/include/svn_utf.h
-subversion/libsvn_subr/utf.lo: subversion/libsvn_subr/utf.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_mutex.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_ctype.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/libsvn_subr/win32_xlate.h subversion/svn_private_config.h
+subversion/libsvn_subr/utf.lo: subversion/libsvn_subr/utf.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_mutex.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_ctype.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/libsvn_subr/win32_xlate.h subversion/svn_private_config.h
-subversion/libsvn_subr/utf8proc.lo: subversion/libsvn_subr/utf8proc.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_subr/utf8proc/utf8proc.c subversion/libsvn_subr/utf8proc/utf8proc_data.c subversion/libsvn_subr/utf8proc/utf8proc_internal.h subversion/svn_private_config.h
+subversion/libsvn_subr/utf8proc.lo: subversion/libsvn_subr/utf8proc.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_subr/utf8proc/utf8proc.c subversion/libsvn_subr/utf8proc/utf8proc_data.c subversion/libsvn_subr/utf8proc/utf8proc_internal.h subversion/svn_private_config.h
-subversion/libsvn_subr/utf_validate.lo: subversion/libsvn_subr/utf_validate.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_eol_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/libsvn_subr/utf_validate.lo: subversion/libsvn_subr/utf_validate.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_eol_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/libsvn_subr/utf_width.lo: subversion/libsvn_subr/utf_width.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/svn_private_config.h
+subversion/libsvn_subr/utf_width.lo: subversion/libsvn_subr/utf_width.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/svn_private_config.h
-subversion/libsvn_subr/validate.lo: subversion/libsvn_subr/validate.c subversion/include/private/svn_debug.h subversion/include/svn_ctype.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_subr/validate.lo: subversion/libsvn_subr/validate.c subversion/include/private/svn_debug.h subversion/include/svn_ctype.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/libsvn_subr/version.lo: subversion/libsvn_subr/version.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_subr/sysinfo.h subversion/svn_private_config.h
+subversion/libsvn_subr/version.lo: subversion/libsvn_subr/version.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_subr/sysinfo.h subversion/svn_private_config.h
-subversion/libsvn_subr/win32_crashrpt.lo: subversion/libsvn_subr/win32_crashrpt.c subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_subr/sysinfo.h subversion/libsvn_subr/win32_crashrpt.h subversion/libsvn_subr/win32_crashrpt_dll.h
+subversion/libsvn_subr/win32_crashrpt.lo: subversion/libsvn_subr/win32_crashrpt.c subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_subr/sysinfo.h subversion/libsvn_subr/win32_crashrpt.h subversion/libsvn_subr/win32_crashrpt_dll.h
-subversion/libsvn_subr/win32_crypto.lo: subversion/libsvn_subr/win32_crypto.c subversion/include/private/svn_auth_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_user.h subversion/include/svn_utf.h subversion/libsvn_subr/auth.h subversion/svn_private_config.h
+subversion/libsvn_subr/win32_crypto.lo: subversion/libsvn_subr/win32_crypto.c subversion/include/private/svn_auth_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_user.h subversion/include/svn_utf.h subversion/libsvn_subr/auth.h subversion/svn_private_config.h
-subversion/libsvn_subr/win32_xlate.lo: subversion/libsvn_subr/win32_xlate.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/libsvn_subr/win32_xlate.h subversion/svn_private_config.h
+subversion/libsvn_subr/win32_xlate.lo: subversion/libsvn_subr/win32_xlate.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/libsvn_subr/win32_xlate.h subversion/svn_private_config.h
-subversion/libsvn_subr/x509info.lo: subversion/libsvn_subr/x509info.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_x509.h subversion/libsvn_subr/x509.h
+subversion/libsvn_subr/x509info.lo: subversion/libsvn_subr/x509info.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_x509.h subversion/libsvn_subr/x509.h
-subversion/libsvn_subr/x509parse.lo: subversion/libsvn_subr/x509parse.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_ctype.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_x509.h subversion/libsvn_subr/x509.h
+subversion/libsvn_subr/x509parse.lo: subversion/libsvn_subr/x509parse.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_ctype.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_x509.h subversion/libsvn_subr/x509.h
-subversion/libsvn_subr/xml.lo: subversion/libsvn_subr/xml.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/svn_private_config.h
+subversion/libsvn_subr/xml.lo: subversion/libsvn_subr/xml.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h subversion/svn_private_config.h
-subversion/libsvn_wc/adm_crawler.lo: subversion/libsvn_wc/adm_crawler.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/props.h subversion/libsvn_wc/translate.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
+subversion/libsvn_wc/adm_crawler.lo: subversion/libsvn_wc/adm_crawler.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/props.h subversion/libsvn_wc/translate.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
-subversion/libsvn_wc/adm_files.lo: subversion/libsvn_wc/adm_files.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/entries.h subversion/libsvn_wc/lock.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
+subversion/libsvn_wc/adm_files.lo: subversion/libsvn_wc/adm_files.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/entries.h subversion/libsvn_wc/lock.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
-subversion/libsvn_wc/adm_ops.lo: subversion/libsvn_wc/adm_ops.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
+subversion/libsvn_wc/adm_ops.lo: subversion/libsvn_wc/adm_ops.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
-subversion/libsvn_wc/ambient_depth_filter_editor.lo: subversion/libsvn_wc/ambient_depth_filter_editor.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
+subversion/libsvn_wc/ambient_depth_filter_editor.lo: subversion/libsvn_wc/ambient_depth_filter_editor.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
-subversion/libsvn_wc/cleanup.lo: subversion/libsvn_wc/cleanup.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/lock.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
+subversion/libsvn_wc/cleanup.lo: subversion/libsvn_wc/cleanup.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/lock.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
-subversion/libsvn_wc/conflicts.lo: subversion/libsvn_wc/conflicts.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
+subversion/libsvn_wc/conflicts.lo: subversion/libsvn_wc/conflicts.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
-subversion/libsvn_wc/context.lo: subversion/libsvn_wc/context.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
+subversion/libsvn_wc/context.lo: subversion/libsvn_wc/context.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
-subversion/libsvn_wc/copy.lo: subversion/libsvn_wc/copy.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
+subversion/libsvn_wc/copy.lo: subversion/libsvn_wc/copy.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
-subversion/libsvn_wc/crop.lo: subversion/libsvn_wc/crop.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
+subversion/libsvn_wc/crop.lo: subversion/libsvn_wc/crop.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
-subversion/libsvn_wc/delete.lo: subversion/libsvn_wc/delete.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
+subversion/libsvn_wc/delete.lo: subversion/libsvn_wc/delete.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
-subversion/libsvn_wc/deprecated.lo: subversion/libsvn_wc/deprecated.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_io_private.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/entries.h subversion/libsvn_wc/lock.h subversion/libsvn_wc/props.h subversion/libsvn_wc/translate.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
+subversion/libsvn_wc/deprecated.lo: subversion/libsvn_wc/deprecated.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_io_private.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/entries.h subversion/libsvn_wc/lock.h subversion/libsvn_wc/props.h subversion/libsvn_wc/translate.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
-subversion/libsvn_wc/diff_editor.lo: subversion/libsvn_wc/diff_editor.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_skel.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/diff.h subversion/libsvn_wc/props.h subversion/libsvn_wc/translate.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
+subversion/libsvn_wc/diff_editor.lo: subversion/libsvn_wc/diff_editor.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_skel.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/diff.h subversion/libsvn_wc/props.h subversion/libsvn_wc/translate.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
-subversion/libsvn_wc/diff_local.lo: subversion/libsvn_wc/diff_local.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/diff.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
+subversion/libsvn_wc/diff_local.lo: subversion/libsvn_wc/diff_local.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/diff.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
-subversion/libsvn_wc/entries.lo: subversion/libsvn_wc/entries.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/entries.h subversion/libsvn_wc/lock.h subversion/libsvn_wc/props.h subversion/libsvn_wc/token-map.h subversion/libsvn_wc/tree_conflicts.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h
+subversion/libsvn_wc/entries.lo: subversion/libsvn_wc/entries.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/entries.h subversion/libsvn_wc/lock.h subversion/libsvn_wc/props.h subversion/libsvn_wc/token-map.h subversion/libsvn_wc/tree_conflicts.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h
-subversion/libsvn_wc/externals.lo: subversion/libsvn_wc/externals.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/props.h subversion/libsvn_wc/translate.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
+subversion/libsvn_wc/externals.lo: subversion/libsvn_wc/externals.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/props.h subversion/libsvn_wc/translate.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
-subversion/libsvn_wc/info.lo: subversion/libsvn_wc/info.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
+subversion/libsvn_wc/info.lo: subversion/libsvn_wc/info.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
-subversion/libsvn_wc/lock.lo: subversion/libsvn_wc/lock.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/lock.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
+subversion/libsvn_wc/lock.lo: subversion/libsvn_wc/lock.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/lock.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
-subversion/libsvn_wc/merge.lo: subversion/libsvn_wc/merge.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/props.h subversion/libsvn_wc/translate.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
+subversion/libsvn_wc/merge.lo: subversion/libsvn_wc/merge.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/props.h subversion/libsvn_wc/translate.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
-subversion/libsvn_wc/node.lo: subversion/libsvn_wc/node.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/entries.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
+subversion/libsvn_wc/node.lo: subversion/libsvn_wc/node.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/entries.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
-subversion/libsvn_wc/old-and-busted.lo: subversion/libsvn_wc/old-and-busted.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/entries.h subversion/libsvn_wc/lock.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
+subversion/libsvn_wc/old-and-busted.lo: subversion/libsvn_wc/old-and-busted.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/entries.h subversion/libsvn_wc/lock.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
-subversion/libsvn_wc/props.lo: subversion/libsvn_wc/props.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/props.h subversion/libsvn_wc/translate.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
+subversion/libsvn_wc/props.lo: subversion/libsvn_wc/props.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/props.h subversion/libsvn_wc/translate.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
-subversion/libsvn_wc/questions.lo: subversion/libsvn_wc/questions.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/translate.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
+subversion/libsvn_wc/questions.lo: subversion/libsvn_wc/questions.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/translate.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
-subversion/libsvn_wc/relocate.lo: subversion/libsvn_wc/relocate.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
+subversion/libsvn_wc/relocate.lo: subversion/libsvn_wc/relocate.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
-subversion/libsvn_wc/revert.lo: subversion/libsvn_wc/revert.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_io_private.h subversion/include/private/svn_skel.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
+subversion/libsvn_wc/revert.lo: subversion/libsvn_wc/revert.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_io_private.h subversion/include/private/svn_skel.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
-subversion/libsvn_wc/revision_status.lo: subversion/libsvn_wc/revision_status.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
+subversion/libsvn_wc/revision_status.lo: subversion/libsvn_wc/revision_status.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
-subversion/libsvn_wc/status.lo: subversion/libsvn_wc/status.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_skel.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
+subversion/libsvn_wc/status.lo: subversion/libsvn_wc/status.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_skel.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
-subversion/libsvn_wc/translate.lo: subversion/libsvn_wc/translate.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/props.h subversion/libsvn_wc/translate.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
+subversion/libsvn_wc/translate.lo: subversion/libsvn_wc/translate.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/props.h subversion/libsvn_wc/translate.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
-subversion/libsvn_wc/tree_conflicts.lo: subversion/libsvn_wc/tree_conflicts.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/tree_conflicts.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
+subversion/libsvn_wc/tree_conflicts.lo: subversion/libsvn_wc/tree_conflicts.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/tree_conflicts.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
-subversion/libsvn_wc/update_editor.lo: subversion/libsvn_wc/update_editor.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/props.h subversion/libsvn_wc/translate.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
+subversion/libsvn_wc/update_editor.lo: subversion/libsvn_wc/update_editor.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/props.h subversion/libsvn_wc/translate.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
-subversion/libsvn_wc/upgrade.lo: subversion/libsvn_wc/upgrade.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/entries.h subversion/libsvn_wc/props.h subversion/libsvn_wc/token-map.h subversion/libsvn_wc/tree_conflicts.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
+subversion/libsvn_wc/upgrade.lo: subversion/libsvn_wc/upgrade.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/entries.h subversion/libsvn_wc/props.h subversion/libsvn_wc/token-map.h subversion/libsvn_wc/tree_conflicts.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
-subversion/libsvn_wc/util.lo: subversion/libsvn_wc/util.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/libsvn_wc/entries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
+subversion/libsvn_wc/util.lo: subversion/libsvn_wc/util.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/libsvn_wc/entries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
-subversion/libsvn_wc/wc_db.lo: subversion/libsvn_wc/wc_db.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/entries.h subversion/libsvn_wc/lock.h subversion/libsvn_wc/props.h subversion/libsvn_wc/token-map.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
+subversion/libsvn_wc/wc_db.lo: subversion/libsvn_wc/wc_db.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/entries.h subversion/libsvn_wc/lock.h subversion/libsvn_wc/props.h subversion/libsvn_wc/token-map.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
-subversion/libsvn_wc/wc_db_pristine.lo: subversion/libsvn_wc/wc_db_pristine.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_io_private.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h
+subversion/libsvn_wc/wc_db_pristine.lo: subversion/libsvn_wc/wc_db_pristine.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_io_private.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h
-subversion/libsvn_wc/wc_db_update_move.lo: subversion/libsvn_wc/wc_db_update_move.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/props.h subversion/libsvn_wc/token-map.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
+subversion/libsvn_wc/wc_db_update_move.lo: subversion/libsvn_wc/wc_db_update_move.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/props.h subversion/libsvn_wc/token-map.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
-subversion/libsvn_wc/wc_db_util.lo: subversion/libsvn_wc/wc_db_util.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h
+subversion/libsvn_wc/wc_db_util.lo: subversion/libsvn_wc/wc_db_util.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h
-subversion/libsvn_wc/wc_db_wcroot.lo: subversion/libsvn_wc/wc_db_wcroot.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h
+subversion/libsvn_wc/wc_db_wcroot.lo: subversion/libsvn_wc/wc_db_wcroot.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/props.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h
-subversion/libsvn_wc/wcroot_anchor.lo: subversion/libsvn_wc/wcroot_anchor.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
+subversion/libsvn_wc/wcroot_anchor.lo: subversion/libsvn_wc/wcroot_anchor.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
-subversion/libsvn_wc/workqueue.lo: subversion/libsvn_wc/workqueue.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_io_private.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/props.h subversion/libsvn_wc/translate.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
+subversion/libsvn_wc/workqueue.lo: subversion/libsvn_wc/workqueue.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_io_private.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/adm_files.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/props.h subversion/libsvn_wc/translate.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
-subversion/mod_authz_svn/mod_authz_svn.lo: subversion/mod_authz_svn/mod_authz_svn.c subversion/include/mod_authz_svn.h subversion/include/mod_dav_svn.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/mod_authz_svn/mod_authz_svn.lo: subversion/mod_authz_svn/mod_authz_svn.c subversion/include/mod_authz_svn.h subversion/include/mod_dav_svn.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_authz_svn/mod_authz_svn.c ; else echo "fake" > subversion/mod_authz_svn/mod_authz_svn.lo ; fi
-subversion/mod_dav_svn/activity.lo: subversion/mod_dav_svn/activity.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/activity.lo: subversion/mod_dav_svn/activity.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/activity.c ; else echo "fake" > subversion/mod_dav_svn/activity.lo ; fi
-subversion/mod_dav_svn/authz.lo: subversion/mod_dav_svn/authz.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/authz.lo: subversion/mod_dav_svn/authz.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/authz.c ; else echo "fake" > subversion/mod_dav_svn/authz.lo ; fi
-subversion/mod_dav_svn/deadprops.lo: subversion/mod_dav_svn/deadprops.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_log.h subversion/include/private/svn_skel.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/deadprops.lo: subversion/mod_dav_svn/deadprops.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_log.h subversion/include/private/svn_skel.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/deadprops.c ; else echo "fake" > subversion/mod_dav_svn/deadprops.lo ; fi
-subversion/mod_dav_svn/liveprops.lo: subversion/mod_dav_svn/liveprops.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_ctype.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/liveprops.lo: subversion/mod_dav_svn/liveprops.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_ctype.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/liveprops.c ; else echo "fake" > subversion/mod_dav_svn/liveprops.lo ; fi
-subversion/mod_dav_svn/lock.lo: subversion/mod_dav_svn/lock.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_log.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/lock.lo: subversion/mod_dav_svn/lock.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_log.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/lock.c ; else echo "fake" > subversion/mod_dav_svn/lock.lo ; fi
-subversion/mod_dav_svn/merge.lo: subversion/mod_dav_svn/merge.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/merge.lo: subversion/mod_dav_svn/merge.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/merge.c ; else echo "fake" > subversion/mod_dav_svn/merge.lo ; fi
-subversion/mod_dav_svn/mirror.lo: subversion/mod_dav_svn/mirror.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/mirror.lo: subversion/mod_dav_svn/mirror.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/mirror.c ; else echo "fake" > subversion/mod_dav_svn/mirror.lo ; fi
-subversion/mod_dav_svn/mod_dav_svn.lo: subversion/mod_dav_svn/mod_dav_svn.c subversion/include/mod_authz_svn.h subversion/include/mod_dav_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_skel.h subversion/include/private/svn_subr_private.h subversion/include/svn_cache_config.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_dso.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/mod_dav_svn.lo: subversion/mod_dav_svn/mod_dav_svn.c subversion/include/mod_authz_svn.h subversion/include/mod_dav_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_skel.h subversion/include/private/svn_subr_private.h subversion/include/svn_cache_config.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_dso.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/mod_dav_svn.c ; else echo "fake" > subversion/mod_dav_svn/mod_dav_svn.lo ; fi
-subversion/mod_dav_svn/posts/create_txn.lo: subversion/mod_dav_svn/posts/create_txn.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/posts/create_txn.lo: subversion/mod_dav_svn/posts/create_txn.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/posts/create_txn.c ; else echo "fake" > subversion/mod_dav_svn/posts/create_txn.lo ; fi
-subversion/mod_dav_svn/reports/dated-rev.lo: subversion/mod_dav_svn/reports/dated-rev.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_skel.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/reports/dated-rev.lo: subversion/mod_dav_svn/reports/dated-rev.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_skel.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/reports/dated-rev.c ; else echo "fake" > subversion/mod_dav_svn/reports/dated-rev.lo ; fi
-subversion/mod_dav_svn/reports/deleted-rev.lo: subversion/mod_dav_svn/reports/deleted-rev.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/reports/deleted-rev.lo: subversion/mod_dav_svn/reports/deleted-rev.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/reports/deleted-rev.c ; else echo "fake" > subversion/mod_dav_svn/reports/deleted-rev.lo ; fi
-subversion/mod_dav_svn/reports/file-revs.lo: subversion/mod_dav_svn/reports/file-revs.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_log.h subversion/include/private/svn_skel.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/reports/file-revs.lo: subversion/mod_dav_svn/reports/file-revs.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_log.h subversion/include/private/svn_skel.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/reports/file-revs.c ; else echo "fake" > subversion/mod_dav_svn/reports/file-revs.lo ; fi
-subversion/mod_dav_svn/reports/get-location-segments.lo: subversion/mod_dav_svn/reports/get-location-segments.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_skel.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/reports/get-location-segments.lo: subversion/mod_dav_svn/reports/get-location-segments.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_skel.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/reports/get-location-segments.c ; else echo "fake" > subversion/mod_dav_svn/reports/get-location-segments.lo ; fi
-subversion/mod_dav_svn/reports/get-locations.lo: subversion/mod_dav_svn/reports/get-locations.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_skel.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/reports/get-locations.lo: subversion/mod_dav_svn/reports/get-locations.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_skel.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/reports/get-locations.c ; else echo "fake" > subversion/mod_dav_svn/reports/get-locations.lo ; fi
-subversion/mod_dav_svn/reports/get-locks.lo: subversion/mod_dav_svn/reports/get-locks.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_skel.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/reports/get-locks.lo: subversion/mod_dav_svn/reports/get-locks.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_skel.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/reports/get-locks.c ; else echo "fake" > subversion/mod_dav_svn/reports/get-locks.lo ; fi
-subversion/mod_dav_svn/reports/inherited-props.lo: subversion/mod_dav_svn/reports/inherited-props.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_log.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_skel.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/reports/inherited-props.lo: subversion/mod_dav_svn/reports/inherited-props.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_log.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_skel.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/reports/inherited-props.c ; else echo "fake" > subversion/mod_dav_svn/reports/inherited-props.lo ; fi
-subversion/mod_dav_svn/reports/list.lo: subversion/mod_dav_svn/reports/list.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_log.h subversion/include/private/svn_skel.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_ctype.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/reports/list.lo: subversion/mod_dav_svn/reports/list.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_log.h subversion/include/private/svn_skel.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_ctype.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/reports/list.c ; else echo "fake" > subversion/mod_dav_svn/reports/list.lo ; fi
-subversion/mod_dav_svn/reports/log.lo: subversion/mod_dav_svn/reports/log.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_log.h subversion/include/private/svn_skel.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/reports/log.lo: subversion/mod_dav_svn/reports/log.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_log.h subversion/include/private/svn_skel.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/reports/log.c ; else echo "fake" > subversion/mod_dav_svn/reports/log.lo ; fi
-subversion/mod_dav_svn/reports/mergeinfo.lo: subversion/mod_dav_svn/reports/mergeinfo.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_log.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/reports/mergeinfo.lo: subversion/mod_dav_svn/reports/mergeinfo.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_log.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/reports/mergeinfo.c ; else echo "fake" > subversion/mod_dav_svn/reports/mergeinfo.lo ; fi
-subversion/mod_dav_svn/reports/replay.lo: subversion/mod_dav_svn/reports/replay.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_log.h subversion/include/private/svn_skel.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/reports/replay.lo: subversion/mod_dav_svn/reports/replay.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_log.h subversion/include/private/svn_skel.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/reports/replay.c ; else echo "fake" > subversion/mod_dav_svn/reports/replay.lo ; fi
-subversion/mod_dav_svn/reports/update.lo: subversion/mod_dav_svn/reports/update.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_log.h subversion/include/private/svn_skel.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/reports/update.lo: subversion/mod_dav_svn/reports/update.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_log.h subversion/include/private/svn_skel.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/reports/update.c ; else echo "fake" > subversion/mod_dav_svn/reports/update.lo ; fi
-subversion/mod_dav_svn/repos.lo: subversion/mod_dav_svn/repos.c subversion/include/mod_authz_svn.h subversion/include/mod_dav_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_log.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_skel.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/repos.lo: subversion/mod_dav_svn/repos.c subversion/include/mod_authz_svn.h subversion/include/mod_dav_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_log.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_skel.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/repos.c ; else echo "fake" > subversion/mod_dav_svn/repos.lo ; fi
-subversion/mod_dav_svn/status.lo: subversion/mod_dav_svn/status.c subversion/include/mod_authz_svn.h subversion/include/private/svn_cache.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h subversion/svn_private_config.h
+subversion/mod_dav_svn/status.lo: subversion/mod_dav_svn/status.c subversion/include/mod_authz_svn.h subversion/include/private/svn_cache.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h subversion/svn_private_config.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/status.c ; else echo "fake" > subversion/mod_dav_svn/status.lo ; fi
-subversion/mod_dav_svn/util.lo: subversion/mod_dav_svn/util.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_skel.h subversion/include/private/svn_string_private.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_ctype.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/util.lo: subversion/mod_dav_svn/util.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_skel.h subversion/include/private/svn_string_private.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_ctype.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/util.c ; else echo "fake" > subversion/mod_dav_svn/util.lo ; fi
-subversion/mod_dav_svn/version.lo: subversion/mod_dav_svn/version.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_log.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_skel.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/version.lo: subversion/mod_dav_svn/version.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_log.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_skel.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/version.c ; else echo "fake" > subversion/mod_dav_svn/version.lo ; fi
subversion/po/de.mo: subversion/po/de.po
@@ -3309,376 +3238,382 @@ subversion/po/zh_CN.mo: subversion/po/zh_CN.po
subversion/po/zh_TW.mo: subversion/po/zh_TW.po
-subversion/svn/add-cmd.lo: subversion/svn/add-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/add-cmd.lo: subversion/svn/add-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+
+subversion/svn/auth-cmd.lo: subversion/svn/auth-cmd.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_token.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/include/svn_x509.h subversion/svn/cl.h subversion/svn_private_config.h
+
+subversion/svn/blame-cmd.lo: subversion/svn/blame-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl.h subversion/svn_private_config.h
+
+subversion/svn/cat-cmd.lo: subversion/svn/cat-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/auth-cmd.lo: subversion/svn/auth-cmd.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_token.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/include/svn_x509.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/changelist-cmd.lo: subversion/svn/changelist-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/blame-cmd.lo: subversion/svn/blame-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/checkout-cmd.lo: subversion/svn/checkout-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/cat-cmd.lo: subversion/svn/cat-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/cl-conflicts.lo: subversion/svn/cl-conflicts.c subversion/include/private/svn_debug.h subversion/include/private/svn_token.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl-conflicts.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/changelist-cmd.lo: subversion/svn/changelist-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/cleanup-cmd.lo: subversion/svn/cleanup-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/checkout-cmd.lo: subversion/svn/checkout-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/commit-cmd.lo: subversion/svn/commit-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/cl-conflicts.lo: subversion/svn/cl-conflicts.c subversion/include/private/svn_debug.h subversion/include/private/svn_token.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl-conflicts.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/conflict-callbacks.lo: subversion/svn/conflict-callbacks.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/svn/cl-conflicts.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/cleanup-cmd.lo: subversion/svn/cleanup-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/copy-cmd.lo: subversion/svn/copy-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/commit-cmd.lo: subversion/svn/commit-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/delete-cmd.lo: subversion/svn/delete-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/conflict-callbacks.lo: subversion/svn/conflict-callbacks.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/svn/cl-conflicts.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/deprecated.lo: subversion/svn/deprecated.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h
-subversion/svn/copy-cmd.lo: subversion/svn/copy-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/diff-cmd.lo: subversion/svn/diff-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/delete-cmd.lo: subversion/svn/delete-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/export-cmd.lo: subversion/svn/export-cmd.c subversion/include/private/svn_debug.h subversion/include/private/svn_opt_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/deprecated.lo: subversion/svn/deprecated.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h
+subversion/svn/file-merge.lo: subversion/svn/file-merge.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/diff-cmd.lo: subversion/svn/diff-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/filesize.lo: subversion/svn/filesize.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h
-subversion/svn/export-cmd.lo: subversion/svn/export-cmd.c subversion/include/private/svn_debug.h subversion/include/private/svn_opt_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/help-cmd.lo: subversion/svn/help-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/file-merge.lo: subversion/svn/file-merge.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/import-cmd.lo: subversion/svn/import-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/help-cmd.lo: subversion/svn/help-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/info-cmd.lo: subversion/svn/info-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl-conflicts.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/import-cmd.lo: subversion/svn/import-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/list-cmd.lo: subversion/svn/list-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/info-cmd.lo: subversion/svn/info-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl-conflicts.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/lock-cmd.lo: subversion/svn/lock-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/list-cmd.lo: subversion/svn/list-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/log-cmd.lo: subversion/svn/log-cmd.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl-log.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/lock-cmd.lo: subversion/svn/lock-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/merge-cmd.lo: subversion/svn/merge-cmd.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/log-cmd.lo: subversion/svn/log-cmd.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl-log.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/mergeinfo-cmd.lo: subversion/svn/mergeinfo-cmd.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl-log.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/merge-cmd.lo: subversion/svn/merge-cmd.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/mkdir-cmd.lo: subversion/svn/mkdir-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/mergeinfo-cmd.lo: subversion/svn/mergeinfo-cmd.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl-log.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/move-cmd.lo: subversion/svn/move-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/mkdir-cmd.lo: subversion/svn/mkdir-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/notify.lo: subversion/svn/notify.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/move-cmd.lo: subversion/svn/move-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/patch-cmd.lo: subversion/svn/patch-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/notify.lo: subversion/svn/notify.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/propdel-cmd.lo: subversion/svn/propdel-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/patch-cmd.lo: subversion/svn/patch-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/propedit-cmd.lo: subversion/svn/propedit-cmd.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/propdel-cmd.lo: subversion/svn/propdel-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/propget-cmd.lo: subversion/svn/propget-cmd.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_opt_private.h subversion/include/private/svn_sorts_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/propedit-cmd.lo: subversion/svn/propedit-cmd.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/proplist-cmd.lo: subversion/svn/proplist-cmd.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/propget-cmd.lo: subversion/svn/propget-cmd.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_opt_private.h subversion/include/private/svn_sorts_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/props.lo: subversion/svn/props.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/proplist-cmd.lo: subversion/svn/proplist-cmd.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/propset-cmd.lo: subversion/svn/propset-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/props.lo: subversion/svn/props.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/relocate-cmd.lo: subversion/svn/relocate-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/propset-cmd.lo: subversion/svn/propset-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/resolve-cmd.lo: subversion/svn/resolve-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/relocate-cmd.lo: subversion/svn/relocate-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/resolved-cmd.lo: subversion/svn/resolved-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/resolve-cmd.lo: subversion/svn/resolve-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/revert-cmd.lo: subversion/svn/revert-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/resolved-cmd.lo: subversion/svn/resolved-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/shelf-cmd.lo: subversion/svn/shelf-cmd.c subversion/include/private/svn_client_private.h subversion/include/private/svn_client_shelf.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_sorts_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn/shelf-cmd.h subversion/svn_private_config.h
-subversion/svn/revert-cmd.lo: subversion/svn/revert-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/shelf2-cmd.lo: subversion/svn/shelf2-cmd.c subversion/include/private/svn_client_private.h subversion/include/private/svn_client_shelf2.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_sorts_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn/shelf2-cmd.h subversion/svn_private_config.h
-subversion/svn/shelve-cmd.lo: subversion/svn/shelve-cmd.c subversion/include/private/svn_debug.h subversion/include/private/svn_sorts_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/similarity.lo: subversion/svn/similarity.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/similarity.lo: subversion/svn/similarity.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/status-cmd.lo: subversion/svn/status-cmd.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/status-cmd.lo: subversion/svn/status-cmd.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/status.lo: subversion/svn/status.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl-conflicts.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/status.lo: subversion/svn/status.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl-conflicts.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/svn.lo: subversion/svn/svn.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_opt_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn/shelf-cmd.h subversion/svn/shelf2-cmd.h subversion/svn_private_config.h
-subversion/svn/svn.lo: subversion/svn/svn.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_opt_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/switch-cmd.lo: subversion/svn/switch-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/switch-cmd.lo: subversion/svn/switch-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/unlock-cmd.lo: subversion/svn/unlock-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/unlock-cmd.lo: subversion/svn/unlock-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/update-cmd.lo: subversion/svn/update-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/update-cmd.lo: subversion/svn/update-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/upgrade-cmd.lo: subversion/svn/upgrade-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/upgrade-cmd.lo: subversion/svn/upgrade-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/util.lo: subversion/svn/util.c subversion/include/private/svn_client_private.h subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_opt_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/util.lo: subversion/svn/util.c subversion/include/private/svn_client_private.h subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_opt_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svnadmin/svnadmin.lo: subversion/svnadmin/svnadmin.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fspath.h subversion/include/private/svn_opt_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_cache_config.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_user.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/svn_private_config.h
-subversion/svnadmin/svnadmin.lo: subversion/svnadmin/svnadmin.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_opt_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_cache_config.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_user.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/svn_private_config.h
+subversion/svnbench/help-cmd.lo: subversion/svnbench/help-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn_private_config.h subversion/svnbench/cl.h
-subversion/svnbench/help-cmd.lo: subversion/svnbench/help-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn_private_config.h subversion/svnbench/cl.h
+subversion/svnbench/notify.lo: subversion/svnbench/notify.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h subversion/svnbench/cl.h
-subversion/svnbench/notify.lo: subversion/svnbench/notify.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h subversion/svnbench/cl.h
+subversion/svnbench/null-blame-cmd.lo: subversion/svnbench/null-blame-cmd.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h subversion/svnbench/cl.h
-subversion/svnbench/null-blame-cmd.lo: subversion/svnbench/null-blame-cmd.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h subversion/svnbench/cl.h
+subversion/svnbench/null-export-cmd.lo: subversion/svnbench/null-export-cmd.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h subversion/svnbench/cl.h
-subversion/svnbench/null-export-cmd.lo: subversion/svnbench/null-export-cmd.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h subversion/svnbench/cl.h
+subversion/svnbench/null-info-cmd.lo: subversion/svnbench/null-info-cmd.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn_private_config.h subversion/svnbench/cl.h
-subversion/svnbench/null-info-cmd.lo: subversion/svnbench/null-info-cmd.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn_private_config.h subversion/svnbench/cl.h
+subversion/svnbench/null-list-cmd.lo: subversion/svnbench/null-list-cmd.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn_private_config.h subversion/svnbench/cl.h
-subversion/svnbench/null-list-cmd.lo: subversion/svnbench/null-list-cmd.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/svn_private_config.h subversion/svnbench/cl.h
+subversion/svnbench/null-log-cmd.lo: subversion/svnbench/null-log-cmd.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h subversion/svnbench/cl.h
-subversion/svnbench/null-log-cmd.lo: subversion/svnbench/null-log-cmd.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h subversion/svnbench/cl.h
+subversion/svnbench/svnbench.lo: subversion/svnbench/svnbench.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_opt_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn_private_config.h subversion/svnbench/cl.h
-subversion/svnbench/svnbench.lo: subversion/svnbench/svnbench.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_opt_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn_private_config.h subversion/svnbench/cl.h
+subversion/svnbench/util.lo: subversion/svnbench/util.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h subversion/svnbench/cl.h
-subversion/svnbench/util.lo: subversion/svnbench/util.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h subversion/svnbench/cl.h
+subversion/svndumpfilter/svndumpfilter.lo: subversion/svndumpfilter/svndumpfilter.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_dirent_uri_private.h subversion/include/private/svn_editor.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/svn_private_config.h
-subversion/svndumpfilter/svndumpfilter.lo: subversion/svndumpfilter/svndumpfilter.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/svn_private_config.h
+subversion/svnfsfs/dump-index-cmd.lo: subversion/svnfsfs/dump-index-cmd.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_fs_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svnfsfs/svnfsfs.h
-subversion/svnfsfs/dump-index-cmd.lo: subversion/svnfsfs/dump-index-cmd.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_fs_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svnfsfs/svnfsfs.h
+subversion/svnfsfs/load-index-cmd.lo: subversion/svnfsfs/load-index-cmd.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_sorts_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h subversion/svnfsfs/svnfsfs.h
-subversion/svnfsfs/load-index-cmd.lo: subversion/svnfsfs/load-index-cmd.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_sorts_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h subversion/svnfsfs/svnfsfs.h
+subversion/svnfsfs/stats-cmd.lo: subversion/svnfsfs/stats-cmd.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h subversion/svnfsfs/svnfsfs.h
-subversion/svnfsfs/stats-cmd.lo: subversion/svnfsfs/stats-cmd.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h subversion/svnfsfs/svnfsfs.h
+subversion/svnfsfs/svnfsfs.lo: subversion/svnfsfs/svnfsfs.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_cache_config.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/svn_private_config.h subversion/svnfsfs/svnfsfs.h
-subversion/svnfsfs/svnfsfs.lo: subversion/svnfsfs/svnfsfs.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_cache_config.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/svn_private_config.h subversion/svnfsfs/svnfsfs.h
+subversion/svnlook/svnlook.lo: subversion/svnlook/svnlook.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_private.h subversion/include/private/svn_fspath.h subversion/include/private/svn_io_private.h subversion/include/private/svn_sorts_private.h subversion/include/svn_auth.h subversion/include/svn_cache_config.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/svn_private_config.h
-subversion/svnlook/svnlook.lo: subversion/svnlook/svnlook.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_private.h subversion/include/private/svn_fspath.h subversion/include/private/svn_io_private.h subversion/include/private/svn_sorts_private.h subversion/include/svn_auth.h subversion/include/svn_cache_config.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/svn_private_config.h
+subversion/svnmucc/svnmucc.lo: subversion/svnmucc/svnmucc.c subversion/include/private/svn_client_mtcc.h subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn_private_config.h
-subversion/svnmucc/svnmucc.lo: subversion/svnmucc/svnmucc.c subversion/include/private/svn_client_mtcc.h subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/svnrdump/dump_editor.lo: subversion/svnrdump/dump_editor.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svnrdump/svnrdump.h
-subversion/svnrdump/dump_editor.lo: subversion/svnrdump/dump_editor.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/svnrdump/svnrdump.h
+subversion/svnrdump/load_editor.lo: subversion/svnrdump/load_editor.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h subversion/svnrdump/svnrdump.h
-subversion/svnrdump/load_editor.lo: subversion/svnrdump/load_editor.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/svn_private_config.h subversion/svnrdump/svnrdump.h
+subversion/svnrdump/svnrdump.lo: subversion/svnrdump/svnrdump.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/svn_private_config.h subversion/svnrdump/svnrdump.h
-subversion/svnrdump/svnrdump.lo: subversion/svnrdump/svnrdump.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/svn_private_config.h subversion/svnrdump/svnrdump.h
+subversion/svnrdump/util.lo: subversion/svnrdump/util.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svnrdump/svnrdump.h
-subversion/svnrdump/util.lo: subversion/svnrdump/util.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svnrdump/svnrdump.h
+subversion/svnserve/cyrus_auth.lo: subversion/svnserve/cyrus_auth.c subversion/include/private/ra_svn_sasl.h subversion/include/private/ra_svn_wrapped_sasl.h subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_ra_svn_private.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra_svn.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h subversion/svnserve/server.h
-subversion/svnserve/cyrus_auth.lo: subversion/svnserve/cyrus_auth.c subversion/include/private/ra_svn_sasl.h subversion/include/private/ra_svn_wrapped_sasl.h subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_ra_svn_private.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra_svn.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h subversion/svnserve/server.h
+subversion/svnserve/log-escape.lo: subversion/svnserve/log-escape.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_ra_svn.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svnserve/server.h
-subversion/svnserve/log-escape.lo: subversion/svnserve/log-escape.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_ra_svn.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svnserve/server.h
+subversion/svnserve/logger.lo: subversion/svnserve/logger.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra_svn.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h subversion/svnserve/logger.h subversion/svnserve/server.h
-subversion/svnserve/logger.lo: subversion/svnserve/logger.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra_svn.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/svn_private_config.h subversion/svnserve/logger.h subversion/svnserve/server.h
+subversion/svnserve/serve.lo: subversion/svnserve/serve.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_log.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_ra_svn_private.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_ra_svn.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_user.h subversion/svn_private_config.h subversion/svnserve/logger.h subversion/svnserve/server.h
-subversion/svnserve/serve.lo: subversion/svnserve/serve.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_log.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_ra_svn_private.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_compat.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_ra_svn.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_user.h subversion/svn_private_config.h subversion/svnserve/logger.h subversion/svnserve/server.h
+subversion/svnserve/svnserve.lo: subversion/svnserve/svnserve.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_cache_config.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra_svn.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/svn_private_config.h subversion/svnserve/logger.h subversion/svnserve/server.h subversion/svnserve/winservice.h
-subversion/svnserve/svnserve.lo: subversion/svnserve/svnserve.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_cache_config.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra_svn.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/svn_private_config.h subversion/svnserve/logger.h subversion/svnserve/server.h subversion/svnserve/winservice.h
+subversion/svnserve/winservice.lo: subversion/svnserve/winservice.c subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h subversion/svnserve/winservice.h
-subversion/svnserve/winservice.lo: subversion/svnserve/winservice.c subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_types.h subversion/svn_private_config.h subversion/svnserve/winservice.h
+subversion/svnsync/svnsync.lo: subversion/svnsync/svnsync.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_opt_private.h subversion/include/private/svn_ra_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/svn_private_config.h subversion/svnsync/sync.h
-subversion/svnsync/svnsync.lo: subversion/svnsync/svnsync.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_opt_private.h subversion/include/private/svn_ra_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/svn_private_config.h subversion/svnsync/sync.h
+subversion/svnsync/sync.lo: subversion/svnsync/sync.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/svn_private_config.h subversion/svnsync/sync.h
-subversion/svnsync/sync.lo: subversion/svnsync/sync.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/svn_private_config.h subversion/svnsync/sync.h
+subversion/svnversion/svnversion.lo: subversion/svnversion/svnversion.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_opt_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn_private_config.h
-subversion/svnversion/svnversion.lo: subversion/svnversion/svnversion.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_opt_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/tests/afl/afl-svndiff.lo: subversion/tests/afl/afl-svndiff.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/tests/afl/afl-x509.lo: subversion/tests/afl/afl-x509.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_x509.h
+subversion/tests/afl/afl-x509.lo: subversion/tests/afl/afl-x509.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_x509.h
-subversion/tests/cmdline/atomic-ra-revprop-change.lo: subversion/tests/cmdline/atomic-ra-revprop-change.c subversion/include/private/svn_debug.h subversion/include/private/svn_skel.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/tests/cmdline/atomic-ra-revprop-change.lo: subversion/tests/cmdline/atomic-ra-revprop-change.c subversion/include/private/svn_debug.h subversion/include/private/svn_skel.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h
-subversion/tests/cmdline/entries-dump.lo: subversion/tests/cmdline/entries-dump.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/lock.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
+subversion/tests/cmdline/entries-dump.lo: subversion/tests/cmdline/entries-dump.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/lock.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
-subversion/tests/cmdline/lock-helper.lo: subversion/tests/cmdline/lock-helper.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h
+subversion/tests/cmdline/lock-helper.lo: subversion/tests/cmdline/lock-helper.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/token-map.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/token-map.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_client/client-test.lo: subversion/tests/libsvn_client/client-test.c subversion/include/private/svn_client_mtcc.h subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/libsvn_client/mergeinfo.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_client/client-test.lo: subversion/tests/libsvn_client/client-test.c subversion/include/private/svn_client_mtcc.h subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/libsvn_client/mergeinfo.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_client/conflicts-test.lo: subversion/tests/libsvn_client/conflicts-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_client/conflicts-test.lo: subversion/tests/libsvn_client/conflicts-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_client/mtcc-test.lo: subversion/tests/libsvn_client/mtcc-test.c subversion/include/private/svn_client_mtcc.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_client/mtcc-test.lo: subversion/tests/libsvn_client/mtcc-test.c subversion/include/private/svn_client_mtcc.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_delta/random-test.lo: subversion/tests/libsvn_delta/random-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_delta/compose_delta.c subversion/libsvn_delta/delta.h subversion/tests/libsvn_delta/delta-window-test.h subversion/tests/libsvn_delta/range-index-test.h subversion/tests/svn_test.h
+subversion/tests/libsvn_delta/random-test.lo: subversion/tests/libsvn_delta/random-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_delta/compose_delta.c subversion/libsvn_delta/delta.h subversion/tests/libsvn_delta/delta-window-test.h subversion/tests/libsvn_delta/range-index-test.h subversion/tests/svn_test.h
-subversion/tests/libsvn_delta/svndiff-stream-test.lo: subversion/tests/libsvn_delta/svndiff-stream-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_delta/svndiff-stream-test.lo: subversion/tests/libsvn_delta/svndiff-stream-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_delta/svndiff-test.lo: subversion/tests/libsvn_delta/svndiff-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_quoprint.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_delta/svndiff-test.lo: subversion/tests/libsvn_delta/svndiff-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_quoprint.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_delta/vdelta-test.lo: subversion/tests/libsvn_delta/vdelta-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_delta/delta.h subversion/tests/libsvn_delta/delta-window-test.h subversion/tests/svn_test.h
+subversion/tests/libsvn_delta/vdelta-test.lo: subversion/tests/libsvn_delta/vdelta-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_delta/delta.h subversion/tests/libsvn_delta/delta-window-test.h subversion/tests/svn_test.h
-subversion/tests/libsvn_delta/window-test.lo: subversion/tests/libsvn_delta/window-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_delta/window-test.lo: subversion/tests/libsvn_delta/window-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_diff/diff-diff3-test.lo: subversion/tests/libsvn_diff/diff-diff3-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/tests/svn_test.h
+subversion/tests/libsvn_diff/diff-diff3-test.lo: subversion/tests/libsvn_diff/diff-diff3-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/tests/svn_test.h
-subversion/tests/libsvn_diff/parse-diff-test.lo: subversion/tests/libsvn_diff/parse-diff-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/tests/svn_test.h
+subversion/tests/libsvn_diff/parse-diff-test.lo: subversion/tests/libsvn_diff/parse-diff-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/tests/svn_test.h
-subversion/tests/libsvn_fs/fs-sequential-test.lo: subversion/tests/libsvn_fs/fs-sequential-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_delta/delta.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_fs/fs-sequential-test.lo: subversion/tests/libsvn_fs/fs-sequential-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_delta/delta.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_fs/fs-test.lo: subversion/tests/libsvn_fs/fs-test.c subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_delta/delta.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_fs/fs-test.lo: subversion/tests/libsvn_fs/fs-test.c subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_delta/delta.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_fs/locks-test.lo: subversion/tests/libsvn_fs/locks-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_fs/locks-test.lo: subversion/tests/libsvn_fs/locks-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_fs_base/changes-test.lo: subversion/tests/libsvn_fs_base/changes-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_skel.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/changes-table.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/util/fs_skels.h subversion/svn_private_config.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_fs_base/changes-test.lo: subversion/tests/libsvn_fs_base/changes-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_skel.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/changes-table.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/util/fs_skels.h subversion/svn_private_config.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_fs_base/fs-base-test.lo: subversion/tests/libsvn_fs_base/fs-base-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_skel.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_delta/delta.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/nodes-table.h subversion/libsvn_fs_base/bdb/txn-table.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/id.h subversion/libsvn_fs_base/key-gen.h subversion/libsvn_fs_base/trail.h subversion/svn_private_config.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_fs_base/fs-base-test.lo: subversion/tests/libsvn_fs_base/fs-base-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_skel.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_delta/delta.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/nodes-table.h subversion/libsvn_fs_base/bdb/txn-table.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/id.h subversion/libsvn_fs_base/key-gen.h subversion/libsvn_fs_base/trail.h subversion/svn_private_config.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_fs_base/strings-reps-test.lo: subversion/tests/libsvn_fs_base/strings-reps-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/reps-table.h subversion/libsvn_fs_base/bdb/strings-table.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/util/fs_skels.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_fs_base/strings-reps-test.lo: subversion/tests/libsvn_fs_base/strings-reps-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/private/svn_skel.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/bdb/bdb_compat.h subversion/libsvn_fs_base/bdb/env.h subversion/libsvn_fs_base/bdb/reps-table.h subversion/libsvn_fs_base/bdb/strings-table.h subversion/libsvn_fs_base/fs.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_base/trail.h subversion/libsvn_fs_base/util/fs_skels.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_x/fs_init.h subversion/svn_private_config.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.lo: subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/rev_file.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.lo: subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/rev_file.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_fs_fs/fs-fs-pack-test.lo: subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/low_level.h subversion/libsvn_fs_fs/pack.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_fs_fs/fs-fs-pack-test.lo: subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/low_level.h subversion/libsvn_fs_fs/pack.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_fs/util.h subversion/libsvn_fs_x/fs_init.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_fs_fs/fs-fs-private-test.lo: subversion/tests/libsvn_fs_fs/fs-fs-private-test.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/rev_file.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_fs_fs/fs-fs-private-test.lo: subversion/tests/libsvn_fs_fs/fs-fs-private-test.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_base/fs_init.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_init.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/rep-cache.h subversion/libsvn_fs_fs/rev_file.h subversion/libsvn_fs_x/fs_init.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_fs_x/fs-x-pack-test.lo: subversion/tests/libsvn_fs_x/fs-x-pack-test.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/reps.h subversion/libsvn_fs_x/rev_file.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_fs_x/fs-x-pack-test.lo: subversion/tests/libsvn_fs_x/fs-x-pack-test.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs_x/batch_fsync.h subversion/libsvn_fs_x/fs.h subversion/libsvn_fs_x/id.h subversion/libsvn_fs_x/reps.h subversion/libsvn_fs_x/rev_file.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_fs_x/string-table-test.lo: subversion/tests/libsvn_fs_x/string-table-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_temp_serializer.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs_x/string_table.h subversion/tests/svn_test.h
+subversion/tests/libsvn_fs_x/string-table-test.lo: subversion/tests/libsvn_fs_x/string-table-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_temp_serializer.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_fs_x/string_table.h subversion/tests/svn_test.h
-subversion/tests/libsvn_ra/ra-test.lo: subversion/tests/libsvn_ra/ra-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/libsvn_ra_local/ra_local.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_ra/ra-test.lo: subversion/tests/libsvn_ra/ra-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_ra_local/ra_local.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_ra_local/ra-local-test.lo: subversion/tests/libsvn_ra_local/ra-local-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_ra_local/ra_local.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_ra_local/ra-local-test.lo: subversion/tests/libsvn_ra_local/ra-local-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_ra_local/ra_local.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_repos/authz-test.lo: subversion/tests/libsvn_repos/authz-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_repos/authz.h subversion/tests/svn_test.h
+subversion/tests/libsvn_repos/authz-test.lo: subversion/tests/libsvn_repos/authz-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_repos/authz.h subversion/tests/svn_test.h
-subversion/tests/libsvn_repos/dir-delta-editor.lo: subversion/tests/libsvn_repos/dir-delta-editor.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/libsvn_repos/dir-delta-editor.h subversion/tests/svn_test.h
+subversion/tests/libsvn_repos/dir-delta-editor.lo: subversion/tests/libsvn_repos/dir-delta-editor.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/libsvn_repos/dir-delta-editor.h subversion/tests/svn_test.h
-subversion/tests/libsvn_repos/dump-load-test.lo: subversion/tests/libsvn_repos/dump-load-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_repos/dump-load-test.lo: subversion/tests/libsvn_repos/dump-load-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_repos/repos-test.lo: subversion/tests/libsvn_repos/repos-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_subr/config_impl.h subversion/tests/libsvn_repos/dir-delta-editor.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_repos/repos-test.lo: subversion/tests/libsvn_repos/repos-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/libsvn_subr/config_impl.h subversion/tests/libsvn_repos/dir-delta-editor.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_subr/auth-test.lo: subversion/tests/libsvn_subr/auth-test.c subversion/include/private/svn_auth_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/auth-test.lo: subversion/tests/libsvn_subr/auth-test.c subversion/include/private/svn_auth_private.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/bit-array-test.lo: subversion/tests/libsvn_subr/bit-array-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/bit-array-test.lo: subversion/tests/libsvn_subr/bit-array-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/cache-test.lo: subversion/tests/libsvn_subr/cache-test.c subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/cache-test.lo: subversion/tests/libsvn_subr/cache-test.c subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/svn_private_config.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/checksum-test.lo: subversion/tests/libsvn_subr/checksum-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/checksum-test.lo: subversion/tests/libsvn_subr/checksum-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/compat-test.lo: subversion/tests/libsvn_subr/compat-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/svn_private_config.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/compat-test.lo: subversion/tests/libsvn_subr/compat-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_version.h subversion/svn_private_config.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/compress-test.lo: subversion/tests/libsvn_subr/compress-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/compress-test.lo: subversion/tests/libsvn_subr/compress-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/config-test.lo: subversion/tests/libsvn_subr/config-test.c subversion/include/private/svn_config_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/config-test.lo: subversion/tests/libsvn_subr/config-test.c subversion/include/private/svn_config_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/crypto-test.lo: subversion/tests/libsvn_subr/crypto-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_subr/crypto.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/crypto-test.lo: subversion/tests/libsvn_subr/crypto-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_subr/crypto.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/dirent_uri-test.lo: subversion/tests/libsvn_subr/dirent_uri-test.c subversion/include/private/svn_cert.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/dirent_uri-test.lo: subversion/tests/libsvn_subr/dirent_uri-test.c subversion/include/private/svn_cert.h subversion/include/private/svn_debug.h subversion/include/private/svn_dirent_uri_private.h subversion/include/private/svn_fspath.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/error-code-test.lo: subversion/tests/libsvn_subr/error-code-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/error-code-test.lo: subversion/tests/libsvn_subr/error-code-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/error-test.lo: subversion/tests/libsvn_subr/error-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_error_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/error-test.lo: subversion/tests/libsvn_subr/error-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_error_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/hashdump-test.lo: subversion/tests/libsvn_subr/hashdump-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/hashdump-test.lo: subversion/tests/libsvn_subr/hashdump-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/io-test.lo: subversion/tests/libsvn_subr/io-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_io_private.h subversion/include/private/svn_skel.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_subr/io-test.lo: subversion/tests/libsvn_subr/io-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_io_private.h subversion/include/private/svn_skel.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_subr/mergeinfo-test.lo: subversion/tests/libsvn_subr/mergeinfo-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_mergeinfo_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/mergeinfo-test.lo: subversion/tests/libsvn_subr/mergeinfo-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_error_private.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_sorts_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/opt-test.lo: subversion/tests/libsvn_subr/opt-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/opt-test.lo: subversion/tests/libsvn_subr/opt-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/packed-data-test.lo: subversion/tests/libsvn_subr/packed-data-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_packed_data.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/packed-data-test.lo: subversion/tests/libsvn_subr/packed-data-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_packed_data.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/path-test.lo: subversion/tests/libsvn_subr/path-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/path-test.lo: subversion/tests/libsvn_subr/path-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/prefix-string-test.lo: subversion/tests/libsvn_subr/prefix-string-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/prefix-string-test.lo: subversion/tests/libsvn_subr/prefix-string-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/priority-queue-test.lo: subversion/tests/libsvn_subr/priority-queue-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_sorts_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/priority-queue-test.lo: subversion/tests/libsvn_subr/priority-queue-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_sorts_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/revision-test.lo: subversion/tests/libsvn_subr/revision-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/revision-test.lo: subversion/tests/libsvn_subr/revision-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/root-pools-test.lo: subversion/tests/libsvn_subr/root-pools-test.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/root-pools-test.lo: subversion/tests/libsvn_subr/root-pools-test.c subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/skel-test.lo: subversion/tests/libsvn_subr/skel-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_skel.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_subr/skel-test.lo: subversion/tests/libsvn_subr/skel-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_skel.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_subr/spillbuf-test.lo: subversion/tests/libsvn_subr/spillbuf-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/spillbuf-test.lo: subversion/tests/libsvn_subr/spillbuf-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/sqlite-test.lo: subversion/tests/libsvn_subr/sqlite-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/sqlite-test.lo: subversion/tests/libsvn_subr/sqlite-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/stream-test.lo: subversion/tests/libsvn_subr/stream-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_io_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/stream-test.lo: subversion/tests/libsvn_subr/stream-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_io_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/string-test.lo: subversion/tests/libsvn_subr/string-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/string-test.lo: subversion/tests/libsvn_subr/string-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/subst_translate-test.lo: subversion/tests/libsvn_subr/subst_translate-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/subst_translate-test.lo: subversion/tests/libsvn_subr/subst_translate-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/time-test.lo: subversion/tests/libsvn_subr/time-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/time-test.lo: subversion/tests/libsvn_subr/time-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/translate-test.lo: subversion/tests/libsvn_subr/translate-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/translate-test.lo: subversion/tests/libsvn_subr/translate-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/utf-test.lo: subversion/tests/libsvn_subr/utf-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/utf-test.lo: subversion/tests/libsvn_subr/utf-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/x509-test.lo: subversion/tests/libsvn_subr/x509-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_x509.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/x509-test.lo: subversion/tests/libsvn_subr/x509-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_x509.h subversion/tests/svn_test.h
-subversion/tests/libsvn_subr/xml-test.lo: subversion/tests/libsvn_subr/xml-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/xml-test.lo: subversion/tests/libsvn_subr/xml-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h subversion/tests/svn_test.h
subversion/libsvn_subr/sqlite3wrapper.lo: subversion/libsvn_subr/sqlite3wrapper.c subversion/svn_private_config.h
-subversion/tests/libsvn_wc/conflict-data-test.lo: subversion/tests/libsvn_wc/conflict-data-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/tree_conflicts.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h
+subversion/tests/libsvn_wc/conflict-data-test.lo: subversion/tests/libsvn_wc/conflict-data-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/tree_conflicts.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h
-subversion/tests/libsvn_wc/db-test.lo: subversion/tests/libsvn_wc/db-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h
+subversion/tests/libsvn_wc/db-test.lo: subversion/tests/libsvn_wc/db-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h
-subversion/tests/libsvn_wc/entries-compat.lo: subversion/tests/libsvn_wc/entries-compat.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h
+subversion/tests/libsvn_wc/entries-compat.lo: subversion/tests/libsvn_wc/entries-compat.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h
-subversion/tests/libsvn_wc/op-depth-test.lo: subversion/tests/libsvn_wc/op-depth-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/libsvn_wc/wc-test-queries.h subversion/tests/svn_test.h
+subversion/tests/libsvn_wc/op-depth-test.lo: subversion/tests/libsvn_wc/op-depth-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/conflicts.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/libsvn_wc/wc-test-queries.h subversion/tests/svn_test.h
-subversion/tests/libsvn_wc/pristine-store-test.lo: subversion/tests/libsvn_wc/pristine-store-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h
+subversion/tests/libsvn_wc/pristine-store-test.lo: subversion/tests/libsvn_wc/pristine-store-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h
-subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/token-map.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/token-map.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/token-map.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/token-map.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/token-map.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/token-map.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/token-map.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/token-map.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/token-map.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/token-map.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/token-map.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/token-map.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/libsvn_wc/wc-incomplete-tester.lo: subversion/tests/libsvn_wc/wc-incomplete-tester.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
+subversion/tests/libsvn_wc/wc-incomplete-tester.lo: subversion/tests/libsvn_wc/wc-incomplete-tester.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
-subversion/tests/libsvn_wc/wc-lock-tester.lo: subversion/tests/libsvn_wc/wc-lock-tester.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
+subversion/tests/libsvn_wc/wc-lock-tester.lo: subversion/tests/libsvn_wc/wc-lock-tester.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h
-subversion/tests/libsvn_wc/wc-queries-test.lo: subversion/tests/libsvn_wc/wc-queries-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_wc/wc-queries.h subversion/svn_private_config.h subversion/tests/svn_test.h
+subversion/tests/libsvn_wc/wc-queries-test.lo: subversion/tests/libsvn_wc/wc-queries-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/libsvn_wc/wc-queries.h subversion/svn_private_config.h subversion/tests/svn_test.h
-subversion/tests/libsvn_wc/wc-test.lo: subversion/tests/libsvn_wc/wc-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h
+subversion/tests/libsvn_wc/wc-test.lo: subversion/tests/libsvn_wc/wc-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h
-subversion/tests/svn_test_fs.lo: subversion/tests/svn_test_fs.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/svn_test_fs.lo: subversion/tests/svn_test_fs.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
-subversion/tests/svn_test_main.lo: subversion/tests/svn_test_main.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/svn_private_config.h subversion/tests/svn_test.h
+subversion/tests/svn_test_main.lo: subversion/tests/svn_test_main.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/svn_private_config.h subversion/tests/svn_test.h
-tools/client-side/svn-mergeinfo-normalizer/analyze-cmd.lo: tools/client-side/svn-mergeinfo-normalizer/analyze-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
+tools/client-side/svn-mergeinfo-normalizer/analyze-cmd.lo: tools/client-side/svn-mergeinfo-normalizer/analyze-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
-tools/client-side/svn-mergeinfo-normalizer/help-cmd.lo: tools/client-side/svn-mergeinfo-normalizer/help-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
+tools/client-side/svn-mergeinfo-normalizer/help-cmd.lo: tools/client-side/svn-mergeinfo-normalizer/help-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
-tools/client-side/svn-mergeinfo-normalizer/log.lo: tools/client-side/svn-mergeinfo-normalizer/log.c subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
+tools/client-side/svn-mergeinfo-normalizer/log.lo: tools/client-side/svn-mergeinfo-normalizer/log.c subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
-tools/client-side/svn-mergeinfo-normalizer/logic.lo: tools/client-side/svn-mergeinfo-normalizer/logic.c subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_sorts_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
+tools/client-side/svn-mergeinfo-normalizer/logic.lo: tools/client-side/svn-mergeinfo-normalizer/logic.c subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_sorts_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
-tools/client-side/svn-mergeinfo-normalizer/missing-branches.lo: tools/client-side/svn-mergeinfo-normalizer/missing-branches.c subversion/include/private/svn_debug.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
+tools/client-side/svn-mergeinfo-normalizer/missing-branches.lo: tools/client-side/svn-mergeinfo-normalizer/missing-branches.c subversion/include/private/svn_debug.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
-tools/client-side/svn-mergeinfo-normalizer/normalize-cmd.lo: tools/client-side/svn-mergeinfo-normalizer/normalize-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
+tools/client-side/svn-mergeinfo-normalizer/normalize-cmd.lo: tools/client-side/svn-mergeinfo-normalizer/normalize-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
-tools/client-side/svn-mergeinfo-normalizer/remove-branches-cmd.lo: tools/client-side/svn-mergeinfo-normalizer/remove-branches-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
+tools/client-side/svn-mergeinfo-normalizer/remove-branches-cmd.lo: tools/client-side/svn-mergeinfo-normalizer/remove-branches-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
-tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer.lo: tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_opt_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn_private_config.h tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
+tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer.lo: tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_opt_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn_private_config.h tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
-tools/client-side/svn-mergeinfo-normalizer/wc_mergeinfo.lo: tools/client-side/svn-mergeinfo-normalizer/wc_mergeinfo.c subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_opt_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
+tools/client-side/svn-mergeinfo-normalizer/wc_mergeinfo.lo: tools/client-side/svn-mergeinfo-normalizer/wc_mergeinfo.c subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_opt_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
-tools/client-side/svnconflict/svnconflict.lo: tools/client-side/svnconflict/svnconflict.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_opt_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn_private_config.h
+tools/client-side/svnconflict/svnconflict.lo: tools/client-side/svnconflict/svnconflict.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_opt_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn_private_config.h
-tools/dev/fsfs-access-map.lo: tools/dev/fsfs-access-map.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h
+tools/dev/fsfs-access-map.lo: tools/dev/fsfs-access-map.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_checksum.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-tools/dev/svnmover/merge3.lo: tools/dev/svnmover/merge3.c subversion/include/private/svn_branch.h subversion/include/private/svn_branch_compat.h subversion/include/private/svn_branch_nested.h subversion/include/private/svn_branch_repos.h subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_element.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h tools/dev/svnmover/svnmover.h
+tools/dev/svnmover/merge3.lo: tools/dev/svnmover/merge3.c subversion/include/private/svn_branch.h subversion/include/private/svn_branch_compat.h subversion/include/private/svn_branch_nested.h subversion/include/private/svn_branch_repos.h subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_element.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h tools/dev/svnmover/svnmover.h
-tools/dev/svnmover/ra.lo: tools/dev/svnmover/ra.c subversion/include/private/svn_branch.h subversion/include/private/svn_branch_compat.h subversion/include/private/svn_branch_repos.h subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_editor.h subversion/include/private/svn_element.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h tools/dev/svnmover/svnmover.h
+tools/dev/svnmover/ra.lo: tools/dev/svnmover/ra.c subversion/include/private/svn_branch.h subversion/include/private/svn_branch_compat.h subversion/include/private/svn_branch_repos.h subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_editor.h subversion/include/private/svn_element.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h tools/dev/svnmover/svnmover.h
-tools/dev/svnmover/scanlog.lo: tools/dev/svnmover/scanlog.c subversion/include/private/svn_branch.h subversion/include/private/svn_branch_compat.h subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_element.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn_private_config.h tools/dev/svnmover/svnmover.h
+tools/dev/svnmover/scanlog.lo: tools/dev/svnmover/scanlog.c subversion/include/private/svn_branch.h subversion/include/private/svn_branch_compat.h subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_element.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h subversion/svn_private_config.h tools/dev/svnmover/svnmover.h
-tools/dev/svnmover/svnmover.lo: tools/dev/svnmover/svnmover.c subversion/include/private/svn_branch.h subversion/include/private/svn_branch_compat.h subversion/include/private/svn_branch_nested.h subversion/include/private/svn_branch_repos.h subversion/include/private/svn_client_private.h subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_element.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn_private_config.h tools/dev/svnmover/linenoise/linenoise.h tools/dev/svnmover/svnmover.h
+tools/dev/svnmover/svnmover.lo: tools/dev/svnmover/svnmover.c subversion/include/private/svn_branch.h subversion/include/private/svn_branch_compat.h subversion/include/private/svn_branch_nested.h subversion/include/private/svn_branch_repos.h subversion/include/private/svn_client_private.h subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_delta_private.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_element.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn_private_config.h tools/dev/svnmover/linenoise/linenoise.h tools/dev/svnmover/svnmover.h
-tools/dev/svnmover/util.lo: tools/dev/svnmover/util.c subversion/include/private/svn_branch.h subversion/include/private/svn_branch_compat.h subversion/include/private/svn_debug.h subversion/include/private/svn_element.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h tools/dev/svnmover/linenoise/linenoise.c tools/dev/svnmover/linenoise/linenoise.h tools/dev/svnmover/svnmover.h
+tools/dev/svnmover/util.lo: tools/dev/svnmover/util.c subversion/include/private/svn_branch.h subversion/include/private/svn_branch_compat.h subversion/include/private/svn_debug.h subversion/include/private/svn_element.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_wc.h tools/dev/svnmover/linenoise/linenoise.c tools/dev/svnmover/linenoise/linenoise.h tools/dev/svnmover/svnmover.h
-tools/dev/svnraisetreeconflict/svnraisetreeconflict.lo: tools/dev/svnraisetreeconflict/svnraisetreeconflict.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn_private_config.h
+tools/dev/svnraisetreeconflict/svnraisetreeconflict.lo: tools/dev/svnraisetreeconflict/svnraisetreeconflict.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn_private_config.h
-tools/dev/wc-ng/svn-wc-db-tester.lo: tools/dev/wc-ng/svn-wc-db-tester.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
+tools/dev/wc-ng/svn-wc-db-tester.lo: tools/dev/wc-ng/svn-wc-db-tester.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
-tools/dev/x509-parser.lo: tools/dev/x509-parser.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_x509.h subversion/svn_private_config.h
+tools/dev/x509-parser.lo: tools/dev/x509-parser.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_x509.h subversion/svn_private_config.h
-tools/diff/diff.lo: tools/diff/diff.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h
+tools/diff/diff.lo: tools/diff/diff.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h
-tools/diff/diff3.lo: tools/diff/diff3.c subversion/include/private/svn_debug.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h
+tools/diff/diff3.lo: tools/diff/diff3.c subversion/include/private/svn_debug.h subversion/include/private/svn_token.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-tools/diff/diff4.lo: tools/diff/diff4.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h
+tools/diff/diff4.lo: tools/diff/diff4.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h
-tools/server-side/mod_dontdothat/mod_dontdothat.lo: tools/server-side/mod_dontdothat/mod_dontdothat.c subversion/include/mod_dav_svn.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_xml.h
+tools/server-side/mod_dontdothat/mod_dontdothat.lo: tools/server-side/mod_dontdothat/mod_dontdothat.c subversion/include/mod_dav_svn.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_xml.h
if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)tools/server-side/mod_dontdothat/mod_dontdothat.c ; else echo "fake" > tools/server-side/mod_dontdothat/mod_dontdothat.lo ; fi
-tools/server-side/svn-populate-node-origins-index.lo: tools/server-side/svn-populate-node-origins-index.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h
+tools/server-side/svn-populate-node-origins-index.lo: tools/server-side/svn-populate-node-origins-index.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h
-tools/server-side/svnauthz.lo: tools/server-side/svnauthz.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h
+tools/server-side/svnauthz.lo: tools/server-side/svnauthz.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/svn_private_config.h
-tools/server-side/svnauthz.lo: tools/server-side/svnauthz.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h
+tools/server-side/svnauthz.lo: tools/server-side/svnauthz.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_opt_impl.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_types_impl.h subversion/include/svn_utf.h subversion/svn_private_config.h
diff --git a/build.conf b/build.conf
index 8f016228cb7f..1f0d2d8054a6 100644
--- a/build.conf
+++ b/build.conf
@@ -38,11 +38,14 @@ private-includes =
subversion/include/private/*.h
subversion/bindings/swig/include/*.swg
subversion/libsvn_delta/compose_delta.c
- subversion/bindings/cxxhl/include/*.hpp
- subversion/bindings/cxxhl/include/svncxxhl/*.hpp
- subversion/bindings/cxxhl/src/*.hpp
- subversion/bindings/cxxhl/src/aprwrap/*.hpp
- subversion/bindings/cxxhl/src/private/*.hpp
+ subversion/bindings/cxx/include/*.hpp
+ subversion/bindings/cxx/include/svnxx/*.hpp
+ subversion/bindings/cxx/include/svnxx/client/*.hpp
+ subversion/bindings/cxx/include/svnxx/detail/*.hpp
+ subversion/bindings/cxx/src/*.hpp
+ subversion/bindings/cxx/src/aprwrap/*.hpp
+ subversion/bindings/cxx/src/private/*.hpp
+ subversion/bindings/cxx/tests/*.hpp
subversion/bindings/javahl/native/*.hpp
subversion/bindings/javahl/native/jniwrapper/jni_*.hpp
tools/dev/svnmover/linenoise/linenoise.h
@@ -98,7 +101,7 @@ test-scripts =
bdb-test-scripts =
-swig-python-opts = $(SWIG_FEATURES) -python $(SWIG_PY_FEATURES) -classic
+swig-python-opts = $(SWIG_FEATURES) $(SWIG_PY_OPTS) $(SWIG_PY_FEATURES)
swig-perl-opts = $(SWIG_FEATURES) -perl $(SWIG_PL_FEATURES) -nopm -noproxy
swig-ruby-opts = $(SWIG_FEATURES) -ruby $(SWIG_RB_FEATURES)
swig-languages = python perl ruby
@@ -245,7 +248,7 @@ type = lib
path = subversion/libsvn_client
libs = libsvn_wc libsvn_ra libsvn_delta libsvn_diff libsvn_subr apriconv apr
install = lib
-msvc-export = svn_client.h private/svn_client_mtcc.h private/svn_client_private.h
+msvc-export = svn_client.h private/svn_client_mtcc.h private/svn_client_private.h private/svn_client_shelf.h private/svn_client_shelf2.h
# Routines for binary diffing and tree-deltas
[libsvn_delta]
@@ -371,7 +374,8 @@ type = lib
install = fsmod-lib
path = subversion/libsvn_subr
sources = *.c lz4/*.c
-libs = aprutil apriconv apr xml zlib apr_memcache sqlite magic intl lz4 utf8proc
+libs = aprutil apriconv apr xml zlib apr_memcache
+ sqlite magic intl lz4 utf8proc macos-plist macos-keychain
msvc-libs = kernel32.lib advapi32.lib shfolder.lib ole32.lib
crypt32.lib version.lib
msvc-export =
@@ -392,7 +396,7 @@ msvc-export =
private\svn_string_private.h private\svn_magic.h
private\svn_subr_private.h private\svn_mutex.h
private\svn_packed_data.h private\svn_object_pool.h private\svn_cert.h
- private\svn_config_private.h
+ private\svn_config_private.h private\svn_dirent_uri_private.h
# Working copy management lib
[libsvn_wc]
@@ -438,7 +442,7 @@ description = Subversion FSFS Repository Manipulation Tool
type = exe
path = subversion/svnfsfs
install = bin
-libs = libsvn_repos libsvn_fs libsvn_fs_fs libsvn_delta libsvn_subr apriconv apr
+libs = libsvn_repos libsvn_fs libsvn_delta libsvn_subr apriconv apr
# ----------------------------------------------------------------------------
#
@@ -608,16 +612,14 @@ msvc-export = ../bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h
[javahl-java]
type = java
path = subversion/bindings/javahl/src/org/apache/subversion/javahl
- subversion/bindings/javahl/src/org/apache/subversion/javahl/callback
- subversion/bindings/javahl/src/org/apache/subversion/javahl/remote
- subversion/bindings/javahl/src/org/apache/subversion/javahl/types
- subversion/bindings/javahl/src/org/apache/subversion/javahl/util
-src-root = subversion/bindings/javahl/src
sources = *.java
+native = CommitItemStateFlags.java NativeResources.java SVNClient.java
+ SVNRepos.java
install = javahl-java
link-cmd = $(COMPILE_JAVAHL_JAVAC)
classes = subversion/bindings/javahl/classes
-package-roots = org
+headers = subversion/bindings/javahl/include
+package = org.apache.subversion.javahl
[javahl-compat-java]
type = java
@@ -626,10 +628,12 @@ sources = *.java
install = javahl-java
link-cmd = $(COMPILE_JAVAHL_COMPAT_JAVAC)
classes = subversion/bindings/javahl/classes
-add-deps = $(javahl_java_DEPS)
+add-deps = $(javahl_callback_java_DEPS) $(javahl_remote_java_DEPS)
+ $(javahl_types_java_DEPS) $(javahl_util_java_DEPS)
+ $(javahl_java_DEPS)
### Replace JAR call in INSTALL_EXTRA_JAVAHL_JAVA macro Makefile.in.
#jar = svn-javahl.jar
-package-roots = org
+package = org.tigris.subversion.javahl
[javahl-tests]
type = java
@@ -638,10 +642,12 @@ sources = *.java
install = javahl-java
link-cmd = $(COMPILE_JAVAHL_JAVAC)
classes = subversion/bindings/javahl/classes
-package-roots = org
+package = org.apache.subversion.javahl
### Java targets don't do up-to-date checks yet.
#add-deps = javahl-java
-add-deps = $(javahl_java_DEPS)
+add-deps = $(javahl_callback_java_DEPS) $(javahl_remote_java_DEPS)
+ $(javahl_types_java_DEPS) $(javahl_util_java_DEPS)
+ $(javahl_java_DEPS)
[javahl-compat-tests]
type = java
@@ -650,65 +656,59 @@ sources = *.java
install = javahl-java
link-cmd = $(COMPILE_JAVAHL_COMPAT_JAVAC)
classes = subversion/bindings/javahl/classes
-package-roots = org
+package = org.tigris.subversion.javahl
### Java targets don't do up-to-date checks yet.
#add-deps = javahl-compat-java
add-deps = $(javahl_compat_java_DEPS)
-[javahl-callback-javah]
-type = javah
+[javahl-callback-java]
+type = java
path = subversion/bindings/javahl/src/org/apache/subversion/javahl/callback
classes = subversion/bindings/javahl/classes
headers = subversion/bindings/javahl/include
package = org.apache.subversion.javahl.callback
sources = *.java
-add-deps = $(javahl_java_DEPS)
-install = javahl-javah
-link-cmd = $(COMPILE_JAVAHL_JAVAH) -force
+native = UserPasswordCallback.java
+install = javahl-java
+link-cmd = $(COMPILE_JAVAHL_JAVAC)
-[javahl-remote-javah]
-type = javah
+[javahl-remote-java]
+type = java
path = subversion/bindings/javahl/src/org/apache/subversion/javahl/remote
classes = subversion/bindings/javahl/classes
headers = subversion/bindings/javahl/include
package = org.apache.subversion.javahl.remote
sources = *.java
-add-deps = $(javahl_java_DEPS)
-install = javahl-javah
-link-cmd = $(COMPILE_JAVAHL_JAVAH) -force
+native = CommitEditor.java RemoteFactory.java RemoteSession.java
+ StateReporter.java
+install = javahl-java
+link-cmd = $(COMPILE_JAVAHL_JAVAC)
-[javahl-types-javah]
-type = javah
+[javahl-types-java]
+type = java
path = subversion/bindings/javahl/src/org/apache/subversion/javahl/types
classes = subversion/bindings/javahl/classes
headers = subversion/bindings/javahl/include
package = org.apache.subversion.javahl.types
sources = *.java
-add-deps = $(javahl_java_DEPS)
-install = javahl-javah
-link-cmd = $(COMPILE_JAVAHL_JAVAH) -force
+native = NativeInputStream.java NativeOutputStream.java Revision.java
+ RevisionRangeList.java RuntimeVersion.java VersionExtended.java
+ Version.java
+install = javahl-java
+link-cmd = $(COMPILE_JAVAHL_JAVAC)
-[javahl-util-javah]
-type = javah
+[javahl-util-java]
+type = java
path = subversion/bindings/javahl/src/org/apache/subversion/javahl/util
classes = subversion/bindings/javahl/classes
headers = subversion/bindings/javahl/include
package = org.apache.subversion.javahl.util
sources = *.java
-add-deps = $(javahl_java_DEPS)
-install = javahl-javah
-link-cmd = $(COMPILE_JAVAHL_JAVAH) -force
-
-[javahl-javah]
-type = javah
-path = subversion/bindings/javahl/src/org/apache/subversion/javahl
-classes = subversion/bindings/javahl/classes
-headers = subversion/bindings/javahl/include
-package = org.apache.subversion.javahl
-sources = *.java
-add-deps = $(javahl_java_DEPS)
-install = javahl-javah
-link-cmd = $(COMPILE_JAVAHL_JAVAH) -force
+native = ConfigImpl.java ConfigLib.java DiffLib.java PropLib.java
+ RequestChannel.java ResponseChannel.java SubstLib.java
+ TunnelChannel.java
+install = javahl-java
+link-cmd = $(COMPILE_JAVAHL_JAVAC)
[libsvnjavahl]
description = Subversion Java HighLevel binding
@@ -717,9 +717,9 @@ path = subversion/bindings/javahl/native
libs = libsvn_repos libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_diff
libsvn_subr libsvn_fs aprutil apriconv apr java-sdk
sources = *.cpp jniwrapper/*.cpp
-add-deps = $(javahl_java_DEPS) $(javahl_callback_javah_DEPS)
- $(javahl_remote_javah_DEPS) $(javahl_types_javah_DEPS)
- $(javahl_util_javah_DEPS) $(javahl_javah_DEPS)
+add-deps = $(javahl_java_DEPS) $(javahl_callback_java_DEPS)
+ $(javahl_remote_java_DEPS) $(javahl_types_java_DEPS)
+ $(javahl_util_java_DEPS) $(javahl_java_DEPS)
install = javahl-lib
# need special build rule to include -I$(JDK)/include/jni.h
compile-cmd = $(COMPILE_JAVAHL_CXX)
@@ -727,48 +727,34 @@ link-cmd = $(LINK_JAVAHL_CXX)
# ----------------------------------------------------------------------------
#
-# C++HL targets
+# SVN++ targets
#
-[libsvncxxhl]
-description = Subversion C++ HighLevel bindings
+[libsvnxx]
+description = Subversion C++ bindings
+when = SVN_BUILD_SVNXX
type = lib
-path = subversion/bindings/cxxhl
+path = subversion/bindings/cxx
libs = libsvn_repos libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_diff
libsvn_subr libsvn_fs aprutil apriconv apr
sources = src/*.cpp src/aprwrap/*.cpp
-install = cxxhl-lib
+install = svnxx-lib
msvc-static = yes
-compile-cmd = $(COMPILE_CXXHL_CXX)
+compile-cmd = $(COMPILE_SVNXX)
link-cmd = $(LINK_CXX_LIB)
-[cxxhl-tests]
-description = Unit tests for Subversion C++ HighLevel bindings
-when = SVN_USE_GOOGLEMOCK
+[svnxx-tests]
+description = Unit tests for Subversion C++ bindings
+when = SVN_BUILD_SVNXX_TESTS
type = exe
-path = subversion/bindings/cxxhl
-libs = libsvncxxhl libgooglemock libsvn_subr apr
+path = subversion/bindings/cxx
+libs = libsvnxx
+ libsvn_repos libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_diff
+ libsvn_subr libsvn_fs aprutil apriconv apr
sources = tests/*.cpp
-install = cxxhl-tests
-compile-cmd = $(COMPILE_CXXHL_GOOGLEMOCK_CXX)
-link-cmd = $(LINK_CXX)
-
-
-# ----------------------------------------------------------------------------
-#
-# Googlemock targets
-#
-
-[libgooglemock]
-description = Googlemock Library
-when = SVN_USE_GOOGLEMOCK
-type = lib
-path = googlemock
-sources = googletest/src/gtest-all.cc googlemock/src/gmock-all.cc
-install = cxxhl-tests
-msvc-static = yes
-compile-cmd = $(COMPILE_GOOGLEMOCK_CXX)
-link-cmd = $(LINK_CXX_LIB)
+install = svnxx-tests
+compile-cmd = $(COMPILE_SVNXX_TEST)
+link-cmd = $(LINK_SVNXX_TEST)
# ----------------------------------------------------------------------------
#
@@ -1474,6 +1460,14 @@ external-lib = $(SVN_KWALLET_LIBS)
type = lib
external-lib = $(SVN_MAGIC_LIBS)
+[macos-plist]
+type = lib
+external-lib = $(SVN_MACOS_PLIST_LIBS)
+
+[macos-keychain]
+type = lib
+external-lib = $(SVN_MACOS_KEYCHAIN_LIBS)
+
[sasl]
type = lib
external-lib = $(SVN_SASL_LIBS)
@@ -1588,7 +1582,7 @@ libs = __ALL__
conflict-data-test db-test pristine-store-test entries-compat-test
op-depth-test dirent_uri-test wc-queries-test wc-test
auth-test
- parse-diff-test x509-test xml-test afl-x509 compress-test
+ parse-diff-test x509-test xml-test afl-x509 afl-svndiff compress-test
svndiff-stream-test
[__MORE__]
@@ -1630,7 +1624,7 @@ lang = ruby
[__JAVAHL__]
type = project
path = build/win32
-libs = javahl-java javahl-javah libsvnjavahl
+libs = javahl-java libsvnjavahl
[__JAVAHL_TESTS__]
type = project
@@ -1749,3 +1743,12 @@ sources = afl-x509.c
install = test
libs = libsvn_subr apr
testing = skip
+
+[afl-svndiff]
+description = AFL fuzzer for svndiff to txdelta parser
+type = exe
+path = subversion/tests/afl
+sources = afl-svndiff.c
+install = test
+libs = libsvn_delta libsvn_subr apr
+testing = skip
diff --git a/configure b/configure
index 284b76ffa2f2..4666c5d0c5fd 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for subversion 1.10.2.
+# Generated by GNU Autoconf 2.69 for subversion 1.14.0.
#
# Report bugs to <http://subversion.apache.org/>.
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='subversion'
PACKAGE_TARNAME='subversion'
-PACKAGE_VERSION='1.10.2'
-PACKAGE_STRING='subversion 1.10.2'
+PACKAGE_VERSION='1.14.0'
+PACKAGE_STRING='subversion 1.14.0'
PACKAGE_BUGREPORT='http://subversion.apache.org/'
PACKAGE_URL=''
@@ -642,6 +642,11 @@ LT_CXX_LIBADD
FIX_JAVAHL_LIB
JAVAHL_OBJDIR
INSTALL_EXTRA_JAVAHL_LIB
+SVN_BUILD_SVNXX_TESTS
+SVN_BUILD_SVNXX
+BOOST_LDFLAGS
+BOOST_CPPFLAGS
+BOOST_UNIT_TEST_FRAMEWORK_LIB
SVN_FS_LIB_LINK
SVN_FS_LIB_INSTALL_DEPS
SVN_FS_LIB_DEPS
@@ -653,6 +658,7 @@ SWIG_PY_FEATURES
SWIG_PL_FEATURES
SWIG_RB_FEATURES
SWIG_FEATURES
+SWIG_RB_ERRMSG
SWIG_RB_TEST_VERBOSE
SWIG_RB_SITE_ARCH_DIR
SWIG_RB_SITE_LIB_DIR
@@ -660,12 +666,16 @@ SWIG_RB_COMPILE
SWIG_RB_INCLUDES
SWIG_RB_LIBS
SWIG_RB_LINK
+SWIG_PL_ERRMSG
SWIG_PL_LINK
SWIG_PL_INCLUDES
+SWIG_PY_ERRMSG
+SWIG_PY_OPTS
SWIG_PY_LIBS
SWIG_PY_LINK
SWIG_PY_COMPILE
SWIG_PY_INCLUDES
+SVN_PY3C_INCLUDES
SWIG
RUBY_TEENY
RUBY_MINOR
@@ -723,12 +733,12 @@ SVN_INTL_LIBS
XGETTEXT
MSGMERGE
MSGFMT
-SVN_USE_GOOGLEMOCK
-GOOGLEMOCK_SRCDIR
SVN_GNOME_KEYRING_PCLIBS
SVN_GNOME_KEYRING_LIBS
SVN_GNOME_KEYRING_INCLUDES
SVN_HAVE_GPG_AGENT
+SVN_MACOS_KEYCHAIN_LIBS
+SVN_MACOS_PLIST_LIBS
SVN_SASL_LIBS
SVN_SASL_INCLUDES
SVN_DB_LIBS
@@ -902,7 +912,6 @@ enable_keychain
with_gpg_agent
with_old_gnome_keyring
with_gnome_keyring
-enable_googlemock
enable_ev2_impl
enable_nls
with_libmagic
@@ -923,10 +932,16 @@ enable_gprof
with_jdk
with_jikes
with_swig
+with_py3c
with_ruby_sitedir
with_ruby_test_verbose
with_ctypesgen
enable_runtime_module_search
+enable_svnxx
+enable_svnxx_tests
+with_boost
+with_boost_libdir
+with_boost_unit_test_framework
enable_javahl
with_junit
'
@@ -944,6 +959,7 @@ CCC
CPP
LT_SYS_LIBRARY_PATH
CXXCPP
+PYTHON
SWIG_FEATURES
SWIG_RB_FEATURES
SWIG_PL_FEATURES
@@ -1488,7 +1504,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures subversion 1.10.2 to adapt to many kinds of systems.
+\`configure' configures subversion 1.14.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1554,7 +1570,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of subversion 1.10.2:";;
+ short | recursive ) echo "Configuration of subversion 1.14.0:";;
esac
cat <<\_ACEOF
@@ -1593,16 +1609,15 @@ Optional Features:
the Berkeley DB installation. Using BDB 6 will fail
if this option is not used.
--disable-keychain Disable use of Mac OS KeyChain for auth credentials
- --disable-googlemock Do not use the Googlemock testing framework
--enable-ev2-impl Use Ev2 implementations, where available
[EXPERIMENTAL]
--disable-nls Disable gettext functionality
- --disable-plaintext-password-storage
- Disable on-disk caching of plaintext passwords and
- passphrases. (Leaving this functionality enabled
- will not force Subversion to store passwords in
- plaintext, but does permit users to explicitly allow
- that behavior via runtime configuration.)
+ --enable-plaintext-password-storage
+ Enable on-disk caching of plaintext passwords and
+ passphrases. (Enabling this functionality will not
+ force Subversion to store passwords in plaintext,
+ but does permit users to explicitly allow that
+ behavior via runtime configuration.)
--enable-debug Turn on debugging
--enable-optimize Turn on optimizations
--enable-disallowing-of-undefined-references
@@ -1621,6 +1636,11 @@ Optional Features:
--enable-runtime-module-search
Turn on dynamic loading of RA/FS libraries including
third-party FS libraries
+ --enable-svnxx Enable compilation of the C++ bindings (requires
+ C++)
+ --enable-svnxx-tests Enable compilation of tests for the C++ bindings
+ (implies --enable-svnxx, requires Boost and
+ Boost.Test)
--enable-javahl Enable compilation of Java high-level bindings
(requires C++)
@@ -1689,6 +1709,7 @@ Optional Packages:
--with-swig=PATH Try to use 'PATH/bin/swig' to build the swig
bindings. If PATH is not specified, look for a
'swig' binary in your PATH.
+ --with-py3c=PREFIX py3c python extension compatibility library
--with-ruby-sitedir=SITEDIR
install Ruby bindings in SITEDIR (default is same as
ruby's one)
@@ -1699,6 +1720,20 @@ Optional Packages:
the full path to a ctypesgen installation, the full
path to a ctypesgen source tree or the full path to
ctypesgen.py.
+ --with-boost[=ARG] use Boost library from a standard location
+ (ARG=yes), from the specified location (ARG=<path>),
+ or disable it (ARG=no) [ARG=yes]
+ --with-boost-libdir=LIB_DIR
+ Force given directory for boost libraries. Note that
+ this will override library path detection, so use
+ this parameter only if default library detection
+ fails and you know exactly where your boost
+ libraries are located.
+ --with-boost-unit-test-framework[=special-lib]
+ use the Unit_Test_Framework library from boost - it
+ is possible to specify a certain library for the
+ linker e.g.
+ --with-boost-unit-test-framework=boost_unit_test_framework-gcc
--with-junit=PATH Specify a path to the junit JAR file.
Some influential environment variables:
@@ -1715,6 +1750,7 @@ Some influential environment variables:
LT_SYS_LIBRARY_PATH
User-defined run-time library search path.
CXXCPP C++ preprocessor
+ PYTHON Python interpreter command
SWIG_FEATURES
SWIG feature flags common to all bindings
SWIG_RB_FEATURES
@@ -1790,7 +1826,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-subversion configure 1.10.2
+subversion configure 1.14.0
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2334,7 +2370,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by subversion $as_me 1.10.2, which was
+It was created by subversion $as_me 1.14.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2714,8 +2750,8 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuring Subversion 1.10.2" >&5
-$as_echo "$as_me: Configuring Subversion 1.10.2" >&6;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuring Subversion 1.14.0" >&5
+$as_echo "$as_me: Configuring Subversion 1.14.0" >&6;}
abs_srcdir="`cd $srcdir && pwd`"
@@ -4036,9 +4072,9 @@ ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts -std=c++98" >&5
-$as_echo_n "checking if $CXX accepts -std=c++98... " >&6; }
- CXXFLAGS="-std=c++98 $CXXFLAGS"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts -std=c++11" >&5
+$as_echo_n "checking if $CXX accepts -std=c++11... " >&6; }
+ CXXFLAGS="-std=c++11 $CXXFLAGS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int main(){}
@@ -4737,7 +4773,7 @@ fi
# ==== Libraries, for which we may have source to build ======================
-APR_VER_REGEXES="1\.[3-9]\. 2\."
+APR_VER_REGEXES="1\.[5-9]\. 2\."
APR_WANTED_REGEXES="$APR_VER_REGEXES"
@@ -5471,7 +5507,7 @@ $as_echo_n "checking serf version is suitable... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
serf_found=yes
- SVN_SERF_INCLUDES=`$PKG_CONFIG $serf_pc_arg --cflags | $SED -e 's/ -D[^ ]*//g' -e 's/^-D[^ ]*//g'`
+ SVN_SERF_INCLUDES=`$PKG_CONFIG $serf_pc_arg --cflags-only-I`
SVN_SERF_LIBS=`$PKG_CONFIG $serf_pc_arg --libs-only-l`
LDFLAGS="$LDFLAGS `$PKG_CONFIG $serf_pc_arg --libs | $SED -e 's/-l[^ ]*//g'`"
break
@@ -19388,8 +19424,8 @@ main ()
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
+ SVN_MACOS_PLIST_LIBS="-framework CoreFoundation"
- LIBS="$LIBS -framework CoreFoundation"
$as_echo "#define SVN_HAVE_MACOS_PLIST 1" >>confdefs.h
@@ -19437,8 +19473,8 @@ main ()
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
- LIBS="$LIBS -framework Security"
- LIBS="$LIBS -framework CoreServices"
+ SVN_MACOS_KEYCHAIN_LIBS="-framework Security -framework CoreServices"
+
$as_echo "#define SVN_HAVE_KEYCHAIN_SERVICES 1" >>confdefs.h
@@ -19613,7 +19649,7 @@ $as_echo "#define SVN_HAVE_GNOME_KEYRING 1" >>confdefs.h
CPPFLAGS="$old_CPPFLAGS"
SVN_GNOME_KEYRING_LIBS="`$PKG_CONFIG --libs glib-2.0 gnome-keyring-1`"
- SVN_GNOME_KEYRING_PCLIBS="glib-2.0 gnome-keyring-1"
+ SVN_GNOME_KEYRING_PCLIBS="glib-2.0, gnome-keyring-1"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
@@ -19742,35 +19778,6 @@ $as_echo "no" >&6; }
-# Check whether --enable-googlemock was given.
-if test "${enable_googlemock+set}" = set; then :
- enableval=$enable_googlemock;
-else
- enable_googlemock=yes
-fi
-
-
-GOOGLEMOCK_SRCDIR=$abs_srcdir/googlemock
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether use Googlemock" >&5
-$as_echo_n "checking whether use Googlemock... " >&6; }
-if test "$enable_googlemock" != "no"; then
- if test -d "$GOOGLEMOCK_SRCDIR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- SVN_USE_GOOGLEMOCK=true
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- SVN_USE_GOOGLEMOCK=false
- fi
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- SVN_USE_GOOGLEMOCK=false
-fi
-
-
# Check whether --enable-ev2-impl was given.
if test "${enable_ev2_impl+set}" = set; then :
enableval=$enable_ev2_impl; enable_ev2_impl=$enableval
@@ -20475,57 +20482,6 @@ fi
fi
fi
if test -n "$KDE_CONFIG"; then
- if test $kde_config_name = "kf5-config"; then
-
- CXXFLAGS_KEEP="$CXXFLAGS"
- CXXFLAGS=""
-
- if test "$GXX" = "yes"; then
-
- _svn_xxflags__save="$CXXFLAGS"
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts -std=c++11" >&5
-$as_echo_n "checking if $CXX accepts -std=c++11... " >&6; }
- CXXFLAGS="-std=c++11 $CXXFLAGS"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int main(){}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-
-else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CXXFLAGS="$_svn_xxflags__save"
-
-
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
- fi
-
- CXXMODEFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS_KEEP"
-
-
- fi
old_CXXFLAGS="$CXXFLAGS"
old_LDFLAGS="$LDFLAGS"
old_LIBS="$LIBS"
@@ -20646,19 +20602,24 @@ fi
# Check whether --enable-plaintext-password-storage was given.
if test "${enable_plaintext_password_storage+set}" = set; then :
- enableval=$enable_plaintext_password_storage;
- if test "$enableval" = "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: Disabling plaintext password/passphrase storage" >&5
+ enableval=$enable_plaintext_password_storage; plaintext_passwordd_storage="$enableval"
+else
+ plaintext_passwordd_storage="no"
+fi
+
+
+if test "$plaintext_passwordd_storage" = "yes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Enabling plaintext password/passphrase storage" >&5
+$as_echo "$as_me: WARNING: Enabling plaintext password/passphrase storage" >&2;}
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Disabling plaintext password/passphrase storage" >&5
$as_echo "$as_me: Disabling plaintext password/passphrase storage" >&6;}
$as_echo "#define SVN_DISABLE_PLAINTEXT_PASSWORD_STORAGE 1" >>confdefs.h
- fi
-
fi
-
INSTALL_STATIC_RULES="install-bin install-docs"
INSTALL_RULES="install-fsmod-lib install-ramod-lib install-lib install-include install-static"
INSTALL_RULES="$INSTALL_RULES $INSTALL_APACHE_RULE"
@@ -21030,6 +20991,18 @@ fi
done
+for ac_header in elf.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "elf.h" "ac_cv_header_elf_h" "$ac_includes_default"
+if test "x$ac_cv_header_elf_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_ELF_H 1
+_ACEOF
+
+fi
+
+done
+
ac_fn_c_check_header_mongrel "$LINENO" "termios.h" "ac_cv_header_termios_h" "$ac_includes_default"
if test "x$ac_cv_header_termios_h" = xyes; then :
@@ -22405,44 +22378,6 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
- _svn_xxflags__save="$CFLAGS"
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -flto" >&5
-$as_echo_n "checking if $CC accepts -flto... " >&6; }
- CFLAGS="-flto $CFLAGS"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int main(void){return 0;}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-
-else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$_svn_xxflags__save"
-
-
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
fi
fi
if test -z "`echo $CXXUSERFLAGS' ' | $EGREP -- '-O[^ ]* '`"; then
@@ -22719,44 +22654,6 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
- _svn_xxflags__save="$CXXFLAGS"
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts -flto" >&5
-$as_echo_n "checking if $CXX accepts -flto... " >&6; }
- CXXFLAGS="-flto $CXXFLAGS"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int main(){}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-
-else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CXXFLAGS="$_svn_xxflags__save"
-
-
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
fi
fi
elif test "$enable_optimization" = "no"; then
@@ -22770,12 +22667,16 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: C compiler flags: $CFLAGS" >&5
$as_echo "$as_me: C compiler flags: $CFLAGS" >&6;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: language-level: $CMODEFLAGS" >&5
+$as_echo "$as_me: language-level: $CMODEFLAGS" >&6;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: user-defined: $CUSERFLAGS" >&5
$as_echo "$as_me: user-defined: $CUSERFLAGS" >&6;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: maintainer-mode: $CMAINTAINERFLAGS" >&5
$as_echo "$as_me: maintainer-mode: $CMAINTAINERFLAGS" >&6;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: C++ compiler flags: $CXXFLAGS" >&5
$as_echo "$as_me: C++ compiler flags: $CXXFLAGS" >&6;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: language-level: $CXXMODEFLAGS" >&5
+$as_echo "$as_me: language-level: $CXXMODEFLAGS" >&6;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: user-defined: $CXXUSERFLAGS" >&5
$as_echo "$as_me: user-defined: $CXXUSERFLAGS" >&6;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: maintainer-mode: $CXXMAINTAINERFLAGS" >&5
@@ -23376,7 +23277,7 @@ fi
fi
if test "$utf8proc_found" != "yes"; then
- as_fn_error $? "Subversion requires UTF8PROC" "$LINENO" 5
+ as_fn_error $? "Subversion requires UTF8PROC; install it or re-run configure with \"--with-utf8proc=internal\"" "$LINENO" 5
fi
fi
@@ -23522,7 +23423,7 @@ test -n "$PYTHON" || PYTHON="none"
# The minimum version for the JVM runtime for our Java bytecode.
-JAVA_OLDEST_WORKING_VER='1.6'
+JAVA_OLDEST_WORKING_VER='1.8'
# SVN_CHECK_JDK sets $JAVA_CLASSPATH
JAVA_OLDEST_WORKING_VER="$JAVA_OLDEST_WORKING_VER"
@@ -23647,7 +23548,7 @@ fi
# The release for "-source" could actually be greater than that
# of "-target", if we want to cross-compile for lesser JVMs.
if test -z "$JAVAC_FLAGS"; then
- JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.6"
+ JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.8"
if test "$enable_debugging" = "yes"; then
JAVAC_FLAGS="-g -Xlint -Xlint:unchecked -Xlint:serial -Xlint:path $JAVAC_FLAGS"
if test -z "$JAVAC_COMPAT_FLAGS"; then
@@ -23787,7 +23688,7 @@ fi
# The release for "-source" could actually be greater than that
# of "-target", if we want to cross-compile for lesser JVMs.
if test -z "$JAVAC_FLAGS"; then
- JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.6"
+ JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.8"
if test "$enable_debugging" = "yes"; then
JAVAC_FLAGS="-g -Xlint -Xlint:unchecked -Xlint:serial -Xlint:path $JAVAC_FLAGS"
if test -z "$JAVAC_COMPAT_FLAGS"; then
@@ -23930,7 +23831,7 @@ fi
# The release for "-source" could actually be greater than that
# of "-target", if we want to cross-compile for lesser JVMs.
if test -z "$JAVAC_FLAGS"; then
- JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.6"
+ JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.8"
if test "$enable_debugging" = "yes"; then
JAVAC_FLAGS="-g -Xlint -Xlint:unchecked -Xlint:serial -Xlint:path $JAVAC_FLAGS"
if test -z "$JAVAC_COMPAT_FLAGS"; then
@@ -24357,6 +24258,8 @@ $as_echo "$as_me: WARNING: Subversion requires SWIG >= 1.3.24" >&2;}
SWIG_PY_COMPILE="none"
SWIG_PY_LINK="none"
+ SWIG_PY_OPTS="none"
+ SWIG_PY_ERRMSG="check config.log for details"
if test "$PYTHON" != "none"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuring python swig binding" >&5
$as_echo "$as_me: Configuring python swig binding" >&6;}
@@ -24375,48 +24278,170 @@ $as_echo "$ac_cv_python_includes" >&6; }
SWIG_PY_INCLUDES="\$(SWIG_INCLUDES) $ac_cv_python_includes"
if test "$ac_cv_python_includes" = "none"; then
+ SWIG_PY_ERRMSG="no distutils found"
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: python bindings cannot be built without distutils module" >&5
$as_echo "$as_me: WARNING: python bindings cannot be built without distutils module" >&2;}
+ else
+
+ python_header_found="no"
+
+ save_cppflags="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $ac_cv_python_includes"
+ ac_fn_c_check_header_mongrel "$LINENO" "Python.h" "ac_cv_header_Python_h" "$ac_includes_default"
+if test "x$ac_cv_header_Python_h" = xyes; then :
+
+ python_header_found="yes"
+
+fi
+
+
+ CPPFLAGS="$save_cppflags"
+
+ if test "$python_header_found" = "no"; then
+ SWIG_PY_ERRMSG="no Python.h found"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Python.h not found; disabling python swig bindings" >&5
+$as_echo "$as_me: WARNING: Python.h not found; disabling python swig bindings" >&2;}
+ else
+
+ py3c_found=no
+ py3c_skip=no
+
+
+# Check whether --with-py3c was given.
+if test "${with_py3c+set}" = set; then :
+ withval=$with_py3c;
+ if test "$withval" = "yes"; then
+ py3c_skip=no
+ elif test "$withval" = "no"; then
+ py3c_skip=yes
+ else
+ py3c_skip=no
+ py3c_prefix="$withval"
+ fi
+
+fi
+
+
+ if test "$py3c_skip" = "yes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Skipping configure of py3c" >&5
+$as_echo "$as_me: Skipping configure of py3c" >&6;}
+ else
+ if test -n "$py3c_prefix"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: py3c library configuration via prefix $py3c_prefix" >&5
+$as_echo "$as_me: py3c library configuration via prefix $py3c_prefix" >&6;}
+
+ if test "$ac_cv_python_includes" = "none"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: py3c cannot be used without distutils module" >&5
+$as_echo "$as_me: WARNING: py3c cannot be used without distutils module" >&2;}
+ fi
+
+ save_cppflags="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $ac_cv_python_includes -I$py3c_prefix/include"
+ for ac_header in py3c.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "py3c.h" "ac_cv_header_py3c_h" "$ac_includes_default"
+if test "x$ac_cv_header_py3c_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_PY3C_H 1
+_ACEOF
+
+ py3c_found="yes"
+ SVN_PY3C_INCLUDES="-I$py3c_prefix/include"
+
+fi
+
+done
+
+ CPPFLAGS="$save_cppflags"
+ else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: py3c library configuration via pkg-config" >&5
+$as_echo "$as_me: py3c library configuration via pkg-config" >&6;}
+ if test -n "$PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for py3c library" >&5
+$as_echo_n "checking for py3c library... " >&6; }
+ if $PKG_CONFIG py3c --exists; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ py3c_found=yes
+ SVN_PY3C_INCLUDES=`$PKG_CONFIG py3c --cflags`
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
+ fi
+
+
+ if test "$py3c_found" = "no"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: py3c library configuration without pkg-config" >&5
+$as_echo "$as_me: py3c library configuration without pkg-config" >&6;}
+
+ if test "$ac_cv_python_includes" = "none"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: py3c cannot be used without distutils module" >&5
+$as_echo "$as_me: WARNING: py3c cannot be used without distutils module" >&2;}
+ fi
+
+ save_cppflags="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $ac_cv_python_includes"
+ ac_fn_c_check_header_mongrel "$LINENO" "py3c.h" "ac_cv_header_py3c_h" "$ac_includes_default"
+if test "x$ac_cv_header_py3c_h" = xyes; then :
+
+ py3c_found="yes"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiling Python extensions" >&5
+fi
+
+
+ CPPFLAGS="$save_cppflags"
+ fi
+ fi
+ fi
+
+
+
+
+ if test "$py3c_found" = "no"; then
+ SWIG_PY_ERRMSG="py3c library not found"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: py3c library not found; disabling python swig bindings" >&5
+$as_echo "$as_me: WARNING: py3c library not found; disabling python swig bindings" >&2;}
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiling Python extensions" >&5
$as_echo_n "checking for compiling Python extensions... " >&6; }
if ${ac_cv_python_compile+:} false; then :
$as_echo_n "(cached) " >&6
else
- ac_cv_python_compile="`$PYTHON ${abs_srcdir}/build/get-py-info.py --compile`"
+ ac_cv_python_compile="`$PYTHON ${abs_srcdir}/build/get-py-info.py --compile`"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_python_compile" >&5
$as_echo "$ac_cv_python_compile" >&6; }
- SWIG_PY_COMPILE="$ac_cv_python_compile $CFLAGS"
+ SWIG_PY_COMPILE="$ac_cv_python_compile $CFLAGS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for linking Python extensions" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for linking Python extensions" >&5
$as_echo_n "checking for linking Python extensions... " >&6; }
if ${ac_cv_python_link+:} false; then :
$as_echo_n "(cached) " >&6
else
- ac_cv_python_link="`$PYTHON ${abs_srcdir}/build/get-py-info.py --link`"
+ ac_cv_python_link="`$PYTHON ${abs_srcdir}/build/get-py-info.py --link`"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_python_link" >&5
$as_echo "$ac_cv_python_link" >&6; }
- SWIG_PY_LINK="$ac_cv_python_link"
+ SWIG_PY_LINK="$ac_cv_python_link"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for linking Python libraries" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for linking Python libraries" >&5
$as_echo_n "checking for linking Python libraries... " >&6; }
if ${ac_cv_python_libs+:} false; then :
$as_echo_n "(cached) " >&6
else
- ac_cv_python_libs="`$PYTHON ${abs_srcdir}/build/get-py-info.py --libs`"
+ ac_cv_python_libs="`$PYTHON ${abs_srcdir}/build/get-py-info.py --libs`"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_python_libs" >&5
$as_echo "$ac_cv_python_libs" >&6; }
- SWIG_PY_LIBS="`
+ SWIG_PY_LIBS="`
input_flags="$ac_cv_python_libs"
output_flags=""
filtered_dirs="/lib /lib64 /usr/lib /usr/lib64"
@@ -24437,69 +24462,52 @@ $as_echo "$ac_cv_python_libs" >&6; }
fi
`"
- SVN_PYCFMT_SAVE_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for apr_int64_t Python/C API format string" >&5
-$as_echo_n "checking for apr_int64_t Python/C API format string... " >&6; }
-if ${svn_cv_pycfmt_apr_int64_t+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python >= 3" >&5
+$as_echo_n "checking for Python >= 3... " >&6; }
+if ${ac_cv_python_is_py3+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <apr.h>
- MaTcHtHiS APR_INT64_T_FMT EnDeNd
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "MaTcHtHiS +\"lld\" +EnDeNd" >/dev/null 2>&1; then :
- svn_cv_pycfmt_apr_int64_t="L"
-fi
-rm -f conftest*
+ ac_cv_python_is_py3="no"
+ $PYTHON -c 'import sys; sys.exit(0x3000000 > sys.hexversion)' && \
+ ac_cv_python_is_py3="yes"
- fi
- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-r
- #include <apr.h>
- MaTcHtHiS APR_INT64_T_FMT EnDeNd
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "MaTcHtHiS +\"ld\" +EnDeNd" >/dev/null 2>&1; then :
- svn_cv_pycfmt_apr_int64_t="l"
fi
-rm -f conftest*
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_python_is_py3" >&5
+$as_echo "$ac_cv_python_is_py3" >&6; }
- fi
- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <apr.h>
- MaTcHtHiS APR_INT64_T_FMT EnDeNd
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "MaTcHtHiS +\"d\" +EnDeNd" >/dev/null 2>&1; then :
- svn_cv_pycfmt_apr_int64_t="i"
-fi
-rm -f conftest*
+ if test "$ac_cv_python_is_py3" = "yes"; then
+ if test "$SWIG_VERSION" -ge "300010"; then
+ SWIG_PY_ERRMSG=""
+ else
+ SWIG_PY_ERRMSG="SWIG version is not suitable"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Subversion Python bindings for Python 3 require SWIG 3.0.10 or newer" >&5
+$as_echo "$as_me: WARNING: Subversion Python bindings for Python 3 require SWIG 3.0.10 or newer" >&2;}
+ fi
+ if test "$SWIG_VERSION" -lt "400000"; then
+ SWIG_PY_OPTS="-python -py3 -nofastunpack -modern"
+ else
+ SWIG_PY_OPTS="-python -py3 -nofastunpack"
+ fi
+ else
+ if test "$SWIG_VERSION" -lt "400000"; then
+ SWIG_PY_OPTS="-python -classic"
+ SWIG_PY_ERRMSG=""
+ else
+ SWIG_PY_OPTS="-python -nofastunpack"
+ SWIG_PY_ERRMSG="SWIG version is not suitable"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Subversion Python bindings for Python 2 require 1.3.24 <= SWIG < 4.0.0" >&5
+$as_echo "$as_me: WARNING: Subversion Python bindings for Python 2 require 1.3.24 <= SWIG < 4.0.0" >&2;}
+ fi
+ fi
+ fi
fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $svn_cv_pycfmt_apr_int64_t" >&5
-$as_echo "$svn_cv_pycfmt_apr_int64_t" >&6; }
- CPPFLAGS="$SVN_PYCFMT_SAVE_CPPFLAGS"
- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
- as_fn_error $? "failed to recognize APR_INT64_T_FMT on this platform" "$LINENO" 5
fi
-cat >>confdefs.h <<_ACEOF
-#define SVN_APR_INT64_T_PYCFMT "$svn_cv_pycfmt_apr_int64_t"
-_ACEOF
-
fi
+ SWIG_PL_ERRMSG="check config.log for details"
if test "$PERL" != "none"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking perl version" >&5
$as_echo_n "checking perl version... " >&6; }
@@ -24529,6 +24537,8 @@ $as_echo "$PERL_VERSION" >&6; }
printf "%s" "${output_flags# }"
fi
`"
+
+ SWIG_PL_ERRMSG=""
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: perl bindings require perl 5.8.0 or newer." >&5
$as_echo "$as_me: WARNING: perl bindings require perl 5.8.0 or newer." >&2;}
@@ -24537,7 +24547,14 @@ $as_echo "$as_me: WARNING: perl bindings require perl 5.8.0 or newer." >&2;}
SWIG_RB_COMPILE="none"
SWIG_RB_LINK="none"
+ SWIG_RB_ERRMSG="check config.log for details"
if test "$RUBY" != "none"; then
+ if test x"$SWIG_VERSION" = x"3""00""008"; then
+ # Use a local variable to escape the '#' sign.
+ ruby_swig_issue_602='https://subversion.apache.org/docs/release-notes/1.11#ruby-swig-issue-602'
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ruby bindings are known not to support swig 3.0.8; see $ruby_swig_issue_602" >&5
+$as_echo "$as_me: WARNING: Ruby bindings are known not to support swig 3.0.8; see $ruby_swig_issue_602" >&2;}
+ fi
rbconfig="$RUBY -rrbconfig -e "
for var_name in arch archdir CC LDSHARED DLEXT LIBS LIBRUBYARG \
@@ -24557,7 +24574,7 @@ if ${svn_cv_ruby_includes+:} false; then :
else
if test -d "$rbconfig_rubyhdrdir"; then
- svn_cv_ruby_includes="-I. -I$rbconfig_rubyhdrdir -I$rbconfig_rubyhdrdir/ruby -I$rbconfig_rubyhdrdir/ruby/backward"
+ svn_cv_ruby_includes="-I. -I$rbconfig_rubyhdrdir"
if test -d "$rbconfig_rubyarchhdrdir"; then
svn_cv_ruby_includes="$svn_cv_ruby_includes -I$rbconfig_rubyarchhdrdir"
else
@@ -24753,6 +24770,8 @@ fi
SWIG_RB_TEST_VERBOSE="$svn_ruby_test_verbose"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SWIG_RB_TEST_VERBOSE" >&5
$as_echo "$SWIG_RB_TEST_VERBOSE" >&6; }
+
+ SWIG_RB_ERRMSG=""
fi
@@ -24769,6 +24788,10 @@ $as_echo "$SWIG_RB_TEST_VERBOSE" >&6; }
+
+
+
+
;;
"yes")
@@ -24866,6 +24889,8 @@ $as_echo "$as_me: WARNING: Subversion requires SWIG >= 1.3.24" >&2;}
SWIG_PY_COMPILE="none"
SWIG_PY_LINK="none"
+ SWIG_PY_OPTS="none"
+ SWIG_PY_ERRMSG="check config.log for details"
if test "$PYTHON" != "none"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuring python swig binding" >&5
$as_echo "$as_me: Configuring python swig binding" >&6;}
@@ -24884,48 +24909,170 @@ $as_echo "$ac_cv_python_includes" >&6; }
SWIG_PY_INCLUDES="\$(SWIG_INCLUDES) $ac_cv_python_includes"
if test "$ac_cv_python_includes" = "none"; then
+ SWIG_PY_ERRMSG="no distutils found"
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: python bindings cannot be built without distutils module" >&5
$as_echo "$as_me: WARNING: python bindings cannot be built without distutils module" >&2;}
+ else
+
+ python_header_found="no"
+
+ save_cppflags="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $ac_cv_python_includes"
+ ac_fn_c_check_header_mongrel "$LINENO" "Python.h" "ac_cv_header_Python_h" "$ac_includes_default"
+if test "x$ac_cv_header_Python_h" = xyes; then :
+
+ python_header_found="yes"
+
+fi
+
+
+ CPPFLAGS="$save_cppflags"
+
+ if test "$python_header_found" = "no"; then
+ SWIG_PY_ERRMSG="no Python.h found"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Python.h not found; disabling python swig bindings" >&5
+$as_echo "$as_me: WARNING: Python.h not found; disabling python swig bindings" >&2;}
+ else
+
+ py3c_found=no
+ py3c_skip=no
+
+
+# Check whether --with-py3c was given.
+if test "${with_py3c+set}" = set; then :
+ withval=$with_py3c;
+ if test "$withval" = "yes"; then
+ py3c_skip=no
+ elif test "$withval" = "no"; then
+ py3c_skip=yes
+ else
+ py3c_skip=no
+ py3c_prefix="$withval"
+ fi
+
+fi
+
+
+ if test "$py3c_skip" = "yes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Skipping configure of py3c" >&5
+$as_echo "$as_me: Skipping configure of py3c" >&6;}
+ else
+ if test -n "$py3c_prefix"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: py3c library configuration via prefix $py3c_prefix" >&5
+$as_echo "$as_me: py3c library configuration via prefix $py3c_prefix" >&6;}
+
+ if test "$ac_cv_python_includes" = "none"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: py3c cannot be used without distutils module" >&5
+$as_echo "$as_me: WARNING: py3c cannot be used without distutils module" >&2;}
+ fi
+
+ save_cppflags="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $ac_cv_python_includes -I$py3c_prefix/include"
+ for ac_header in py3c.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "py3c.h" "ac_cv_header_py3c_h" "$ac_includes_default"
+if test "x$ac_cv_header_py3c_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_PY3C_H 1
+_ACEOF
+
+ py3c_found="yes"
+ SVN_PY3C_INCLUDES="-I$py3c_prefix/include"
+
+fi
+
+done
+
+ CPPFLAGS="$save_cppflags"
+ else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: py3c library configuration via pkg-config" >&5
+$as_echo "$as_me: py3c library configuration via pkg-config" >&6;}
+ if test -n "$PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for py3c library" >&5
+$as_echo_n "checking for py3c library... " >&6; }
+ if $PKG_CONFIG py3c --exists; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ py3c_found=yes
+ SVN_PY3C_INCLUDES=`$PKG_CONFIG py3c --cflags`
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
+ fi
+
+
+ if test "$py3c_found" = "no"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: py3c library configuration without pkg-config" >&5
+$as_echo "$as_me: py3c library configuration without pkg-config" >&6;}
+
+ if test "$ac_cv_python_includes" = "none"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: py3c cannot be used without distutils module" >&5
+$as_echo "$as_me: WARNING: py3c cannot be used without distutils module" >&2;}
+ fi
+
+ save_cppflags="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $ac_cv_python_includes"
+ ac_fn_c_check_header_mongrel "$LINENO" "py3c.h" "ac_cv_header_py3c_h" "$ac_includes_default"
+if test "x$ac_cv_header_py3c_h" = xyes; then :
+
+ py3c_found="yes"
+
+fi
+
+
+ CPPFLAGS="$save_cppflags"
+ fi
+ fi
+ fi
+
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiling Python extensions" >&5
+
+
+ if test "$py3c_found" = "no"; then
+ SWIG_PY_ERRMSG="py3c library not found"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: py3c library not found; disabling python swig bindings" >&5
+$as_echo "$as_me: WARNING: py3c library not found; disabling python swig bindings" >&2;}
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiling Python extensions" >&5
$as_echo_n "checking for compiling Python extensions... " >&6; }
if ${ac_cv_python_compile+:} false; then :
$as_echo_n "(cached) " >&6
else
- ac_cv_python_compile="`$PYTHON ${abs_srcdir}/build/get-py-info.py --compile`"
+ ac_cv_python_compile="`$PYTHON ${abs_srcdir}/build/get-py-info.py --compile`"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_python_compile" >&5
$as_echo "$ac_cv_python_compile" >&6; }
- SWIG_PY_COMPILE="$ac_cv_python_compile $CFLAGS"
+ SWIG_PY_COMPILE="$ac_cv_python_compile $CFLAGS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for linking Python extensions" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for linking Python extensions" >&5
$as_echo_n "checking for linking Python extensions... " >&6; }
if ${ac_cv_python_link+:} false; then :
$as_echo_n "(cached) " >&6
else
- ac_cv_python_link="`$PYTHON ${abs_srcdir}/build/get-py-info.py --link`"
+ ac_cv_python_link="`$PYTHON ${abs_srcdir}/build/get-py-info.py --link`"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_python_link" >&5
$as_echo "$ac_cv_python_link" >&6; }
- SWIG_PY_LINK="$ac_cv_python_link"
+ SWIG_PY_LINK="$ac_cv_python_link"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for linking Python libraries" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for linking Python libraries" >&5
$as_echo_n "checking for linking Python libraries... " >&6; }
if ${ac_cv_python_libs+:} false; then :
$as_echo_n "(cached) " >&6
else
- ac_cv_python_libs="`$PYTHON ${abs_srcdir}/build/get-py-info.py --libs`"
+ ac_cv_python_libs="`$PYTHON ${abs_srcdir}/build/get-py-info.py --libs`"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_python_libs" >&5
$as_echo "$ac_cv_python_libs" >&6; }
- SWIG_PY_LIBS="`
+ SWIG_PY_LIBS="`
input_flags="$ac_cv_python_libs"
output_flags=""
filtered_dirs="/lib /lib64 /usr/lib /usr/lib64"
@@ -24946,69 +25093,52 @@ $as_echo "$ac_cv_python_libs" >&6; }
fi
`"
- SVN_PYCFMT_SAVE_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for apr_int64_t Python/C API format string" >&5
-$as_echo_n "checking for apr_int64_t Python/C API format string... " >&6; }
-if ${svn_cv_pycfmt_apr_int64_t+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python >= 3" >&5
+$as_echo_n "checking for Python >= 3... " >&6; }
+if ${ac_cv_python_is_py3+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <apr.h>
- MaTcHtHiS APR_INT64_T_FMT EnDeNd
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "MaTcHtHiS +\"lld\" +EnDeNd" >/dev/null 2>&1; then :
- svn_cv_pycfmt_apr_int64_t="L"
-fi
-rm -f conftest*
+ ac_cv_python_is_py3="no"
+ $PYTHON -c 'import sys; sys.exit(0x3000000 > sys.hexversion)' && \
+ ac_cv_python_is_py3="yes"
- fi
- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-r
- #include <apr.h>
- MaTcHtHiS APR_INT64_T_FMT EnDeNd
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "MaTcHtHiS +\"ld\" +EnDeNd" >/dev/null 2>&1; then :
- svn_cv_pycfmt_apr_int64_t="l"
fi
-rm -f conftest*
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_python_is_py3" >&5
+$as_echo "$ac_cv_python_is_py3" >&6; }
- fi
- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <apr.h>
- MaTcHtHiS APR_INT64_T_FMT EnDeNd
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "MaTcHtHiS +\"d\" +EnDeNd" >/dev/null 2>&1; then :
- svn_cv_pycfmt_apr_int64_t="i"
-fi
-rm -f conftest*
+ if test "$ac_cv_python_is_py3" = "yes"; then
+ if test "$SWIG_VERSION" -ge "300010"; then
+ SWIG_PY_ERRMSG=""
+ else
+ SWIG_PY_ERRMSG="SWIG version is not suitable"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Subversion Python bindings for Python 3 require SWIG 3.0.10 or newer" >&5
+$as_echo "$as_me: WARNING: Subversion Python bindings for Python 3 require SWIG 3.0.10 or newer" >&2;}
+ fi
+ if test "$SWIG_VERSION" -lt "400000"; then
+ SWIG_PY_OPTS="-python -py3 -nofastunpack -modern"
+ else
+ SWIG_PY_OPTS="-python -py3 -nofastunpack"
+ fi
+ else
+ if test "$SWIG_VERSION" -lt "400000"; then
+ SWIG_PY_OPTS="-python -classic"
+ SWIG_PY_ERRMSG=""
+ else
+ SWIG_PY_OPTS="-python -nofastunpack"
+ SWIG_PY_ERRMSG="SWIG version is not suitable"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Subversion Python bindings for Python 2 require 1.3.24 <= SWIG < 4.0.0" >&5
+$as_echo "$as_me: WARNING: Subversion Python bindings for Python 2 require 1.3.24 <= SWIG < 4.0.0" >&2;}
+ fi
+ fi
+ fi
fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $svn_cv_pycfmt_apr_int64_t" >&5
-$as_echo "$svn_cv_pycfmt_apr_int64_t" >&6; }
- CPPFLAGS="$SVN_PYCFMT_SAVE_CPPFLAGS"
- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
- as_fn_error $? "failed to recognize APR_INT64_T_FMT on this platform" "$LINENO" 5
fi
-cat >>confdefs.h <<_ACEOF
-#define SVN_APR_INT64_T_PYCFMT "$svn_cv_pycfmt_apr_int64_t"
-_ACEOF
-
fi
+ SWIG_PL_ERRMSG="check config.log for details"
if test "$PERL" != "none"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking perl version" >&5
$as_echo_n "checking perl version... " >&6; }
@@ -25038,6 +25168,8 @@ $as_echo "$PERL_VERSION" >&6; }
printf "%s" "${output_flags# }"
fi
`"
+
+ SWIG_PL_ERRMSG=""
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: perl bindings require perl 5.8.0 or newer." >&5
$as_echo "$as_me: WARNING: perl bindings require perl 5.8.0 or newer." >&2;}
@@ -25046,7 +25178,14 @@ $as_echo "$as_me: WARNING: perl bindings require perl 5.8.0 or newer." >&2;}
SWIG_RB_COMPILE="none"
SWIG_RB_LINK="none"
+ SWIG_RB_ERRMSG="check config.log for details"
if test "$RUBY" != "none"; then
+ if test x"$SWIG_VERSION" = x"3""00""008"; then
+ # Use a local variable to escape the '#' sign.
+ ruby_swig_issue_602='https://subversion.apache.org/docs/release-notes/1.11#ruby-swig-issue-602'
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ruby bindings are known not to support swig 3.0.8; see $ruby_swig_issue_602" >&5
+$as_echo "$as_me: WARNING: Ruby bindings are known not to support swig 3.0.8; see $ruby_swig_issue_602" >&2;}
+ fi
rbconfig="$RUBY -rrbconfig -e "
for var_name in arch archdir CC LDSHARED DLEXT LIBS LIBRUBYARG \
@@ -25066,7 +25205,7 @@ if ${svn_cv_ruby_includes+:} false; then :
else
if test -d "$rbconfig_rubyhdrdir"; then
- svn_cv_ruby_includes="-I. -I$rbconfig_rubyhdrdir -I$rbconfig_rubyhdrdir/ruby -I$rbconfig_rubyhdrdir/ruby/backward"
+ svn_cv_ruby_includes="-I. -I$rbconfig_rubyhdrdir"
if test -d "$rbconfig_rubyarchhdrdir"; then
svn_cv_ruby_includes="$svn_cv_ruby_includes -I$rbconfig_rubyarchhdrdir"
else
@@ -25262,6 +25401,8 @@ fi
SWIG_RB_TEST_VERBOSE="$svn_ruby_test_verbose"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SWIG_RB_TEST_VERBOSE" >&5
$as_echo "$SWIG_RB_TEST_VERBOSE" >&6; }
+
+ SWIG_RB_ERRMSG=""
fi
@@ -25278,6 +25419,10 @@ $as_echo "$SWIG_RB_TEST_VERBOSE" >&6; }
+
+
+
+
;;
*)
@@ -25375,6 +25520,8 @@ $as_echo "$as_me: WARNING: Subversion requires SWIG >= 1.3.24" >&2;}
SWIG_PY_COMPILE="none"
SWIG_PY_LINK="none"
+ SWIG_PY_OPTS="none"
+ SWIG_PY_ERRMSG="check config.log for details"
if test "$PYTHON" != "none"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuring python swig binding" >&5
$as_echo "$as_me: Configuring python swig binding" >&6;}
@@ -25393,48 +25540,170 @@ $as_echo "$ac_cv_python_includes" >&6; }
SWIG_PY_INCLUDES="\$(SWIG_INCLUDES) $ac_cv_python_includes"
if test "$ac_cv_python_includes" = "none"; then
+ SWIG_PY_ERRMSG="no distutils found"
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: python bindings cannot be built without distutils module" >&5
$as_echo "$as_me: WARNING: python bindings cannot be built without distutils module" >&2;}
+ else
+
+ python_header_found="no"
+
+ save_cppflags="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $ac_cv_python_includes"
+ ac_fn_c_check_header_mongrel "$LINENO" "Python.h" "ac_cv_header_Python_h" "$ac_includes_default"
+if test "x$ac_cv_header_Python_h" = xyes; then :
+
+ python_header_found="yes"
+
+fi
+
+
+ CPPFLAGS="$save_cppflags"
+
+ if test "$python_header_found" = "no"; then
+ SWIG_PY_ERRMSG="no Python.h found"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Python.h not found; disabling python swig bindings" >&5
+$as_echo "$as_me: WARNING: Python.h not found; disabling python swig bindings" >&2;}
+ else
+
+ py3c_found=no
+ py3c_skip=no
+
+
+# Check whether --with-py3c was given.
+if test "${with_py3c+set}" = set; then :
+ withval=$with_py3c;
+ if test "$withval" = "yes"; then
+ py3c_skip=no
+ elif test "$withval" = "no"; then
+ py3c_skip=yes
+ else
+ py3c_skip=no
+ py3c_prefix="$withval"
+ fi
+
+fi
+
+
+ if test "$py3c_skip" = "yes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Skipping configure of py3c" >&5
+$as_echo "$as_me: Skipping configure of py3c" >&6;}
+ else
+ if test -n "$py3c_prefix"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: py3c library configuration via prefix $py3c_prefix" >&5
+$as_echo "$as_me: py3c library configuration via prefix $py3c_prefix" >&6;}
+
+ if test "$ac_cv_python_includes" = "none"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: py3c cannot be used without distutils module" >&5
+$as_echo "$as_me: WARNING: py3c cannot be used without distutils module" >&2;}
+ fi
+
+ save_cppflags="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $ac_cv_python_includes -I$py3c_prefix/include"
+ for ac_header in py3c.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "py3c.h" "ac_cv_header_py3c_h" "$ac_includes_default"
+if test "x$ac_cv_header_py3c_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_PY3C_H 1
+_ACEOF
+
+ py3c_found="yes"
+ SVN_PY3C_INCLUDES="-I$py3c_prefix/include"
+
+fi
+
+done
+
+ CPPFLAGS="$save_cppflags"
+ else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: py3c library configuration via pkg-config" >&5
+$as_echo "$as_me: py3c library configuration via pkg-config" >&6;}
+ if test -n "$PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for py3c library" >&5
+$as_echo_n "checking for py3c library... " >&6; }
+ if $PKG_CONFIG py3c --exists; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ py3c_found=yes
+ SVN_PY3C_INCLUDES=`$PKG_CONFIG py3c --cflags`
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
+ fi
+
+
+ if test "$py3c_found" = "no"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: py3c library configuration without pkg-config" >&5
+$as_echo "$as_me: py3c library configuration without pkg-config" >&6;}
+
+ if test "$ac_cv_python_includes" = "none"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: py3c cannot be used without distutils module" >&5
+$as_echo "$as_me: WARNING: py3c cannot be used without distutils module" >&2;}
+ fi
+
+ save_cppflags="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $ac_cv_python_includes"
+ ac_fn_c_check_header_mongrel "$LINENO" "py3c.h" "ac_cv_header_py3c_h" "$ac_includes_default"
+if test "x$ac_cv_header_py3c_h" = xyes; then :
+
+ py3c_found="yes"
+
+fi
+
+
+ CPPFLAGS="$save_cppflags"
+ fi
+ fi
+ fi
+
+
+
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiling Python extensions" >&5
+ if test "$py3c_found" = "no"; then
+ SWIG_PY_ERRMSG="py3c library not found"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: py3c library not found; disabling python swig bindings" >&5
+$as_echo "$as_me: WARNING: py3c library not found; disabling python swig bindings" >&2;}
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiling Python extensions" >&5
$as_echo_n "checking for compiling Python extensions... " >&6; }
if ${ac_cv_python_compile+:} false; then :
$as_echo_n "(cached) " >&6
else
- ac_cv_python_compile="`$PYTHON ${abs_srcdir}/build/get-py-info.py --compile`"
+ ac_cv_python_compile="`$PYTHON ${abs_srcdir}/build/get-py-info.py --compile`"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_python_compile" >&5
$as_echo "$ac_cv_python_compile" >&6; }
- SWIG_PY_COMPILE="$ac_cv_python_compile $CFLAGS"
+ SWIG_PY_COMPILE="$ac_cv_python_compile $CFLAGS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for linking Python extensions" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for linking Python extensions" >&5
$as_echo_n "checking for linking Python extensions... " >&6; }
if ${ac_cv_python_link+:} false; then :
$as_echo_n "(cached) " >&6
else
- ac_cv_python_link="`$PYTHON ${abs_srcdir}/build/get-py-info.py --link`"
+ ac_cv_python_link="`$PYTHON ${abs_srcdir}/build/get-py-info.py --link`"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_python_link" >&5
$as_echo "$ac_cv_python_link" >&6; }
- SWIG_PY_LINK="$ac_cv_python_link"
+ SWIG_PY_LINK="$ac_cv_python_link"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for linking Python libraries" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for linking Python libraries" >&5
$as_echo_n "checking for linking Python libraries... " >&6; }
if ${ac_cv_python_libs+:} false; then :
$as_echo_n "(cached) " >&6
else
- ac_cv_python_libs="`$PYTHON ${abs_srcdir}/build/get-py-info.py --libs`"
+ ac_cv_python_libs="`$PYTHON ${abs_srcdir}/build/get-py-info.py --libs`"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_python_libs" >&5
$as_echo "$ac_cv_python_libs" >&6; }
- SWIG_PY_LIBS="`
+ SWIG_PY_LIBS="`
input_flags="$ac_cv_python_libs"
output_flags=""
filtered_dirs="/lib /lib64 /usr/lib /usr/lib64"
@@ -25455,69 +25724,52 @@ $as_echo "$ac_cv_python_libs" >&6; }
fi
`"
- SVN_PYCFMT_SAVE_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for apr_int64_t Python/C API format string" >&5
-$as_echo_n "checking for apr_int64_t Python/C API format string... " >&6; }
-if ${svn_cv_pycfmt_apr_int64_t+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python >= 3" >&5
+$as_echo_n "checking for Python >= 3... " >&6; }
+if ${ac_cv_python_is_py3+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <apr.h>
- MaTcHtHiS APR_INT64_T_FMT EnDeNd
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "MaTcHtHiS +\"lld\" +EnDeNd" >/dev/null 2>&1; then :
- svn_cv_pycfmt_apr_int64_t="L"
-fi
-rm -f conftest*
+ ac_cv_python_is_py3="no"
+ $PYTHON -c 'import sys; sys.exit(0x3000000 > sys.hexversion)' && \
+ ac_cv_python_is_py3="yes"
- fi
- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-r
- #include <apr.h>
- MaTcHtHiS APR_INT64_T_FMT EnDeNd
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "MaTcHtHiS +\"ld\" +EnDeNd" >/dev/null 2>&1; then :
- svn_cv_pycfmt_apr_int64_t="l"
fi
-rm -f conftest*
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_python_is_py3" >&5
+$as_echo "$ac_cv_python_is_py3" >&6; }
- fi
- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <apr.h>
- MaTcHtHiS APR_INT64_T_FMT EnDeNd
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "MaTcHtHiS +\"d\" +EnDeNd" >/dev/null 2>&1; then :
- svn_cv_pycfmt_apr_int64_t="i"
-fi
-rm -f conftest*
+ if test "$ac_cv_python_is_py3" = "yes"; then
+ if test "$SWIG_VERSION" -ge "300010"; then
+ SWIG_PY_ERRMSG=""
+ else
+ SWIG_PY_ERRMSG="SWIG version is not suitable"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Subversion Python bindings for Python 3 require SWIG 3.0.10 or newer" >&5
+$as_echo "$as_me: WARNING: Subversion Python bindings for Python 3 require SWIG 3.0.10 or newer" >&2;}
+ fi
+ if test "$SWIG_VERSION" -lt "400000"; then
+ SWIG_PY_OPTS="-python -py3 -nofastunpack -modern"
+ else
+ SWIG_PY_OPTS="-python -py3 -nofastunpack"
+ fi
+ else
+ if test "$SWIG_VERSION" -lt "400000"; then
+ SWIG_PY_OPTS="-python -classic"
+ SWIG_PY_ERRMSG=""
+ else
+ SWIG_PY_OPTS="-python -nofastunpack"
+ SWIG_PY_ERRMSG="SWIG version is not suitable"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Subversion Python bindings for Python 2 require 1.3.24 <= SWIG < 4.0.0" >&5
+$as_echo "$as_me: WARNING: Subversion Python bindings for Python 2 require 1.3.24 <= SWIG < 4.0.0" >&2;}
+ fi
+ fi
+ fi
fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $svn_cv_pycfmt_apr_int64_t" >&5
-$as_echo "$svn_cv_pycfmt_apr_int64_t" >&6; }
- CPPFLAGS="$SVN_PYCFMT_SAVE_CPPFLAGS"
- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
- as_fn_error $? "failed to recognize APR_INT64_T_FMT on this platform" "$LINENO" 5
fi
-cat >>confdefs.h <<_ACEOF
-#define SVN_APR_INT64_T_PYCFMT "$svn_cv_pycfmt_apr_int64_t"
-_ACEOF
-
fi
+ SWIG_PL_ERRMSG="check config.log for details"
if test "$PERL" != "none"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking perl version" >&5
$as_echo_n "checking perl version... " >&6; }
@@ -25547,6 +25799,8 @@ $as_echo "$PERL_VERSION" >&6; }
printf "%s" "${output_flags# }"
fi
`"
+
+ SWIG_PL_ERRMSG=""
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: perl bindings require perl 5.8.0 or newer." >&5
$as_echo "$as_me: WARNING: perl bindings require perl 5.8.0 or newer." >&2;}
@@ -25555,7 +25809,14 @@ $as_echo "$as_me: WARNING: perl bindings require perl 5.8.0 or newer." >&2;}
SWIG_RB_COMPILE="none"
SWIG_RB_LINK="none"
+ SWIG_RB_ERRMSG="check config.log for details"
if test "$RUBY" != "none"; then
+ if test x"$SWIG_VERSION" = x"3""00""008"; then
+ # Use a local variable to escape the '#' sign.
+ ruby_swig_issue_602='https://subversion.apache.org/docs/release-notes/1.11#ruby-swig-issue-602'
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ruby bindings are known not to support swig 3.0.8; see $ruby_swig_issue_602" >&5
+$as_echo "$as_me: WARNING: Ruby bindings are known not to support swig 3.0.8; see $ruby_swig_issue_602" >&2;}
+ fi
rbconfig="$RUBY -rrbconfig -e "
for var_name in arch archdir CC LDSHARED DLEXT LIBS LIBRUBYARG \
@@ -25575,7 +25836,7 @@ if ${svn_cv_ruby_includes+:} false; then :
else
if test -d "$rbconfig_rubyhdrdir"; then
- svn_cv_ruby_includes="-I. -I$rbconfig_rubyhdrdir -I$rbconfig_rubyhdrdir/ruby -I$rbconfig_rubyhdrdir/ruby/backward"
+ svn_cv_ruby_includes="-I. -I$rbconfig_rubyhdrdir"
if test -d "$rbconfig_rubyarchhdrdir"; then
svn_cv_ruby_includes="$svn_cv_ruby_includes -I$rbconfig_rubyarchhdrdir"
else
@@ -25771,6 +26032,8 @@ fi
SWIG_RB_TEST_VERBOSE="$svn_ruby_test_verbose"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SWIG_RB_TEST_VERBOSE" >&5
$as_echo "$SWIG_RB_TEST_VERBOSE" >&6; }
+
+ SWIG_RB_ERRMSG=""
fi
@@ -25787,6 +26050,10 @@ $as_echo "$SWIG_RB_TEST_VERBOSE" >&6; }
+
+
+
+
;;
esac
@@ -25887,6 +26154,8 @@ $as_echo "$as_me: WARNING: Subversion requires SWIG >= 1.3.24" >&2;}
SWIG_PY_COMPILE="none"
SWIG_PY_LINK="none"
+ SWIG_PY_OPTS="none"
+ SWIG_PY_ERRMSG="check config.log for details"
if test "$PYTHON" != "none"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuring python swig binding" >&5
$as_echo "$as_me: Configuring python swig binding" >&6;}
@@ -25905,48 +26174,170 @@ $as_echo "$ac_cv_python_includes" >&6; }
SWIG_PY_INCLUDES="\$(SWIG_INCLUDES) $ac_cv_python_includes"
if test "$ac_cv_python_includes" = "none"; then
+ SWIG_PY_ERRMSG="no distutils found"
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: python bindings cannot be built without distutils module" >&5
$as_echo "$as_me: WARNING: python bindings cannot be built without distutils module" >&2;}
+ else
+
+ python_header_found="no"
+
+ save_cppflags="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $ac_cv_python_includes"
+ ac_fn_c_check_header_mongrel "$LINENO" "Python.h" "ac_cv_header_Python_h" "$ac_includes_default"
+if test "x$ac_cv_header_Python_h" = xyes; then :
+
+ python_header_found="yes"
+
+fi
+
+
+ CPPFLAGS="$save_cppflags"
+
+ if test "$python_header_found" = "no"; then
+ SWIG_PY_ERRMSG="no Python.h found"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Python.h not found; disabling python swig bindings" >&5
+$as_echo "$as_me: WARNING: Python.h not found; disabling python swig bindings" >&2;}
+ else
+
+ py3c_found=no
+ py3c_skip=no
+
+
+# Check whether --with-py3c was given.
+if test "${with_py3c+set}" = set; then :
+ withval=$with_py3c;
+ if test "$withval" = "yes"; then
+ py3c_skip=no
+ elif test "$withval" = "no"; then
+ py3c_skip=yes
+ else
+ py3c_skip=no
+ py3c_prefix="$withval"
+ fi
+
+fi
+
+
+ if test "$py3c_skip" = "yes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Skipping configure of py3c" >&5
+$as_echo "$as_me: Skipping configure of py3c" >&6;}
+ else
+ if test -n "$py3c_prefix"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: py3c library configuration via prefix $py3c_prefix" >&5
+$as_echo "$as_me: py3c library configuration via prefix $py3c_prefix" >&6;}
+
+ if test "$ac_cv_python_includes" = "none"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: py3c cannot be used without distutils module" >&5
+$as_echo "$as_me: WARNING: py3c cannot be used without distutils module" >&2;}
+ fi
+
+ save_cppflags="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $ac_cv_python_includes -I$py3c_prefix/include"
+ for ac_header in py3c.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "py3c.h" "ac_cv_header_py3c_h" "$ac_includes_default"
+if test "x$ac_cv_header_py3c_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_PY3C_H 1
+_ACEOF
+
+ py3c_found="yes"
+ SVN_PY3C_INCLUDES="-I$py3c_prefix/include"
+
+fi
+
+done
+
+ CPPFLAGS="$save_cppflags"
+ else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: py3c library configuration via pkg-config" >&5
+$as_echo "$as_me: py3c library configuration via pkg-config" >&6;}
+ if test -n "$PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for py3c library" >&5
+$as_echo_n "checking for py3c library... " >&6; }
+ if $PKG_CONFIG py3c --exists; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ py3c_found=yes
+ SVN_PY3C_INCLUDES=`$PKG_CONFIG py3c --cflags`
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
+ fi
+
+
+ if test "$py3c_found" = "no"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: py3c library configuration without pkg-config" >&5
+$as_echo "$as_me: py3c library configuration without pkg-config" >&6;}
+
+ if test "$ac_cv_python_includes" = "none"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: py3c cannot be used without distutils module" >&5
+$as_echo "$as_me: WARNING: py3c cannot be used without distutils module" >&2;}
+ fi
+
+ save_cppflags="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $ac_cv_python_includes"
+ ac_fn_c_check_header_mongrel "$LINENO" "py3c.h" "ac_cv_header_py3c_h" "$ac_includes_default"
+if test "x$ac_cv_header_py3c_h" = xyes; then :
+
+ py3c_found="yes"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiling Python extensions" >&5
+fi
+
+
+ CPPFLAGS="$save_cppflags"
+ fi
+ fi
+ fi
+
+
+
+
+ if test "$py3c_found" = "no"; then
+ SWIG_PY_ERRMSG="py3c library not found"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: py3c library not found; disabling python swig bindings" >&5
+$as_echo "$as_me: WARNING: py3c library not found; disabling python swig bindings" >&2;}
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiling Python extensions" >&5
$as_echo_n "checking for compiling Python extensions... " >&6; }
if ${ac_cv_python_compile+:} false; then :
$as_echo_n "(cached) " >&6
else
- ac_cv_python_compile="`$PYTHON ${abs_srcdir}/build/get-py-info.py --compile`"
+ ac_cv_python_compile="`$PYTHON ${abs_srcdir}/build/get-py-info.py --compile`"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_python_compile" >&5
$as_echo "$ac_cv_python_compile" >&6; }
- SWIG_PY_COMPILE="$ac_cv_python_compile $CFLAGS"
+ SWIG_PY_COMPILE="$ac_cv_python_compile $CFLAGS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for linking Python extensions" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for linking Python extensions" >&5
$as_echo_n "checking for linking Python extensions... " >&6; }
if ${ac_cv_python_link+:} false; then :
$as_echo_n "(cached) " >&6
else
- ac_cv_python_link="`$PYTHON ${abs_srcdir}/build/get-py-info.py --link`"
+ ac_cv_python_link="`$PYTHON ${abs_srcdir}/build/get-py-info.py --link`"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_python_link" >&5
$as_echo "$ac_cv_python_link" >&6; }
- SWIG_PY_LINK="$ac_cv_python_link"
+ SWIG_PY_LINK="$ac_cv_python_link"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for linking Python libraries" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for linking Python libraries" >&5
$as_echo_n "checking for linking Python libraries... " >&6; }
if ${ac_cv_python_libs+:} false; then :
$as_echo_n "(cached) " >&6
else
- ac_cv_python_libs="`$PYTHON ${abs_srcdir}/build/get-py-info.py --libs`"
+ ac_cv_python_libs="`$PYTHON ${abs_srcdir}/build/get-py-info.py --libs`"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_python_libs" >&5
$as_echo "$ac_cv_python_libs" >&6; }
- SWIG_PY_LIBS="`
+ SWIG_PY_LIBS="`
input_flags="$ac_cv_python_libs"
output_flags=""
filtered_dirs="/lib /lib64 /usr/lib /usr/lib64"
@@ -25967,69 +26358,52 @@ $as_echo "$ac_cv_python_libs" >&6; }
fi
`"
- SVN_PYCFMT_SAVE_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for apr_int64_t Python/C API format string" >&5
-$as_echo_n "checking for apr_int64_t Python/C API format string... " >&6; }
-if ${svn_cv_pycfmt_apr_int64_t+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python >= 3" >&5
+$as_echo_n "checking for Python >= 3... " >&6; }
+if ${ac_cv_python_is_py3+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <apr.h>
- MaTcHtHiS APR_INT64_T_FMT EnDeNd
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "MaTcHtHiS +\"lld\" +EnDeNd" >/dev/null 2>&1; then :
- svn_cv_pycfmt_apr_int64_t="L"
-fi
-rm -f conftest*
+ ac_cv_python_is_py3="no"
+ $PYTHON -c 'import sys; sys.exit(0x3000000 > sys.hexversion)' && \
+ ac_cv_python_is_py3="yes"
- fi
- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-r
- #include <apr.h>
- MaTcHtHiS APR_INT64_T_FMT EnDeNd
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "MaTcHtHiS +\"ld\" +EnDeNd" >/dev/null 2>&1; then :
- svn_cv_pycfmt_apr_int64_t="l"
fi
-rm -f conftest*
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_python_is_py3" >&5
+$as_echo "$ac_cv_python_is_py3" >&6; }
- fi
- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <apr.h>
- MaTcHtHiS APR_INT64_T_FMT EnDeNd
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "MaTcHtHiS +\"d\" +EnDeNd" >/dev/null 2>&1; then :
- svn_cv_pycfmt_apr_int64_t="i"
-fi
-rm -f conftest*
+ if test "$ac_cv_python_is_py3" = "yes"; then
+ if test "$SWIG_VERSION" -ge "300010"; then
+ SWIG_PY_ERRMSG=""
+ else
+ SWIG_PY_ERRMSG="SWIG version is not suitable"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Subversion Python bindings for Python 3 require SWIG 3.0.10 or newer" >&5
+$as_echo "$as_me: WARNING: Subversion Python bindings for Python 3 require SWIG 3.0.10 or newer" >&2;}
+ fi
+ if test "$SWIG_VERSION" -lt "400000"; then
+ SWIG_PY_OPTS="-python -py3 -nofastunpack -modern"
+ else
+ SWIG_PY_OPTS="-python -py3 -nofastunpack"
+ fi
+ else
+ if test "$SWIG_VERSION" -lt "400000"; then
+ SWIG_PY_OPTS="-python -classic"
+ SWIG_PY_ERRMSG=""
+ else
+ SWIG_PY_OPTS="-python -nofastunpack"
+ SWIG_PY_ERRMSG="SWIG version is not suitable"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Subversion Python bindings for Python 2 require 1.3.24 <= SWIG < 4.0.0" >&5
+$as_echo "$as_me: WARNING: Subversion Python bindings for Python 2 require 1.3.24 <= SWIG < 4.0.0" >&2;}
+ fi
+ fi
+ fi
fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $svn_cv_pycfmt_apr_int64_t" >&5
-$as_echo "$svn_cv_pycfmt_apr_int64_t" >&6; }
- CPPFLAGS="$SVN_PYCFMT_SAVE_CPPFLAGS"
- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
- as_fn_error $? "failed to recognize APR_INT64_T_FMT on this platform" "$LINENO" 5
fi
-cat >>confdefs.h <<_ACEOF
-#define SVN_APR_INT64_T_PYCFMT "$svn_cv_pycfmt_apr_int64_t"
-_ACEOF
-
fi
+ SWIG_PL_ERRMSG="check config.log for details"
if test "$PERL" != "none"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking perl version" >&5
$as_echo_n "checking perl version... " >&6; }
@@ -26059,6 +26433,8 @@ $as_echo "$PERL_VERSION" >&6; }
printf "%s" "${output_flags# }"
fi
`"
+
+ SWIG_PL_ERRMSG=""
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: perl bindings require perl 5.8.0 or newer." >&5
$as_echo "$as_me: WARNING: perl bindings require perl 5.8.0 or newer." >&2;}
@@ -26067,7 +26443,14 @@ $as_echo "$as_me: WARNING: perl bindings require perl 5.8.0 or newer." >&2;}
SWIG_RB_COMPILE="none"
SWIG_RB_LINK="none"
+ SWIG_RB_ERRMSG="check config.log for details"
if test "$RUBY" != "none"; then
+ if test x"$SWIG_VERSION" = x"3""00""008"; then
+ # Use a local variable to escape the '#' sign.
+ ruby_swig_issue_602='https://subversion.apache.org/docs/release-notes/1.11#ruby-swig-issue-602'
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ruby bindings are known not to support swig 3.0.8; see $ruby_swig_issue_602" >&5
+$as_echo "$as_me: WARNING: Ruby bindings are known not to support swig 3.0.8; see $ruby_swig_issue_602" >&2;}
+ fi
rbconfig="$RUBY -rrbconfig -e "
for var_name in arch archdir CC LDSHARED DLEXT LIBS LIBRUBYARG \
@@ -26087,7 +26470,7 @@ if ${svn_cv_ruby_includes+:} false; then :
else
if test -d "$rbconfig_rubyhdrdir"; then
- svn_cv_ruby_includes="-I. -I$rbconfig_rubyhdrdir -I$rbconfig_rubyhdrdir/ruby -I$rbconfig_rubyhdrdir/ruby/backward"
+ svn_cv_ruby_includes="-I. -I$rbconfig_rubyhdrdir"
if test -d "$rbconfig_rubyarchhdrdir"; then
svn_cv_ruby_includes="$svn_cv_ruby_includes -I$rbconfig_rubyarchhdrdir"
else
@@ -26283,6 +26666,8 @@ fi
SWIG_RB_TEST_VERBOSE="$svn_ruby_test_verbose"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SWIG_RB_TEST_VERBOSE" >&5
$as_echo "$SWIG_RB_TEST_VERBOSE" >&6; }
+
+ SWIG_RB_ERRMSG=""
fi
@@ -26300,6 +26685,10 @@ $as_echo "$SWIG_RB_TEST_VERBOSE" >&6; }
+
+
+
+
fi
@@ -26699,6 +27088,578 @@ fi
+# ==== SVN++ =================================================================
+
+do_svnxx_build=no
+# Check whether --enable-svnxx was given.
+if test "${enable_svnxx+set}" = set; then :
+ enableval=$enable_svnxx; if test "$enableval" = "yes" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Enabling the C++ bindings" >&5
+$as_echo "$as_me: Enabling the C++ bindings" >&6;}
+ do_svnxx_build=yes
+ fi
+
+fi
+
+
+do_svnxx_test_build=no
+# Check whether --enable-svnxx-tests was given.
+if test "${enable_svnxx_tests+set}" = set; then :
+ enableval=$enable_svnxx_tests; if test "$enableval" = "yes" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Enabling tests for the C++ bindings" >&5
+$as_echo "$as_me: Enabling tests for the C++ bindings" >&6;}
+ do_svnxx_test_build=yes
+ fi
+
+fi
+
+
+
+
+# Check whether --with-boost was given.
+if test "${with_boost+set}" = set; then :
+ withval=$with_boost;
+ case $withval in #(
+ no) :
+ want_boost="no";_AX_BOOST_BASE_boost_path="" ;; #(
+ yes) :
+ want_boost="yes";_AX_BOOST_BASE_boost_path="" ;; #(
+ *) :
+ want_boost="yes";_AX_BOOST_BASE_boost_path="$withval" ;;
+esac
+
+else
+ want_boost="yes"
+fi
+
+
+
+
+# Check whether --with-boost-libdir was given.
+if test "${with_boost_libdir+set}" = set; then :
+ withval=$with_boost_libdir;
+ if test -d "$withval"; then :
+ _AX_BOOST_BASE_boost_lib_path="$withval"
+else
+ as_fn_error $? "--with-boost-libdir expected directory name" "$LINENO" 5
+fi
+
+else
+ _AX_BOOST_BASE_boost_lib_path=""
+fi
+
+
+BOOST_LDFLAGS=""
+BOOST_CPPFLAGS=""
+if test "x$want_boost" = "xyes"; then :
+
+
+ if test "x1.58" = "x"; then :
+ _AX_BOOST_BASE_TONUMERICVERSION_req="1.20.0"
+else
+ _AX_BOOST_BASE_TONUMERICVERSION_req="1.58"
+fi
+ _AX_BOOST_BASE_TONUMERICVERSION_req_shorten=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '\([0-9]*\.[0-9]*\)'`
+ _AX_BOOST_BASE_TONUMERICVERSION_req_major=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '\([0-9]*\)'`
+ if test "x$_AX_BOOST_BASE_TONUMERICVERSION_req_major" = "x"; then :
+ as_fn_error $? "You should at least specify libboost major version" "$LINENO" 5
+fi
+ _AX_BOOST_BASE_TONUMERICVERSION_req_minor=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '[0-9]*\.\([0-9]*\)'`
+ if test "x$_AX_BOOST_BASE_TONUMERICVERSION_req_minor" = "x"; then :
+ _AX_BOOST_BASE_TONUMERICVERSION_req_minor="0"
+fi
+ _AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
+ if test "X$_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor" = "X"; then :
+ _AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor="0"
+fi
+ _AX_BOOST_BASE_TONUMERICVERSION_RET=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req_major \* 100000 \+ $_AX_BOOST_BASE_TONUMERICVERSION_req_minor \* 100 \+ $_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor`
+ WANT_BOOST_VERSION=$_AX_BOOST_BASE_TONUMERICVERSION_RET
+
+ succeeded=no
+
+
+
+ case ${host_cpu} in #(
+ x86_64) :
+ libsubdirs="lib64 libx32 lib lib64" ;; #(
+ ppc64|powerpc64|s390x|sparc64|aarch64|ppc64le|powerpc64le|riscv64) :
+ libsubdirs="lib64 lib lib64" ;; #(
+ *) :
+ libsubdirs="lib"
+ ;;
+esac
+
+ case ${host_cpu} in #(
+ i?86) :
+ multiarch_libsubdir="lib/i386-${host_os}" ;; #(
+ *) :
+ multiarch_libsubdir="lib/${host_cpu}-${host_os}"
+ ;;
+esac
+
+ if test "x$_AX_BOOST_BASE_boost_path" != "x"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for boostlib >= 1.58 ($WANT_BOOST_VERSION) includes in \"$_AX_BOOST_BASE_boost_path/include\"" >&5
+$as_echo_n "checking for boostlib >= 1.58 ($WANT_BOOST_VERSION) includes in \"$_AX_BOOST_BASE_boost_path/include\"... " >&6; }
+ if test -d "$_AX_BOOST_BASE_boost_path/include" && test -r "$_AX_BOOST_BASE_boost_path/include"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path/include"
+ for _AX_BOOST_BASE_boost_path_tmp in $multiarch_libsubdir $libsubdirs; do
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for boostlib >= 1.58 ($WANT_BOOST_VERSION) lib path in \"$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp\"" >&5
+$as_echo_n "checking for boostlib >= 1.58 ($WANT_BOOST_VERSION) lib path in \"$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp\"... " >&6; }
+ if test -d "$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp" && test -r "$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp" ; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp";
+ break;
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+ done
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+else
+
+ if test X"$cross_compiling" = Xyes; then
+ search_libsubdirs=$multiarch_libsubdir
+ else
+ search_libsubdirs="$multiarch_libsubdir $libsubdirs"
+ fi
+ for _AX_BOOST_BASE_boost_path_tmp in /usr /usr/local /opt /opt/local ; do
+ if test -d "$_AX_BOOST_BASE_boost_path_tmp/include/boost" && test -r "$_AX_BOOST_BASE_boost_path_tmp/include/boost" ; then
+ for libsubdir in $search_libsubdirs ; do
+ if ls "$_AX_BOOST_BASE_boost_path_tmp/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
+ done
+ BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_path_tmp/$libsubdir"
+ BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path_tmp/include"
+ break;
+ fi
+ done
+
+fi
+
+ if test "x$_AX_BOOST_BASE_boost_lib_path" != "x"; then :
+ BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_lib_path"
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for boostlib >= 1.58 ($WANT_BOOST_VERSION)" >&5
+$as_echo_n "checking for boostlib >= 1.58 ($WANT_BOOST_VERSION)... " >&6; }
+ CPPFLAGS_SAVED="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
+ export CPPFLAGS
+
+ LDFLAGS_SAVED="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
+ export LDFLAGS
+
+
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <boost/version.hpp>
+
+int
+main ()
+{
+
+(void) ((void)sizeof(char[1 - 2*!!((BOOST_VERSION) < ($WANT_BOOST_VERSION))]));
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ succeeded=yes
+ found_system=yes
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+ if test "x$succeeded" != "xyes" ; then
+ CPPFLAGS="$CPPFLAGS_SAVED"
+ LDFLAGS="$LDFLAGS_SAVED"
+ BOOST_CPPFLAGS=
+ if test -z "$_AX_BOOST_BASE_boost_lib_path" ; then
+ BOOST_LDFLAGS=
+ fi
+ _version=0
+ if test -n "$_AX_BOOST_BASE_boost_path" ; then
+ if test -d "$_AX_BOOST_BASE_boost_path" && test -r "$_AX_BOOST_BASE_boost_path"; then
+ for i in `ls -d $_AX_BOOST_BASE_boost_path/include/boost-* 2>/dev/null`; do
+ _version_tmp=`echo $i | sed "s#$_AX_BOOST_BASE_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
+ V_CHECK=`expr $_version_tmp \> $_version`
+ if test "x$V_CHECK" = "x1" ; then
+ _version=$_version_tmp
+ fi
+ VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
+ BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path/include/boost-$VERSION_UNDERSCORE"
+ done
+ if test -z "$BOOST_CPPFLAGS"; then
+ if test -d "$_AX_BOOST_BASE_boost_path/boost" && test -r "$_AX_BOOST_BASE_boost_path/boost"; then
+ BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path"
+ fi
+ fi
+ if test -n "$BOOST_CPPFLAGS" && test -z "$BOOST_LDFLAGS"; then
+ for libsubdir in $libsubdirs ; do
+ if ls "$_AX_BOOST_BASE_boost_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
+ done
+ BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_path/$libsubdir"
+ fi
+ fi
+ else
+ if test "x$cross_compiling" != "xyes" ; then
+ for _AX_BOOST_BASE_boost_path in /usr /usr/local /opt /opt/local ; do
+ if test -d "$_AX_BOOST_BASE_boost_path" && test -r "$_AX_BOOST_BASE_boost_path" ; then
+ for i in `ls -d $_AX_BOOST_BASE_boost_path/include/boost-* 2>/dev/null`; do
+ _version_tmp=`echo $i | sed "s#$_AX_BOOST_BASE_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
+ V_CHECK=`expr $_version_tmp \> $_version`
+ if test "x$V_CHECK" = "x1" ; then
+ _version=$_version_tmp
+ best_path=$_AX_BOOST_BASE_boost_path
+ fi
+ done
+ fi
+ done
+
+ VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
+ BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE"
+ if test -z "$_AX_BOOST_BASE_boost_lib_path" ; then
+ for libsubdir in $libsubdirs ; do
+ if ls "$best_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
+ done
+ BOOST_LDFLAGS="-L$best_path/$libsubdir"
+ fi
+ fi
+
+ if test -n "$BOOST_ROOT" ; then
+ for libsubdir in $libsubdirs ; do
+ if ls "$BOOST_ROOT/stage/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
+ done
+ if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/$libsubdir" && test -r "$BOOST_ROOT/stage/$libsubdir"; then
+ version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'`
+ stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'`
+ stage_version_shorten=`expr $stage_version : '\([0-9]*\.[0-9]*\)'`
+ V_CHECK=`expr $stage_version_shorten \>\= $_version`
+ if test "x$V_CHECK" = "x1" && test -z "$_AX_BOOST_BASE_boost_lib_path" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: We will use a staged boost library from $BOOST_ROOT" >&5
+$as_echo "$as_me: We will use a staged boost library from $BOOST_ROOT" >&6;}
+ BOOST_CPPFLAGS="-I$BOOST_ROOT"
+ BOOST_LDFLAGS="-L$BOOST_ROOT/stage/$libsubdir"
+ fi
+ fi
+ fi
+ fi
+
+ CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
+ export CPPFLAGS
+ LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
+ export LDFLAGS
+
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <boost/version.hpp>
+
+int
+main ()
+{
+
+(void) ((void)sizeof(char[1 - 2*!!((BOOST_VERSION) < ($WANT_BOOST_VERSION))]));
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ succeeded=yes
+ found_system=yes
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ fi
+
+ if test "x$succeeded" != "xyes" ; then
+ if test "x$_version" = "x0" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: We could not detect the boost libraries (version 1.58 or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation." >&5
+$as_echo "$as_me: We could not detect the boost libraries (version 1.58 or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation." >&6;}
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Your boost libraries seems to old (version $_version)." >&5
+$as_echo "$as_me: Your boost libraries seems to old (version $_version)." >&6;}
+ fi
+ # execute ACTION-IF-NOT-FOUND (if present):
+
+ if test "$do_svnxx_test_build" = "yes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Tests for the C++ bindings require Boost and Boost.Test" >&5
+$as_echo "$as_me: WARNING: Tests for the C++ bindings require Boost and Boost.Test" >&2;}
+ do_svnxx_test_build=no
+ fi
+
+ else
+
+$as_echo "#define HAVE_BOOST /**/" >>confdefs.h
+
+ # execute ACTION-IF-FOUND (if present):
+
+ if test "$do_svnxx_test_build" = "yes"; then
+
+
+# Check whether --with-boost-unit-test-framework was given.
+if test "${with_boost_unit_test_framework+set}" = set; then :
+ withval=$with_boost_unit_test_framework;
+ if test "$withval" = "no"; then
+ want_boost="no"
+ elif test "$withval" = "yes"; then
+ want_boost="yes"
+ ax_boost_user_unit_test_framework_lib=""
+ else
+ want_boost="yes"
+ ax_boost_user_unit_test_framework_lib="$withval"
+ fi
+
+else
+ want_boost="yes"
+
+fi
+
+
+ if test "x$want_boost" = "xyes"; then
+
+ CPPFLAGS_SAVED="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
+ export CPPFLAGS
+
+ LDFLAGS_SAVED="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
+ export LDFLAGS
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Boost::Unit_Test_Framework library is available" >&5
+$as_echo_n "checking whether the Boost::Unit_Test_Framework library is available... " >&6; }
+if ${ax_cv_boost_unit_test_framework+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <boost/test/unit_test.hpp>
+int
+main ()
+{
+using boost::unit_test::test_suite;
+ test_suite* test= BOOST_TEST_SUITE( "Unit test example 1" ); if (test == NULL) { return 1; } else { return 0; }
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ax_cv_boost_unit_test_framework=yes
+else
+ ax_cv_boost_unit_test_framework=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_boost_unit_test_framework" >&5
+$as_echo "$ax_cv_boost_unit_test_framework" >&6; }
+ if test "x$ax_cv_boost_unit_test_framework" = "xyes"; then
+
+$as_echo "#define HAVE_BOOST_UNIT_TEST_FRAMEWORK /**/" >>confdefs.h
+
+ BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/[^\/]*//'`
+
+ if test "x$ax_boost_user_unit_test_framework_lib" = "x"; then
+ saved_ldflags="${LDFLAGS}"
+ for monitor_library in `ls $BOOSTLIBDIR/libboost_unit_test_framework*.so* $BOOSTLIBDIR/libboost_unit_test_framework*.dylib* $BOOSTLIBDIR/libboost_unit_test_framework*.a* 2>/dev/null` ; do
+ if test -r $monitor_library ; then
+ libextension=`echo $monitor_library | sed 's,.*/,,' | sed -e 's;^lib\(boost_unit_test_framework.*\)\.so.*$;\1;' -e 's;^lib\(boost_unit_test_framework.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_unit_test_framework.*\)\.a.*$;\1;'`
+ ax_lib=${libextension}
+ link_unit_test_framework="yes"
+ else
+ link_unit_test_framework="no"
+ fi
+
+ if test "x$link_unit_test_framework" = "xyes"; then
+ BOOST_UNIT_TEST_FRAMEWORK_LIB="-l$ax_lib"
+
+ break
+ fi
+ done
+ if test "x$link_unit_test_framework" != "xyes"; then
+ for libextension in `ls $BOOSTLIBDIR/boost_unit_test_framework*.dll* $BOOSTLIBDIR/boost_unit_test_framework*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_unit_test_framework.*\)\.dll.*$;\1;' -e 's;^\(boost_unit_test_framework.*\)\.a.*$;\1;'` ; do
+ ax_lib=${libextension}
+ as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_exit" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for exit in -l$ax_lib" >&5
+$as_echo_n "checking for exit in -l$ax_lib... " >&6; }
+if eval \${$as_ac_Lib+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$ax_lib $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char exit ();
+int
+main ()
+{
+return exit ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$as_ac_Lib=yes"
+else
+ eval "$as_ac_Lib=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+eval ac_res=\$$as_ac_Lib
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
+ BOOST_UNIT_TEST_FRAMEWORK_LIB="-l$ax_lib"; link_unit_test_framework="yes"; break
+else
+ link_unit_test_framework="no"
+fi
+
+ done
+ fi
+ else
+ link_unit_test_framework="no"
+ saved_ldflags="${LDFLAGS}"
+ for ax_lib in boost_unit_test_framework-$ax_boost_user_unit_test_framework_lib $ax_boost_user_unit_test_framework_lib ; do
+ if test "x$link_unit_test_framework" = "xyes"; then
+ break;
+ fi
+ for unittest_library in `ls $BOOSTLIBDIR/lib${ax_lib}.so* $BOOSTLIBDIR/lib${ax_lib}.a* 2>/dev/null` ; do
+ if test -r $unittest_library ; then
+ libextension=`echo $unittest_library | sed 's,.*/,,' | sed -e 's;^lib\(boost_unit_test_framework.*\)\.so.*$;\1;' -e 's;^lib\(boost_unit_test_framework.*\)\.a*$;\1;'`
+ ax_lib=${libextension}
+ link_unit_test_framework="yes"
+ else
+ link_unit_test_framework="no"
+ fi
+
+ if test "x$link_unit_test_framework" = "xyes"; then
+ BOOST_UNIT_TEST_FRAMEWORK_LIB="-l$ax_lib"
+
+ break
+ fi
+ done
+ done
+ fi
+ if test "x$ax_lib" = "x"; then
+ as_fn_error $? "Could not find a version of the library!" "$LINENO" 5
+ fi
+ if test "x$link_unit_test_framework" != "xyes"; then
+ as_fn_error $? "Could not link against $ax_lib !" "$LINENO" 5
+ fi
+ fi
+
+ CPPFLAGS="$CPPFLAGS_SAVED"
+ LDFLAGS="$LDFLAGS_SAVED"
+ fi
+
+ fi
+
+ fi
+
+ CPPFLAGS="$CPPFLAGS_SAVED"
+ LDFLAGS="$LDFLAGS_SAVED"
+
+
+fi
+
+
+
+
+if test "$do_svnxx_test_build" = "yes"; then
+ if test "$want_boost" != "yes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Tests for the C++ bindings require Boost and Boost.Test" >&5
+$as_echo "$as_me: WARNING: Tests for the C++ bindings require Boost and Boost.Test" >&2;}
+ do_svnxx_test_build=no
+ SVN_BUILD_SVNXX_TESTS=false
+ else
+ if test "$do_svnxx_build" != "yes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Enabling the C++ bindings because their tests are enabled" >&5
+$as_echo "$as_me: WARNING: Enabling the C++ bindings because their tests are enabled" >&2;}
+ do_svnxx_build=yes
+ fi
+ SVN_BUILD_SVNXX_TESTS=true
+ fi
+else
+ SVN_BUILD_SVNXX_TESTS=false
+fi
+
+if test "$do_svnxx_build" = "yes"; then
+ SVN_BUILD_SVNXX=true
+else
+ SVN_BUILD_SVNXX=false
+fi
+
+
+
+
# ==== JavaHL ================================================================
do_javahl_build=no
@@ -26880,7 +27841,7 @@ fi
# Ensure that SWIG is checked after reconfiguration.
-rm -f .swig_checked
+rm -f .swig_checked .swig_pl_checked .swig_py_checked .swig_rb_checked
cat >>confdefs.h <<_ACEOF
@@ -27400,7 +28361,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by subversion $as_me 1.10.2, which was
+This file was extended by subversion $as_me 1.14.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -27466,7 +28427,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-subversion config.status 1.10.2
+subversion config.status 1.14.0
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 5c646bc22c26..07103e550a81 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@ AC_PREREQ(2.59)
dnl Get the version of Subversion, using m4's esyscmd() command to do this
dnl at m4-time, since AC_INIT() requires it then.
AC_INIT([subversion],
- [esyscmd(python build/getversion.py SVN subversion/include/svn_version.h)],
+ [esyscmd($PYTHON build/getversion.py SVN subversion/include/svn_version.h)],
[http://subversion.apache.org/])
AC_CONFIG_SRCDIR(subversion/include/svn_types.h)
@@ -91,7 +91,7 @@ AC_SUBST([MKDIR])
dnl verify apr version and set apr flags
dnl These regular expressions should not contain "\(" and "\)".
-APR_VER_REGEXES=["1\.[3-9]\. 2\."]
+APR_VER_REGEXES=["1\.[5-9]\. 2\."]
SVN_LIB_APR($APR_VER_REGEXES)
@@ -593,7 +593,7 @@ if test "$with_old_gnome_keyring" != "no"; then
[Is GNOME Keyring support enabled?])
CPPFLAGS="$old_CPPFLAGS"
SVN_GNOME_KEYRING_LIBS="`$PKG_CONFIG --libs glib-2.0 gnome-keyring-1`"
- SVN_GNOME_KEYRING_PCLIBS="glib-2.0 gnome-keyring-1"
+ SVN_GNOME_KEYRING_PCLIBS="glib-2.0, gnome-keyring-1"
else
AC_MSG_RESULT([no])
if test "$with_old_gnome_keyring" = "yes"; then
@@ -640,29 +640,6 @@ AC_SUBST(SVN_GNOME_KEYRING_LIBS)
dnl LibSecret -------------------
SVN_LIB_SECRET
-dnl Googlemock -----------------
-AC_ARG_ENABLE([googlemock],
- AS_HELP_STRING([--disable-googlemock],
- [Do not use the Googlemock testing framework]),
- [],
- [enable_googlemock=yes])
-
-AC_SUBST([GOOGLEMOCK_SRCDIR], [$abs_srcdir/googlemock])
-AC_MSG_CHECKING([whether use Googlemock])
-if test "$enable_googlemock" != "no"; then
- if test -d "$GOOGLEMOCK_SRCDIR"; then
- AC_MSG_RESULT([yes])
- SVN_USE_GOOGLEMOCK=true
- else
- AC_MSG_RESULT([no])
- SVN_USE_GOOGLEMOCK=false
- fi
-else
- AC_MSG_RESULT([no])
- SVN_USE_GOOGLEMOCK=false
-fi
-AC_SUBST([SVN_USE_GOOGLEMOCK])
-
dnl Ev2 experimental features ----------------------
dnl Note: The Ev2 implementations will be built unconditionally, but by
dnl providing this flag, users can choose to use the currently-shimmed Ev2
@@ -867,18 +844,21 @@ fi
dnl plaintext passwords -------------------
AC_ARG_ENABLE(plaintext-password-storage,
-AS_HELP_STRING([--disable-plaintext-password-storage],
- [Disable on-disk caching of plaintext passwords and passphrases.
- (Leaving this functionality enabled will not force Subversion
+AS_HELP_STRING([--enable-plaintext-password-storage],
+ [Enable on-disk caching of plaintext passwords and passphrases.
+ (Enabling this functionality will not force Subversion
to store passwords in plaintext, but does permit users to
explicitly allow that behavior via runtime configuration.)]),
-[
- if test "$enableval" = "no"; then
- AC_MSG_NOTICE([Disabling plaintext password/passphrase storage])
- AC_DEFINE(SVN_DISABLE_PLAINTEXT_PASSWORD_STORAGE, 1,
- [Defined if plaintext password/passphrase storage is disabled])
- fi
-])
+[plaintext_passwordd_storage="$enableval"],
+[plaintext_passwordd_storage="no"])
+
+if test "$plaintext_passwordd_storage" = "yes"; then
+ AC_MSG_WARN([Enabling plaintext password/passphrase storage])
+else
+ AC_MSG_NOTICE([Disabling plaintext password/passphrase storage])
+ AC_DEFINE(SVN_DISABLE_PLAINTEXT_PASSWORD_STORAGE, 1,
+ [Defined if plaintext password/passphrase storage is disabled])
+fi
dnl Build and install rules -------------------
@@ -948,8 +928,9 @@ AC_FUNC_VPRINTF
dnl check for functions needed in special file handling
AC_CHECK_FUNCS(symlink readlink)
-dnl check for uname
+dnl check for uname and ELF headers
AC_CHECK_HEADERS(sys/utsname.h, [AC_CHECK_FUNCS(uname)], [])
+AC_CHECK_HEADERS(elf.h)
dnl check for termios
AC_CHECK_HEADER(termios.h,[
@@ -1153,7 +1134,6 @@ if test "$enable_optimization" = "yes"; then
SVN_CFLAGS_ADD_IFELSE([-O1],[],[
SVN_CFLAGS_ADD_IFELSE([-O])])])])
SVN_CFLAGS_ADD_IFELSE([-Wno-clobbered])
- SVN_CFLAGS_ADD_IFELSE([-flto])
fi
fi
if test -z ["`echo $CXXUSERFLAGS' ' | $EGREP -- '-O[^ ]* '`"]; then
@@ -1169,7 +1149,6 @@ if test "$enable_optimization" = "yes"; then
SVN_CXXFLAGS_ADD_IFELSE([-O1],[],[
SVN_CXXFLAGS_ADD_IFELSE([-O])])])])
SVN_CXXFLAGS_ADD_IFELSE([-Wno-clobbered])
- SVN_CXXFLAGS_ADD_IFELSE([-flto])
fi
fi
elif test "$enable_optimization" = "no"; then
@@ -1183,9 +1162,11 @@ fi
dnl Dump the current compiler options
AC_MSG_NOTICE([C compiler flags: $CFLAGS])
+AC_MSG_NOTICE([ language-level: $CMODEFLAGS])
AC_MSG_NOTICE([ user-defined: $CUSERFLAGS])
AC_MSG_NOTICE([ maintainer-mode: $CMAINTAINERFLAGS])
AC_MSG_NOTICE([C++ compiler flags: $CXXFLAGS])
+AC_MSG_NOTICE([ language-level: $CXXMODEFLAGS])
AC_MSG_NOTICE([ user-defined: $CXXUSERFLAGS])
AC_MSG_NOTICE([ maintainer-mode: $CXXMAINTAINERFLAGS])
@@ -1292,7 +1273,7 @@ AS_HELP_STRING([--enable-gprof],
# Scripting and Bindings languages
# Python: Used for testsuite, and bindings
-
+AC_ARG_VAR([PYTHON], [Python interpreter command])
PYTHON="`$abs_srcdir/build/find_python.sh`"
if test -z "$PYTHON"; then
@@ -1306,7 +1287,7 @@ fi
AC_PATH_PROGS(PYTHON, "$PYTHON", none)
# The minimum version for the JVM runtime for our Java bytecode.
-JAVA_OLDEST_WORKING_VER='1.6'
+JAVA_OLDEST_WORKING_VER='1.8'
# SVN_CHECK_JDK sets $JAVA_CLASSPATH
SVN_CHECK_JDK($JAVA_OLDEST_WORKING_VER)
@@ -1454,6 +1435,69 @@ AC_SUBST(SVN_FS_LIB_DEPS)
AC_SUBST(SVN_FS_LIB_INSTALL_DEPS)
AC_SUBST(SVN_FS_LIB_LINK)
+# ==== SVN++ =================================================================
+
+dnl Possibly compile SVN++
+do_svnxx_build=no
+AC_ARG_ENABLE(svnxx,
+ AS_HELP_STRING([--enable-svnxx],
+ [Enable compilation of the C++ bindings (requires C++)]),
+ [ if test "$enableval" = "yes" ; then
+ AC_MSG_NOTICE([Enabling the C++ bindings])
+ do_svnxx_build=yes
+ fi
+ ])
+
+dnl Possibly compile SVN++ tests
+do_svnxx_test_build=no
+AC_ARG_ENABLE(svnxx-tests,
+ AS_HELP_STRING([--enable-svnxx-tests],
+ [Enable compilation of tests for the C++ bindings
+ (implies --enable-svnxx, requires Boost and Boost.Test)]),
+ [ if test "$enableval" = "yes" ; then
+ AC_MSG_NOTICE([Enabling tests for the C++ bindings])
+ do_svnxx_test_build=yes
+ fi
+ ])
+
+AX_BOOST_BASE([1.58],
+ [
+ if test "$do_svnxx_test_build" = "yes"; then
+ AX_BOOST_UNIT_TEST_FRAMEWORK
+ fi
+ ],
+ [
+ if test "$do_svnxx_test_build" = "yes"; then
+ AC_MSG_WARN([Tests for the C++ bindings require Boost and Boost.Test])
+ do_svnxx_test_build=no
+ fi
+ ])
+
+if test "$do_svnxx_test_build" = "yes"; then
+ if test "$want_boost" != "yes"; then
+ AC_MSG_WARN([Tests for the C++ bindings require Boost and Boost.Test])
+ do_svnxx_test_build=no
+ SVN_BUILD_SVNXX_TESTS=false
+ else
+ if test "$do_svnxx_build" != "yes"; then
+ AC_MSG_WARN([Enabling the C++ bindings because their tests are enabled])
+ do_svnxx_build=yes
+ fi
+ SVN_BUILD_SVNXX_TESTS=true
+ fi
+else
+ SVN_BUILD_SVNXX_TESTS=false
+fi
+
+if test "$do_svnxx_build" = "yes"; then
+ SVN_BUILD_SVNXX=true
+else
+ SVN_BUILD_SVNXX=false
+fi
+
+AC_SUBST(SVN_BUILD_SVNXX)
+AC_SUBST(SVN_BUILD_SVNXX_TESTS)
+
# ==== JavaHL ================================================================
dnl Possibly compile JavaHL
@@ -1597,7 +1641,7 @@ fi
AC_SUBST(SVN_CONFIG_SCRIPT_FILES)
# Ensure that SWIG is checked after reconfiguration.
-rm -f .swig_checked
+rm -f .swig_checked .swig_pl_checked .swig_py_checked .swig_rb_checked
dnl Provide ${host} for use in compiled code (for svn --version)
AC_DEFINE_UNQUOTED([SVN_BUILD_HOST], "${host}",
diff --git a/doc/doxygen.conf b/doc/doxygen.conf
index adb7efbda693..b66d5ba0d016 100644
--- a/doc/doxygen.conf
+++ b/doc/doxygen.conf
@@ -112,7 +112,7 @@ INLINE_INHERITED_MEMB = NO
# path before files name in the file list and in the header files. If set
# to NO the shortest path that makes the file name unique will be used.
-FULL_PATH_NAMES = NO
+FULL_PATH_NAMES = YES
# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
# can be used to strip a user-defined part of the path. Stripping is
@@ -121,7 +121,7 @@ FULL_PATH_NAMES = NO
# If left blank the directory from which doxygen is run is used as the
# path to strip.
-STRIP_FROM_PATH =
+STRIP_FROM_PATH = subversion/include subversion/bindings/cxx/include
# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
# the path mentioned in the documentation of a class, which tells
@@ -130,7 +130,7 @@ STRIP_FROM_PATH =
# definition is used. Otherwise one should specify the include paths that
# are normally passed to the compiler using the -I flag.
-STRIP_FROM_INC_PATH =
+STRIP_FROM_INC_PATH = subversion/include subversion/bindings/cxx/include
# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
# (but less readable) file names. This can be useful is your file systems
@@ -280,22 +280,6 @@ SUBGROUPING = YES
TYPEDEF_HIDES_STRUCT = NO
-# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
-# determine which symbols to keep in memory and which to flush to disk.
-# When the cache is full, less often used symbols will be written to disk.
-# For small to medium size projects (<1000 input files) the default value is
-# probably good enough. For larger projects a too small cache size can cause
-# doxygen to be busy swapping symbols to and from disk most of the time
-# causing a significant performance penality.
-# If the system has enough physical memory increasing the cache will improve the
-# performance by keeping more symbols in memory. Note that the value works on
-# a logarithmic scale so increasing the size by one will rougly double the
-# memory usage. The cache size is given by this formula:
-# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
-# corresponding to a cache size of 2^16 = 65536 symbols
-
-SYMBOL_CACHE_SIZE = 0
-
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
@@ -478,12 +462,6 @@ MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
-# If the sources in your project are distributed over multiple directories
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
-# in the documentation. The default is NO.
-
-SHOW_DIRECTORIES = NO
-
# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
# This will remove the Files entry from the Quick Index and from the
# Folder Tree View (if specified). The default is YES.
@@ -577,6 +555,10 @@ WARN_LOGFILE =
# with spaces.
INPUT = subversion/include \
+ subversion/bindings/cxx/include \
+ subversion/bindings/cxx/include/svnxx \
+ subversion/bindings/cxx/include/svnxx/client \
+ subversion/bindings/cxx/include/svnxx/detail \
subversion/include/private/svn_doxygen.h
# This tag can be used to specify the character encoding of the source files
@@ -594,7 +576,7 @@ INPUT_ENCODING = UTF-8
# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
-FILE_PATTERNS = *.h
+FILE_PATTERNS = *.h *.hpp
# The RECURSIVE tag can be used to turn specify whether or not subdirectories
# should be searched for input files as well. Possible values are YES and NO.
@@ -805,12 +787,6 @@ HTML_FOOTER =
HTML_STYLESHEET =
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
-# files or namespaces will be aligned in HTML using tables. If set to
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS = YES
-
# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
# documentation will contain sections that can be hidden and shown after the
# page has loaded. For this to work a browser that supports
@@ -959,11 +935,6 @@ ENUM_VALUES_PER_LINE = 1
GENERATE_TREEVIEW = NO
-# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
-# and Class Hierarchy pages using a tree view instead of an ordered list.
-
-USE_INLINE_TREES = NO
-
# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
# used to set the initial width (in pixels) of the frame in which the tree
# is shown.
@@ -1151,18 +1122,6 @@ GENERATE_XML = NO
XML_OUTPUT = xml
-# The XML_SCHEMA tag can be used to specify an XML schema,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_SCHEMA =
-
-# The XML_DTD tag can be used to specify an XML DTD,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_DTD =
-
# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
# dump the program listings (including syntax highlighting
# and cross-referencing information) to the XML output. Note that
@@ -1378,7 +1337,7 @@ HAVE_DOT = NO
# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
# containing the font.
-DOT_FONTNAME = FreeSans
+DOT_FONTNAME =
# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
# The default size is 10pt.
diff --git a/doc/programmer/gtest-guide.txt b/doc/programmer/gtest-guide.txt
deleted file mode 100644
index 225690c2dd42..000000000000
--- a/doc/programmer/gtest-guide.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-Googlemock and Googletest Suite for Subversion
----------------------------------------------
-
-Googlemock and Googletest are external packages that are downloaded
-and compiled on request, as part of regular compilations.
-
-Googlemock is available here:
-
- https://code.google.com/p/googlemock/
-
-The source packages already include Googletest, which is available
-here:
-
- https://code.google.com/p/googletest/
-
-Subversion uses Googlemock and Googletest for the C++HL test suite.
-
-
-
-To configure Subversion to use Googlemock, type
-
- ./get-dep.sh gmock
-
-This will download Googlemock and put the fused source into the
-'gmock-fused' directory. Once it's there, configure will pick it up
-automatically (but you do have to re-run autogen.sh and configure).
-
-You can disable building Googlemock (and hence the C++HL test suite)
-with the --disable-gmock configure option. This will tell configure to
-ignore the gmock-fused directory.
diff --git a/doc/user/svn-best-practices.html b/doc/user/svn-best-practices.html
index b168786cf59b..8bfa49502084 100644
--- a/doc/user/svn-best-practices.html
+++ b/doc/user/svn-best-practices.html
@@ -240,7 +240,7 @@ while somebody else is in the process of committing.</p>
<li>Users commit their day-to-day work on <tt>/trunk</tt>.</li>
<li>Rule #1: <tt>/trunk</tt> must compile and pass regression tests at
-all times. Committers who violate this rule are publically
+all times. Committers who violate this rule are publicly
humiliated.</li>
<li>Rule #2: a single commit (changeset) must not be so large
diff --git a/gen-make.py b/gen-make.py
index 9e410c43bd11..bdb359394e1c 100755
--- a/gen-make.py
+++ b/gen-make.py
@@ -48,7 +48,6 @@ sys.path.insert(1, 'build')
gen_modules = {
'make' : ('gen_make', 'Makefiles for POSIX systems'),
- 'dsp' : ('gen_msvc_dsp', 'MSVC 6.x project files'),
'vcproj' : ('gen_vcnet_vcproj', 'VC.Net project files'),
}
@@ -176,6 +175,8 @@ def _usage_exit(err=None):
print("")
print(" --with-swig=DIR")
print(" look for the swig program in DIR")
+ print(" --with-py3c=DIR")
+ print(" look for the py3c library in DIR")
print("")
print(" --with-sqlite=DIR")
print(" look for sqlite in DIR")
@@ -215,8 +216,6 @@ def _usage_exit(err=None):
print("")
print(" --with-apr_memcache=DIR")
print(" the apr_memcache sources are in DIR")
- print(" --disable-gmock")
- print(" do not use Googlemock")
sys.exit(1)
@@ -252,6 +251,7 @@ if __name__ == '__main__':
'with-jdk=',
'with-junit=',
'with-swig=',
+ 'with-py3c=',
'with-sqlite=',
'with-sasl=',
'with-apr_memcache=',
@@ -264,7 +264,6 @@ if __name__ == '__main__':
'disable-shared',
'installed-libs=',
'vsnet-version=',
- 'disable-gmock',
])
if len(args) > 1:
_usage_exit("Too many arguments")
diff --git a/get-deps.sh b/get-deps.sh
index f41d37fdeee2..68ccdf836bb3 100755
--- a/get-deps.sh
+++ b/get-deps.sh
@@ -31,28 +31,24 @@
# features already used in the file. Reviewing the history of changes
# may be useful as well.
-APR_VERSION=${APR_VERSION:-"1.4.6"}
+APR_VERSION=${APR_VERSION:-"1.5.0"}
APU_VERSION=${APU_VERSION:-"1.5.1"}
+PY3C_VERSION=${PY3C_VERSION:='1.1'}
SERF_VERSION=${SERF_VERSION:-"1.3.8"}
ZLIB_VERSION=${ZLIB_VERSION:-"1.2.8"}
SQLITE_VERSION=${SQLITE_VERSION:-"3.8.11.1"}
# Used to construct the SQLite download URL.
SQLITE_VERSION_REL_YEAR=2015
-GTEST_VERSION=${GMOCK_VERSION:-"1.7.0"}
-GMOCK_VERSION=${GMOCK_VERSION:-"1.7.0"}
HTTPD_VERSION=${HTTPD_VERSION:-"2.4.10"}
APR_ICONV_VERSION=${APR_ICONV_VERSION:-"1.2.1"}
APR=apr-${APR_VERSION}
APR_UTIL=apr-util-${APU_VERSION}
+PY3C=py3c-${PY3C_VERSION}
SERF=serf-${SERF_VERSION}
ZLIB=zlib-${ZLIB_VERSION}
SQLITE_VERSION_LIST=`echo $SQLITE_VERSION | sed -e 's/\./ /g'`
SQLITE=sqlite-amalgamation-`printf %d%02d%02d%02d $SQLITE_VERSION_LIST`
-GTEST=release-${GTEST_VERSION}
-GTEST_URL=https://github.com/google/googletest/archive
-GMOCK=release-${GMOCK_VERSION}
-GMOCK_URL=https://github.com/google/googlemock/archive
HTTPD=httpd-${HTTPD_VERSION}
APR_ICONV=apr-iconv-${APR_ICONV_VERSION}
@@ -67,12 +63,12 @@ HTTP_FETCH=
# Need this uncommented if any of the specific versions of the ASF tarballs to
# be downloaded are no longer available on the general mirrors.
-APACHE_MIRROR=http://archive.apache.org/dist
+APACHE_MIRROR=https://archive.apache.org/dist
# helpers
usage() {
echo "Usage: $0"
- echo "Usage: $0 [ apr | serf | zlib | sqlite | googlemock ] ..."
+ echo "Usage: $0 [ apr | py3c | serf | zlib | sqlite ] ..."
exit $1
}
@@ -90,6 +86,19 @@ get_apr() {
test -d $BASEDIR/apr-util || mv $APR_UTIL apr-util
}
+get_py3c() {
+ test -d $BASEDIR/py3c && return
+ py3cdist=v${PY3C_VERSION}.tar.gz
+
+ cd $TEMPDIR
+ $HTTP_FETCH https://github.com/encukou/py3c/archive/${py3cdist}
+ cd $BASEDIR
+
+ gzip -dc $TEMPDIR/${py3cdist} | tar -xf -
+
+ mv $PY3C py3c
+}
+
get_serf() {
test -d $BASEDIR/serf && return
@@ -106,7 +115,7 @@ get_zlib() {
test -d $BASEDIR/zlib && return
cd $TEMPDIR
- $HTTP_FETCH http://sourceforge.net/projects/libpng/files/zlib/$ZLIB_VERSION/$ZLIB.tar.gz
+ $HTTP_FETCH https://sourceforge.net/projects/libpng/files/zlib/$ZLIB_VERSION/$ZLIB.tar.gz
cd $BASEDIR
gzip -dc $TEMPDIR/$ZLIB.tar.gz | tar -xf -
@@ -127,29 +136,11 @@ get_sqlite() {
}
-get_googlemock() {
- test -d $BASEDIR/googlemock && return
-
- cd $TEMPDIR
- $HTTP_FETCH ${GTEST_URL}/${GTEST}.zip
- unzip -q ${GTEST}.zip
- rm -f ${GTEST}.zip
-
- $HTTP_FETCH ${GMOCK_URL}/${GMOCK}.zip
- unzip -q ${GMOCK}.zip
- rm -f ${GMOCK}.zip
-
- cd $BASEDIR
- mkdir googlemock
- mv $TEMPDIR/googletest-release-${GTEST_VERSION} googlemock/googletest
- mv $TEMPDIR/googlemock-release-${GMOCK_VERSION} googlemock/googlemock
-}
-
# main()
get_deps() {
mkdir -p $TEMPDIR
- for i in zlib serf sqlite-amalgamation apr apr-util gmock-fused; do
+ for i in zlib serf sqlite-amalgamation py3c apr apr-util; do
if [ -d $i ]; then
echo "Local directory '$i' already exists; the downloaded copy won't be used" >&2
fi
@@ -165,6 +156,7 @@ get_deps() {
done
else
get_apr
+ get_py3c
get_serf
get_zlib
get_sqlite
diff --git a/subversion/include/private/svn_branch.h b/subversion/include/private/svn_branch.h
index 3fbaeb7ef77c..df3a91c9a488 100644
--- a/subversion/include/private/svn_branch.h
+++ b/subversion/include/private/svn_branch.h
@@ -98,7 +98,7 @@ extern "C" {
*
* An element may appear in any or all branches, and its EID is the same in
* each branch in which the element appears.
- *
+ *
* By definition, an element keeps the same EID for its whole lifetime, even
* if deleted from all branches and later 'resurrected'.
*
diff --git a/subversion/include/private/svn_client_mtcc.h b/subversion/include/private/svn_client_mtcc.h
index fe670b04e530..d8bc9029cfaf 100644
--- a/subversion/include/private/svn_client_mtcc.h
+++ b/subversion/include/private/svn_client_mtcc.h
@@ -207,6 +207,17 @@ svn_client__mtcc_check_path(svn_node_kind_t *kind,
/** Commits all operations stored in @a mtcc as a new revision and destroys
* @a mtcc.
*
+ * A log message is obtained from the log message callback in the client
+ * context in @a mtcc.
+ *
+ * @a revprop_table (if non-NULL) supplies additional revision properties;
+ * it may not supply any "svn:*" revision properties.
+ *
+ * As with svn_ra_get_commit_editor3(), after the commit has succeeded,
+ * it will invoke @a commit_callback (if non-NULL) with filled-in
+ * #svn_commit_info_t *, @a commit_baton, and @a scratch_pool or some subpool
+ * thereof as arguments.
+ *
* @since New in 1.9.
*/
svn_error_t *
diff --git a/subversion/include/private/svn_client_private.h b/subversion/include/private/svn_client_private.h
index 892fc4b0b574..614405ac7f35 100644
--- a/subversion/include/private/svn_client_private.h
+++ b/subversion/include/private/svn_client_private.h
@@ -281,26 +281,6 @@ svn_client__wc_node_get_origin(svn_client__pathrev_t **origin_p,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
-/* Copy the file or directory on URL in some repository to DST_ABSPATH,
- * copying node information and properties. Resolve URL using PEG_REV and
- * REVISION.
- *
- * If URL specifies a directory, create the copy using depth DEPTH.
- *
- * If MAKE_PARENTS is TRUE and DST_ABSPATH doesn't have an added parent
- * create missing parent directories
- */
-svn_error_t *
-svn_client__copy_foreign(const char *url,
- const char *dst_abspath,
- svn_opt_revision_t *peg_revision,
- svn_opt_revision_t *revision,
- svn_depth_t depth,
- svn_boolean_t make_parents,
- svn_boolean_t already_locked,
- svn_client_ctx_t *ctx,
- apr_pool_t *scratch_pool);
-
/* Same as the public svn_client_mergeinfo_log2 API, except for the addition
* of the TARGET_MERGEINFO_CATALOG and RESULT_POOL parameters.
*
@@ -341,6 +321,220 @@ svn_client__mergeinfo_log(svn_boolean_t finding_merged,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
+/** Return a diff processor that will print a Subversion-style
+ * (not git-style) diff.
+ *
+ * @a anchor is optional (may be null), and is the 'anchor' path to prefix
+ * to the diff-processor paths before displaying.
+ *
+ * @a orig_path_1 and @a orig_path_2 are the two main root paths to be
+ * diffed; each may be a URL, a local WC path or a local unversioned path.
+ *
+ * Other arguments are as for svn_client_diff7() etc.
+ */
+svn_error_t *
+svn_client__get_diff_writer_svn(
+ svn_diff_tree_processor_t **diff_processor,
+ const char *anchor,
+ const char *orig_path_1,
+ const char *orig_path_2,
+ const apr_array_header_t *options,
+ const char *relative_to_dir,
+ svn_boolean_t no_diff_added,
+ svn_boolean_t no_diff_deleted,
+ svn_boolean_t show_copies_as_adds,
+ svn_boolean_t ignore_content_type,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
+ svn_boolean_t pretty_print_mergeinfo,
+ const char *header_encoding,
+ svn_stream_t *outstream,
+ svn_stream_t *errstream,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool);
+
+/*** Editor for diff summary ***/
+
+/* Set *DIFF_PROCESSOR to a diff processor that will report a diff summary
+ to SUMMARIZE_FUNC.
+
+ SUMMARIZE_FUNC is called with SUMMARIZE_BATON as parameter by the
+ created callbacks for each changed item.
+*/
+svn_error_t *
+svn_client__get_diff_summarize_callbacks(
+ svn_diff_tree_processor_t **diff_processor,
+ svn_client_diff_summarize_func_t summarize_func,
+ void *summarize_baton,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/** Copy a directory tree or a file (according to @a kind) from @a src_url at
+ * @a src_rev, to @a dst_abspath in a WC.
+ *
+ * The caller should be holding a WC write lock that allows @a dst_abspath to
+ * be created, such as on the parent of @a dst_abspath.
+ *
+ * If not same repositories, then remove any svn:mergeinfo property.
+ *
+ * Use @a ra_session to fetch the data. The session may point to any URL
+ * within the source repository.
+ *
+ * This API does not process any externals definitions that may be present
+ * on copied directories.
+ */
+svn_error_t *
+svn_client__repos_to_wc_copy_internal(svn_boolean_t *timestamp_sleep,
+ svn_node_kind_t kind,
+ const char *src_url,
+ svn_revnum_t src_rev,
+ const char *dst_abspath,
+ svn_ra_session_t *ra_session,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool);
+
+/** Copy a directory tree or a file (according to @a kind) from @a src_url at
+ * @a src_rev, to @a dst_abspath in a WC.
+ *
+ * The caller should be holding a WC write lock that allows @a dst_abspath to
+ * be created, such as on the parent of @a dst_abspath.
+ *
+ * If not same repositories, then remove any svn:mergeinfo property.
+ *
+ * Use @a ra_session to fetch the data. The session may point to a different
+ * URL after returning.
+ *
+ * This API does not process any externals definitions that may be present
+ * on copied directories.
+ */
+svn_error_t *
+svn_client__repos_to_wc_copy_by_editor(svn_boolean_t *timestamp_sleep,
+ svn_node_kind_t kind,
+ const char *src_url,
+ svn_revnum_t src_rev,
+ const char *dst_abspath,
+ svn_ra_session_t *ra_session,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool);
+
+/** Return an editor for applying local modifications to a WC.
+ *
+ * Return an editor in @a *editor_p, @a *edit_baton_p that will apply
+ * local modifications to the WC subdirectory at @a dst_abspath.
+ *
+ * The @a path arguments to the editor methods shall be local WC paths,
+ * relative to @a dst_abspath. The @a copyfrom_path arguments to the
+ * editor methods shall be URLs.
+ *
+ * Send notifications via @a notify_func / @a notify_baton.
+ * ### INCOMPLETE
+ *
+ * @a ra_session is used to fetch the original content for copies.
+ *
+ * Ignore changes to non-regular property (entry-props, DAV/WC-props).
+ *
+ * Acquire the WC write lock in 'open_root' and release it in
+ * 'close_edit', in 'abort_edit', or when @a result_pool is cleared.
+ */
+svn_error_t *
+svn_client__wc_editor(const svn_delta_editor_t **editor_p,
+ void **edit_baton_p,
+ const char *dst_abspath,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
+ svn_ra_session_t *ra_session,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool);
+
+/* Return an editor for applying local modifications to a WC.
+ *
+ * Like svn_client__wc_editor() but with additional options.
+ *
+ * If @a root_dir_add is true, then create and schedule for addition
+ * the root directory of this edit, else assume it is already a versioned,
+ * existing directory.
+ *
+ * If @a ignore_mergeinfo_changes is true, ignore any incoming changes
+ * to the 'svn:mergeinfo' property.
+ *
+ * If @a manage_wc_write_lock is true, acquire the WC write lock in
+ * 'open_root' and release it in 'close_edit', in 'abort_edit', or
+ * when @a result_pool is cleared.
+ */
+svn_error_t *
+svn_client__wc_editor_internal(const svn_delta_editor_t **editor_p,
+ void **edit_baton_p,
+ const char *dst_abspath,
+ svn_boolean_t root_dir_add,
+ svn_boolean_t ignore_mergeinfo_changes,
+ svn_boolean_t manage_wc_write_lock,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
+ svn_ra_session_t *ra_session,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool);
+
+/** Send committable changes found in the WC to a delta-editor.
+ *
+ * Committable changes are found in TARGETS:DEPTH:CHANGELISTS.
+ *
+ * Send the changes to @a editor:@a edit_baton. The @a path arguments
+ * to the editor methods are URL-paths relative to the URL of
+ * @a src_wc_abspath.
+ *
+ * ### We will presumably need to change this so that the @a path
+ * arguments to the editor will be local WC relpaths, in order
+ * to handle switched paths.
+ *
+ * The @a copyfrom_path arguments to the editor methods are URLs. As the
+ * WC does not store copied-from-foreign-repository metadata, the URL will
+ * be in the same repository as the URL of its parent path.
+ *
+ * Compared with svn_client__do_commit(), this (like svn_client_commit6)
+ * handles:
+ * - condense targets and find committable paths
+ * - checking only one repository is involved
+ *
+ * Compared with svn_client_commit6(), this does not handle:
+ * - externals
+ * - log message
+ * - revprops
+ * - checking the commit includes both halves of each local move
+ * - changing the copy revision of each local move to ~HEAD
+ * - WC write locks
+ * - bumping revisions in WC
+ * - removing locks and changelists in WC
+ */
+svn_error_t *
+svn_client__wc_replay(const char *src_wc_abspath,
+ const apr_array_header_t *targets,
+ svn_depth_t depth,
+ const apr_array_header_t *changelists,
+ const svn_delta_editor_t *editor,
+ void *edit_baton,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool);
+
+/** Copy local modifications from one WC subtree to another.
+ *
+ * Find local modifications under @a src_wc_abspath, in the same way as
+ * for a commit.
+ *
+ * Edit the WC at @a dst_wc_abspath, applying those modifications to the
+ * current working state to produce a new working state.
+ *
+ * The source and destination may be in the same WC or in different WCs.
+ */
+svn_error_t *
+svn_client__wc_copy_mods(const char *src_wc_abspath,
+ const char *dst_wc_abspath,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/subversion/include/private/svn_client_shelf.h b/subversion/include/private/svn_client_shelf.h
new file mode 100644
index 000000000000..0d747cdcd36f
--- /dev/null
+++ b/subversion/include/private/svn_client_shelf.h
@@ -0,0 +1,498 @@
+/**
+ * @copyright
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ * @endcopyright
+ *
+ * @file svn_client_shelf.h
+ * @brief Subversion's client library: experimental shelving v3
+ */
+
+#ifndef SVN_CLIENT_SHELF_H
+#define SVN_CLIENT_SHELF_H
+
+#include <apr.h>
+#include <apr_pools.h>
+#include <apr_hash.h>
+#include <apr_time.h>
+
+#include "svn_client.h"
+#include "svn_types.h"
+#include "svn_string.h"
+#include "svn_wc.h"
+#include "svn_diff.h"
+#include "private/svn_diff_tree.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+
+/** Shelving v3, with checkpoints
+ *
+ * @defgroup svn_client_shelves_checkpoints Shelves and checkpoints
+ * @{
+ */
+
+/** A shelf.
+ *
+ * @warning EXPERIMENTAL.
+ */
+typedef struct svn_client__shelf_t
+{
+ /* Public fields (read-only for public use) */
+ const char *name;
+ int max_version; /**< @deprecated */
+
+ /* Private fields */
+ const char *wc_root_abspath;
+ const char *shelves_dir;
+ apr_hash_t *revprops; /**< non-null; allocated in POOL */
+ svn_client_ctx_t *ctx;
+ apr_pool_t *pool;
+} svn_client__shelf_t;
+
+/** One version of a shelved change-set.
+ *
+ * @warning EXPERIMENTAL.
+ */
+typedef struct svn_client__shelf_version_t
+{
+ /* Public fields (read-only for public use) */
+ svn_client__shelf_t *shelf;
+ apr_time_t mtime; /**< time-stamp of this version */
+
+ /* Private fields */
+ const char *files_dir_abspath; /**< abspath of the storage area */
+ int version_number; /**< version number starting from 1 */
+} svn_client__shelf_version_t;
+
+/** Open an existing shelf or create a new shelf.
+ *
+ * Create a new shelf (containing no versions) if a shelf named @a name
+ * is not found.
+ *
+ * The shelf should be closed after use by calling svn_client_shelf_close().
+ *
+ * @a local_abspath is any path in the WC and is used to find the WC root.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_open_or_create(svn_client__shelf_t **shelf_p,
+ const char *name,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool);
+
+/** Open an existing shelf named @a name, or error if it doesn't exist.
+ *
+ * The shelf should be closed after use by calling svn_client_shelf_close().
+ *
+ * @a local_abspath is any path in the WC and is used to find the WC root.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_open_existing(svn_client__shelf_t **shelf_p,
+ const char *name,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool);
+
+/** Close @a shelf.
+ *
+ * If @a shelf is NULL, do nothing; otherwise @a shelf must be an open shelf.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_close(svn_client__shelf_t *shelf,
+ apr_pool_t *scratch_pool);
+
+/** Delete the shelf named @a name, or error if it doesn't exist.
+ *
+ * @a local_abspath is any path in the WC and is used to find the WC root.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_delete(const char *name,
+ const char *local_abspath,
+ svn_boolean_t dry_run,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool);
+
+/** Get an editor that, when driven, will store changes in @a shelf_version.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_mods_editor(const svn_delta_editor_t **editor_p,
+ void **edit_baton_p,
+ svn_client__shelf_version_t *shelf_version,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool);
+
+/** Save the local modifications found by @a paths, @a depth,
+ * @a changelists as a new version of @a shelf.
+ *
+ * If any paths are shelved, create a new shelf-version and return the new
+ * shelf-version in @a *new_version_p, else set @a *new_version_p to null.
+ * @a new_version_p may be null if that output is not wanted; a new shelf-
+ * version is still saved and may be found through @a shelf.
+ *
+ * @a paths are relative to the CWD, or absolute.
+ *
+ * For each successfully shelved path: call @a shelved_func (if not null)
+ * with @a shelved_baton.
+ *
+ * If any paths cannot be shelved: if @a not_shelved_func is given, call
+ * it with @a not_shelved_baton for each such path, and still create a new
+ * shelf-version if any paths are shelved.
+ *
+ * This function does not revert the changes from the WC; use
+ * svn_client_shelf_unapply() for that.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_save_new_version3(svn_client__shelf_version_t **new_version_p,
+ svn_client__shelf_t *shelf,
+ const apr_array_header_t *paths,
+ svn_depth_t depth,
+ const apr_array_header_t *changelists,
+ svn_client_status_func_t shelved_func,
+ void *shelved_baton,
+ svn_client_status_func_t not_shelved_func,
+ void *not_shelved_baton,
+ apr_pool_t *scratch_pool);
+
+/** Delete all newer versions of @a shelf newer than @a shelf_version.
+ *
+ * If @a shelf_version is null, delete all versions of @a shelf. (The
+ * shelf will still exist, with any log message and other revprops, but
+ * with no versions in it.)
+ *
+ * Leave the shelf's log message and other revprops unchanged.
+ *
+ * Any #svn_client__shelf_version_t object that refers to a deleted version
+ * will become invalid: attempting to use it will give undefined behaviour.
+ * The given @a shelf_version will remain valid.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_delete_newer_versions(svn_client__shelf_t *shelf,
+ svn_client__shelf_version_t *shelf_version,
+ apr_pool_t *scratch_pool);
+
+/** Return in @a shelf_version an existing version of @a shelf, given its
+ * @a version_number (starting from 1). Error if that version doesn't exist.
+ *
+ * There is no need to "close" it after use.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_version_open(svn_client__shelf_version_t **shelf_version_p,
+ svn_client__shelf_t *shelf,
+ int version_number,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/** Return in @a shelf_version the newest version of @a shelf.
+ *
+ * Set @a shelf_version to null if no versions exist.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_get_newest_version(svn_client__shelf_version_t **shelf_version_p,
+ svn_client__shelf_t *shelf,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/** Return in @a versions_p an array of (#svn_client__shelf_version_t *)
+ * containing all versions of @a shelf.
+ *
+ * The versions will be in chronological order, oldest to newest.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_get_all_versions(apr_array_header_t **versions_p,
+ svn_client__shelf_t *shelf,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/** Apply @a shelf_version to the WC.
+ *
+ * If @a dry_run is true, try applying the shelf-version to the WC and
+ * report the full set of notifications about successes and conflicts,
+ * but leave the WC untouched.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_apply(svn_client__shelf_version_t *shelf_version,
+ svn_boolean_t dry_run,
+ apr_pool_t *scratch_pool);
+
+/** Test whether we can successfully apply the changes for @a file_relpath
+ * in @a shelf_version to the WC.
+ *
+ * Set @a *conflict_p to true if the changes conflict with the WC state,
+ * else to false.
+ *
+ * If @a file_relpath is not found in @a shelf_version, set @a *conflict_p
+ * to FALSE.
+ *
+ * @a file_relpath is relative to the WC root.
+ *
+ * A conflict means the shelf cannot be applied successfully to the WC
+ * because the change to be applied is not compatible with the current
+ * working state of the WC file. Examples are a text conflict, or the
+ * file does not exist or is a directory, or the shelf is trying to add
+ * the file but it already exists, or trying to delete it but it does not
+ * exist.
+ *
+ * Return an error only if something is broken, e.g. unable to read data
+ * from the specified shelf-version.
+ *
+ * Leave the WC untouched.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_test_apply_file(svn_boolean_t *conflict_p,
+ svn_client__shelf_version_t *shelf_version,
+ const char *file_relpath,
+ apr_pool_t *scratch_pool);
+
+/** Reverse-apply @a shelf_version to the WC.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_unapply(svn_client__shelf_version_t *shelf_version,
+ svn_boolean_t dry_run,
+ apr_pool_t *scratch_pool);
+
+/** Send committable changes found in a shelf to a delta-editor.
+ *
+ * Push changes from the @a shelf_version subtree at @a top_relpath
+ * to @a editor : @a edit_baton.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_replay(svn_client__shelf_version_t *shelf_version,
+ const char *top_relpath,
+ const svn_delta_editor_t *editor,
+ void *edit_baton,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
+ apr_pool_t *scratch_pool);
+
+/** Set @a *affected_paths to a hash with one entry for each path affected
+ * by the @a shelf_version.
+ *
+ * The hash key is the path of the affected file, relative to the WC root.
+ *
+ * (Future possibility: When moves and copies are supported, the hash key
+ * is the old path and value is the new path.)
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_paths_changed(apr_hash_t **affected_paths,
+ svn_client__shelf_version_t *shelf_version,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/** Set @a shelf's revprop @a prop_name to @a prop_val.
+ *
+ * This can be used to set or change the shelf's log message
+ * (property name "svn:log" or #SVN_PROP_REVISION_LOG).
+ *
+ * If @a prop_val is NULL, delete the property (if present).
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_revprop_set(svn_client__shelf_t *shelf,
+ const char *prop_name,
+ const svn_string_t *prop_val,
+ apr_pool_t *scratch_pool);
+
+/** Set @a shelf's revprops to @a revprop_table.
+ *
+ * This deletes all previous revprops.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_revprop_set_all(svn_client__shelf_t *shelf,
+ apr_hash_t *revprop_table,
+ apr_pool_t *scratch_pool);
+
+/** Get @a shelf's revprop @a prop_name into @a *prop_val.
+ *
+ * If the property is not present, set @a *prop_val to NULL.
+ *
+ * This can be used to get the shelf's log message
+ * (property name "svn:log" or #SVN_PROP_REVISION_LOG).
+ *
+ * The lifetime of the result is limited to that of @a shelf and/or
+ * of @a result_pool.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_revprop_get(svn_string_t **prop_val,
+ svn_client__shelf_t *shelf,
+ const char *prop_name,
+ apr_pool_t *result_pool);
+
+/** Get @a shelf's revprops into @a props.
+ *
+ * The lifetime of the result is limited to that of @a shelf and/or
+ * of @a result_pool.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_revprop_list(apr_hash_t **props,
+ svn_client__shelf_t *shelf,
+ apr_pool_t *result_pool);
+
+/** Set the log message in @a shelf to @a log_message.
+ *
+ * If @a log_message is null, delete the log message.
+ *
+ * Similar to svn_client_shelf_revprop_set(... SVN_PROP_REVISION_LOG ...).
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_set_log_message(svn_client__shelf_t *shelf,
+ const char *log_message,
+ apr_pool_t *scratch_pool);
+
+/** Get the log message in @a shelf into @a *log_message.
+ *
+ * Set @a *log_message to NULL if there is no log message.
+ *
+ * Similar to svn_client_shelf_revprop_get(... SVN_PROP_REVISION_LOG ...).
+ *
+ * The result is allocated in @a result_pool.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_get_log_message(char **log_message,
+ svn_client__shelf_t *shelf,
+ apr_pool_t *result_pool);
+
+/** Information about a shelf.
+ *
+ * @warning EXPERIMENTAL.
+ */
+typedef struct svn_client__shelf_info_t
+{
+ apr_time_t mtime; /**< mtime of the latest change */
+} svn_client__shelf_info_t;
+
+/** Set @a *shelf_infos to a hash, keyed by shelf name, of pointers to
+ * @c svn_client_shelf_info_t structures, one for each shelf in the
+ * given WC.
+ *
+ * @a local_abspath is any path in the WC and is used to find the WC root.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_list(apr_hash_t **shelf_infos,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/** Report the shelved status of all the shelved paths in @a shelf_version
+ * via @a walk_func(@a walk_baton, ...).
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_version_status_walk(svn_client__shelf_version_t *shelf_version,
+ const char *wc_relpath,
+ svn_wc_status_func4_t walk_func,
+ void *walk_baton,
+ apr_pool_t *scratch_pool);
+
+/** Output the subtree of @a shelf_version rooted at @a shelf_relpath
+ * as a diff to @a diff_processor.
+ *
+ * ### depth and ignore_ancestry are currently ignored.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_diff(svn_client__shelf_version_t *shelf_version,
+ const char *shelf_relpath,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ const svn_diff_tree_processor_t *diff_processor,
+ apr_pool_t *scratch_pool);
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* SVN_CLIENT_SHELF_H */
diff --git a/subversion/include/private/svn_client_shelf2.h b/subversion/include/private/svn_client_shelf2.h
new file mode 100644
index 000000000000..e26537506976
--- /dev/null
+++ b/subversion/include/private/svn_client_shelf2.h
@@ -0,0 +1,467 @@
+/**
+ * @copyright
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ * @endcopyright
+ *
+ * @file svn_client_shelf2.h
+ * @brief Subversion's client library: experimental shelving v2
+ */
+
+#ifndef SVN_CLIENT_SHELF2_H
+#define SVN_CLIENT_SHELF2_H
+
+#include <apr.h>
+#include <apr_pools.h>
+#include <apr_hash.h>
+#include <apr_time.h>
+
+#include "svn_client.h"
+#include "svn_types.h"
+#include "svn_string.h"
+#include "svn_wc.h"
+#include "svn_diff.h"
+#include "private/svn_diff_tree.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+
+/** Shelving v2, with checkpoints
+ *
+ * @defgroup svn_client_shelves_checkpoints Shelves and checkpoints
+ * @{
+ */
+
+/** A shelf.
+ *
+ * @warning EXPERIMENTAL.
+ */
+typedef struct svn_client__shelf2_t
+{
+ /* Public fields (read-only for public use) */
+ const char *name;
+ int max_version; /** @deprecated */
+
+ /* Private fields */
+ const char *wc_root_abspath;
+ const char *shelves_dir;
+ apr_hash_t *revprops; /* non-null; allocated in POOL */
+ svn_client_ctx_t *ctx;
+ apr_pool_t *pool;
+} svn_client__shelf2_t;
+
+/** One version of a shelved change-set.
+ *
+ * @warning EXPERIMENTAL.
+ */
+typedef struct svn_client__shelf2_version_t
+{
+ /* Public fields (read-only for public use) */
+ svn_client__shelf2_t *shelf;
+ apr_time_t mtime; /** time-stamp of this version */
+
+ /* Private fields */
+ const char *files_dir_abspath; /** abspath of the storage area */
+ int version_number; /** version number starting from 1 */
+} svn_client__shelf2_version_t;
+
+/** Open an existing shelf or create a new shelf.
+ *
+ * Create a new shelf (containing no versions) if a shelf named @a name
+ * is not found.
+ *
+ * The shelf should be closed after use by calling svn_client_shelf_close().
+ *
+ * @a local_abspath is any path in the WC and is used to find the WC root.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf2_open_or_create(svn_client__shelf2_t **shelf_p,
+ const char *name,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool);
+
+/** Open an existing shelf named @a name, or error if it doesn't exist.
+ *
+ * The shelf should be closed after use by calling svn_client_shelf_close().
+ *
+ * @a local_abspath is any path in the WC and is used to find the WC root.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf2_open_existing(svn_client__shelf2_t **shelf_p,
+ const char *name,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool);
+
+/** Close @a shelf.
+ *
+ * If @a shelf is NULL, do nothing; otherwise @a shelf must be an open shelf.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf2_close(svn_client__shelf2_t *shelf,
+ apr_pool_t *scratch_pool);
+
+/** Delete the shelf named @a name, or error if it doesn't exist.
+ *
+ * @a local_abspath is any path in the WC and is used to find the WC root.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf2_delete(const char *name,
+ const char *local_abspath,
+ svn_boolean_t dry_run,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool);
+
+/** Save the local modifications found by @a paths, @a depth,
+ * @a changelists as a new version of @a shelf.
+ *
+ * If any paths are shelved, create a new shelf-version and return the new
+ * shelf-version in @a *new_version_p, else set @a *new_version_p to null.
+ * @a new_version_p may be null if that output is not wanted; a new shelf-
+ * version is still saved and may be found through @a shelf.
+ *
+ * @a paths are relative to the CWD, or absolute.
+ *
+ * For each successfully shelved path: call @a shelved_func (if not null)
+ * with @a shelved_baton.
+ *
+ * If any paths cannot be shelved: if @a not_shelved_func is given, call
+ * it with @a not_shelved_baton for each such path, and still create a new
+ * shelf-version if any paths are shelved.
+ *
+ * This function does not revert the changes from the WC; use
+ * svn_client_shelf_unapply() for that.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf2_save_new_version3(svn_client__shelf2_version_t **new_version_p,
+ svn_client__shelf2_t *shelf,
+ const apr_array_header_t *paths,
+ svn_depth_t depth,
+ const apr_array_header_t *changelists,
+ svn_client_status_func_t shelved_func,
+ void *shelved_baton,
+ svn_client_status_func_t not_shelved_func,
+ void *not_shelved_baton,
+ apr_pool_t *scratch_pool);
+
+/** Delete all newer versions of @a shelf newer than @a shelf_version.
+ *
+ * If @a shelf_version is null, delete all versions of @a shelf. (The
+ * shelf will still exist, with any log message and other revprops, but
+ * with no versions in it.)
+ *
+ * Leave the shelf's log message and other revprops unchanged.
+ *
+ * Any #svn_client_shelf_version_t object that refers to a deleted version
+ * will become invalid: attempting to use it will give undefined behaviour.
+ * The given @a shelf_version will remain valid.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf2_delete_newer_versions(svn_client__shelf2_t *shelf,
+ svn_client__shelf2_version_t *shelf_version,
+ apr_pool_t *scratch_pool);
+
+/** Return in @a shelf_version an existing version of @a shelf, given its
+ * @a version_number. Error if that version doesn't exist.
+ *
+ * There is no need to "close" it after use.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf2_version_open(svn_client__shelf2_version_t **shelf_version_p,
+ svn_client__shelf2_t *shelf,
+ int version_number,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/** Return in @a shelf_version the newest version of @a shelf.
+ *
+ * Set @a shelf_version to null if no versions exist.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf2_get_newest_version(svn_client__shelf2_version_t **shelf_version_p,
+ svn_client__shelf2_t *shelf,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/** Return in @a versions_p an array of (#svn_client_shelf_version_t *)
+ * containing all versions of @a shelf.
+ *
+ * The versions will be in chronological order, oldest to newest.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf2_get_all_versions(apr_array_header_t **versions_p,
+ svn_client__shelf2_t *shelf,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/** Apply @a shelf_version to the WC.
+ *
+ * If @a dry_run is true, try applying the shelf-version to the WC and
+ * report the full set of notifications about successes and conflicts,
+ * but leave the WC untouched.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf2_apply(svn_client__shelf2_version_t *shelf_version,
+ svn_boolean_t dry_run,
+ apr_pool_t *scratch_pool);
+
+/** Test whether we can successfully apply the changes for @a file_relpath
+ * in @a shelf_version to the WC.
+ *
+ * Set @a *conflict_p to true if the changes conflict with the WC state,
+ * else to false.
+ *
+ * If @a file_relpath is not found in @a shelf_version, set @a *conflict_p
+ * to FALSE.
+ *
+ * @a file_relpath is relative to the WC root.
+ *
+ * A conflict means the shelf cannot be applied successfully to the WC
+ * because the change to be applied is not compatible with the current
+ * working state of the WC file. Examples are a text conflict, or the
+ * file does not exist or is a directory, or the shelf is trying to add
+ * the file but it already exists, or trying to delete it but it does not
+ * exist.
+ *
+ * Return an error only if something is broken, e.g. unable to read data
+ * from the specified shelf-version.
+ *
+ * Leave the WC untouched.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf2_test_apply_file(svn_boolean_t *conflict_p,
+ svn_client__shelf2_version_t *shelf_version,
+ const char *file_relpath,
+ apr_pool_t *scratch_pool);
+
+/** Reverse-apply @a shelf_version to the WC.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf2_unapply(svn_client__shelf2_version_t *shelf_version,
+ svn_boolean_t dry_run,
+ apr_pool_t *scratch_pool);
+
+/** Set @a *affected_paths to a hash with one entry for each path affected
+ * by the @a shelf_version.
+ *
+ * The hash key is the path of the affected file, relative to the WC root.
+ *
+ * (Future possibility: When moves and copies are supported, the hash key
+ * is the old path and value is the new path.)
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf2_paths_changed(apr_hash_t **affected_paths,
+ svn_client__shelf2_version_t *shelf_version,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/** Set @a shelf's revprop @a prop_name to @a prop_val.
+ *
+ * This can be used to set or change the shelf's log message
+ * (property name "svn:log" or #SVN_PROP_REVISION_LOG).
+ *
+ * If @a prop_val is NULL, delete the property (if present).
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf2_revprop_set(svn_client__shelf2_t *shelf,
+ const char *prop_name,
+ const svn_string_t *prop_val,
+ apr_pool_t *scratch_pool);
+
+/** Set @a shelf's revprops to @a revprop_table.
+ *
+ * This deletes all previous revprops.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf2_revprop_set_all(svn_client__shelf2_t *shelf,
+ apr_hash_t *revprop_table,
+ apr_pool_t *scratch_pool);
+
+/** Get @a shelf's revprop @a prop_name into @a *prop_val.
+ *
+ * If the property is not present, set @a *prop_val to NULL.
+ *
+ * This can be used to get the shelf's log message
+ * (property name "svn:log" or #SVN_PROP_REVISION_LOG).
+ *
+ * The lifetime of the result is limited to that of @a shelf and/or
+ * of @a result_pool.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf2_revprop_get(svn_string_t **prop_val,
+ svn_client__shelf2_t *shelf,
+ const char *prop_name,
+ apr_pool_t *result_pool);
+
+/** Get @a shelf's revprops into @a props.
+ *
+ * The lifetime of the result is limited to that of @a shelf and/or
+ * of @a result_pool.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf2_revprop_list(apr_hash_t **props,
+ svn_client__shelf2_t *shelf,
+ apr_pool_t *result_pool);
+
+/** Set the log message in @a shelf to @a log_message.
+ *
+ * If @a log_message is null, delete the log message.
+ *
+ * Similar to svn_client_shelf_revprop_set(... SVN_PROP_REVISION_LOG ...).
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf2_set_log_message(svn_client__shelf2_t *shelf,
+ const char *log_message,
+ apr_pool_t *scratch_pool);
+
+/** Get the log message in @a shelf into @a *log_message.
+ *
+ * Set @a *log_message to NULL if there is no log message.
+ *
+ * Similar to svn_client_shelf_revprop_get(... SVN_PROP_REVISION_LOG ...).
+ *
+ * The result is allocated in @a result_pool.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf2_get_log_message(char **log_message,
+ svn_client__shelf2_t *shelf,
+ apr_pool_t *result_pool);
+
+/** Information about a shelf.
+ *
+ * @warning EXPERIMENTAL.
+ */
+typedef struct svn_client__shelf2_info_t
+{
+ apr_time_t mtime; /* mtime of the latest change */
+} svn_client__shelf2_info_t;
+
+/** Set @a *shelf_infos to a hash, keyed by shelf name, of pointers to
+ * @c svn_client_shelf_info_t structures, one for each shelf in the
+ * given WC.
+ *
+ * @a local_abspath is any path in the WC and is used to find the WC root.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf2_list(apr_hash_t **shelf_infos,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/* Report the shelved status of all the shelved paths in SHELF_VERSION
+ * via WALK_FUNC(WALK_BATON, ...).
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf2_version_status_walk(svn_client__shelf2_version_t *shelf_version,
+ const char *wc_relpath,
+ svn_wc_status_func4_t walk_func,
+ void *walk_baton,
+ apr_pool_t *scratch_pool);
+
+/** Output the subtree of @a shelf_version rooted at @a shelf_relpath
+ * as a diff to @a diff_processor.
+ *
+ * ### depth and ignore_ancestry are currently ignored.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf2_diff(svn_client__shelf2_version_t *shelf_version,
+ const char *shelf_relpath,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ const svn_diff_tree_processor_t *diff_processor,
+ apr_pool_t *scratch_pool);
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* SVN_CLIENT_SHELF2_H */
diff --git a/subversion/include/private/svn_dep_compat.h b/subversion/include/private/svn_dep_compat.h
index 6b381d2ce81c..7e6603826135 100644
--- a/subversion/include/private/svn_dep_compat.h
+++ b/subversion/include/private/svn_dep_compat.h
@@ -108,12 +108,6 @@ extern "C" {
#define APR_OPENINFO 0x00100000
#endif
-#if !APR_VERSION_AT_LEAST(1,4,0)
-#ifndef apr_time_from_msec
-#define apr_time_from_msec(msec) ((apr_time_t)(msec) * 1000)
-#endif
-#endif
-
/**
* APR 1 has volatile qualifier bugs in some atomic prototypes that
* are fixed in APR 2:
diff --git a/subversion/include/private/svn_diff_tree.h b/subversion/include/private/svn_diff_tree.h
index 713644d08c4e..9c675d916aa1 100644
--- a/subversion/include/private/svn_diff_tree.h
+++ b/subversion/include/private/svn_diff_tree.h
@@ -321,7 +321,6 @@ svn_diff__tree_processor_create(void *baton,
*/ /* Used by libsvn clients repository diff */
const svn_diff_tree_processor_t *
svn_diff__tree_processor_reverse_create(const svn_diff_tree_processor_t * processor,
- const char *prefix_relpath,
apr_pool_t *result_pool);
/**
diff --git a/subversion/include/private/svn_dirent_uri_private.h b/subversion/include/private/svn_dirent_uri_private.h
new file mode 100644
index 000000000000..0da5f4722884
--- /dev/null
+++ b/subversion/include/private/svn_dirent_uri_private.h
@@ -0,0 +1,53 @@
+/*
+ * svn_dirent_uri_private.h : private definitions for dirents and URIs
+ *
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ */
+
+#ifndef SVN_DIRENT_URI_PRIVATE_H
+#define SVN_DIRENT_URI_PRIVATE_H
+
+#include <apr_pools.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/**
+ * Convert @a relpath from the local style to the canonical internal style.
+ * "Local style" means native path separators and "." for the empty path.
+ *
+ * Allocates the results in @a result_pool. Uses @a scratch_pool for
+ * temporary allocations.
+ *
+ * @since New in 1.7 (as svn_relpath__internal_style()).
+ * @since Name and signature changed in 1.12.
+ */
+svn_error_t *
+svn_relpath__make_internal(const char **internal_style_relpath,
+ const char *relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* SVN_DIRENT_URI_PRIVATE_H */
diff --git a/subversion/include/private/svn_element.h b/subversion/include/private/svn_element.h
index c467175c748e..9c7129a4a98a 100644
--- a/subversion/include/private/svn_element.h
+++ b/subversion/include/private/svn_element.h
@@ -348,7 +348,7 @@ svn_element__content_t *
svn_element__tree_get(const svn_element__tree_t *tree,
int eid);
-svn_error_t *
+void
svn_element__tree_set(svn_element__tree_t *tree,
int eid,
const svn_element__content_t *element);
diff --git a/subversion/include/private/svn_fs_fs_private.h b/subversion/include/private/svn_fs_fs_private.h
index d2573d447c9d..2ca61e4cf8c1 100644
--- a/subversion/include/private/svn_fs_fs_private.h
+++ b/subversion/include/private/svn_fs_fs_private.h
@@ -255,22 +255,6 @@ typedef struct svn_fs_fs__stats_t
apr_hash_t *by_extension;
} svn_fs_fs__stats_t;
-
-/* Scan all contents of the repository FS and return statistics in *STATS,
- * allocated in RESULT_POOL. Report progress through PROGRESS_FUNC with
- * PROGRESS_BATON, if PROGRESS_FUNC is not NULL.
- * Use SCRATCH_POOL for temporary allocations.
- */
-svn_error_t *
-svn_fs_fs__get_stats(svn_fs_fs__stats_t **stats,
- svn_fs_t *fs,
- svn_fs_progress_notify_func_t progress_func,
- void *progress_baton,
- svn_cancel_func_t cancel_func,
- void *cancel_baton,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
-
/* A node-revision ID in FSFS consists of 3 sub-IDs ("parts") that consist
* of a creation REVISION number and some revision- / transaction-local
* counter value (NUMBER). Old-style ID parts use global counter values.
@@ -325,33 +309,60 @@ typedef svn_error_t *
void *baton,
apr_pool_t *scratch_pool);
-/* Read the P2L index for the rev / pack file containing REVISION in FS.
- * For each index entry, invoke CALLBACK_FUNC with CALLBACK_BATON.
- * If not NULL, call CANCEL_FUNC with CANCEL_BATON from time to time.
- * Use SCRATCH_POOL for temporary allocations.
- */
-svn_error_t *
-svn_fs_fs__dump_index(svn_fs_t *fs,
- svn_revnum_t revision,
- svn_fs_fs__dump_index_func_t callback_func,
- void *callback_baton,
- svn_cancel_func_t cancel_func,
- void *cancel_baton,
- apr_pool_t *scratch_pool);
-
-
-/* Rewrite the respective index information of the rev / pack file in FS
- * containing REVISION and use the svn_fs_fs__p2l_entry_t * array ENTRIES
- * as the new index contents. Allocate temporaries from SCRATCH_POOL.
- *
- * Note that this becomes a no-op if ENTRIES is empty. You may use a zero-
- * sized empty entry instead.
- */
-svn_error_t *
-svn_fs_fs__load_index(svn_fs_t *fs,
- svn_revnum_t revision,
- apr_array_header_t *entries,
- apr_pool_t *scratch_pool);
+typedef struct svn_fs_fs__ioctl_get_stats_input_t
+{
+ svn_fs_progress_notify_func_t progress_func;
+ void *progress_baton;
+} svn_fs_fs__ioctl_get_stats_input_t;
+
+typedef struct svn_fs_fs__ioctl_get_stats_output_t
+{
+ svn_fs_fs__stats_t *stats;
+} svn_fs_fs__ioctl_get_stats_output_t;
+
+SVN_FS_DECLARE_IOCTL_CODE(SVN_FS_FS__IOCTL_GET_STATS, SVN_FS_TYPE_FSFS, 1000);
+
+typedef struct svn_fs_fs__ioctl_dump_index_input_t
+{
+ svn_revnum_t revision;
+ svn_fs_fs__dump_index_func_t callback_func;
+ void *callback_baton;
+} svn_fs_fs__ioctl_dump_index_input_t;
+
+SVN_FS_DECLARE_IOCTL_CODE(SVN_FS_FS__IOCTL_DUMP_INDEX, SVN_FS_TYPE_FSFS, 1001);
+
+typedef struct svn_fs_fs__ioctl_load_index_input_t
+{
+ svn_revnum_t revision;
+ /* Array of svn_fs_fs__p2l_entry_t * entries. */
+ apr_array_header_t *entries;
+} svn_fs_fs__ioctl_load_index_input_t;
+
+SVN_FS_DECLARE_IOCTL_CODE(SVN_FS_FS__IOCTL_LOAD_INDEX, SVN_FS_TYPE_FSFS, 1002);
+
+typedef struct svn_fs_fs__ioctl_revision_size_input_t
+{
+ svn_revnum_t revision;
+} svn_fs_fs__ioctl_revision_size_input_t;
+
+typedef struct svn_fs_fs__ioctl_revision_size_output_t
+{
+ apr_off_t rev_size;
+} svn_fs_fs__ioctl_revision_size_output_t;
+
+/* See svn_fs_fs__revision_size(). */
+SVN_FS_DECLARE_IOCTL_CODE(SVN_FS_FS__IOCTL_REVISION_SIZE, SVN_FS_TYPE_FSFS, 1003);
+
+typedef struct svn_fs_fs__ioctl_build_rep_cache_input_t
+{
+ svn_revnum_t start_rev;
+ svn_revnum_t end_rev;
+ svn_fs_progress_notify_func_t progress_func;
+ void *progress_baton;
+} svn_fs_fs__ioctl_build_rep_cache_input_t;
+
+/* See svn_fs_fs__build_rep_cache(). */
+SVN_FS_DECLARE_IOCTL_CODE(SVN_FS_FS__IOCTL_BUILD_REP_CACHE, SVN_FS_TYPE_FSFS, 1004);
#ifdef __cplusplus
}
diff --git a/subversion/include/private/svn_repos_private.h b/subversion/include/private/svn_repos_private.h
index c65b73fc1e69..1fd34e8053c7 100644
--- a/subversion/include/private/svn_repos_private.h
+++ b/subversion/include/private/svn_repos_private.h
@@ -31,6 +31,7 @@
#include "svn_types.h"
#include "svn_repos.h"
+#include "svn_delta.h"
#include "svn_editor.h"
#include "svn_config.h"
@@ -85,9 +86,11 @@ svn_repos__validate_prop(const char *name,
*
* NAME is used to check that VALUE should be normalized, and if this
* is the case, VALUE is then normalized, allocated from RESULT_POOL.
- * If no normalization is required, VALUE will be copied to RESULT_POOL
- * unchanged. If NORMALIZED_P is not NULL, and the normalization
- * happened, set *NORMALIZED_P to non-zero. If the property is returned
+ * If no normalization happened, *RESULT_P will be set to VALUE, and
+ * no copying of the value will occur.
+ *
+ * If NORMALIZED_P is not NULL, and the normalization happened,
+ * set *NORMALIZED_P to non-zero. If the property is returned
* unchanged and NORMALIZED_P is not NULL, then *NORMALIZED_P will be
* set to zero. SCRATCH_POOL will be used for temporary allocations.
*/
@@ -296,6 +299,23 @@ svn_repos__dump_headers(svn_stream_t *stream,
svn_repos__dumpfile_headers_t *headers,
apr_pool_t *scratch_pool);
+/* Write a magic header record to DUMP_STREAM specifying format version
+ * VERSION.
+ */
+svn_error_t *
+svn_repos__dump_magic_header_record(svn_stream_t *dump_stream,
+ int version,
+ apr_pool_t *pool);
+
+/* Write a UUID record to DUMP_STREAM.
+ *
+ * If UUID is NULL then write nothing at all.
+ */
+svn_error_t *
+svn_repos__dump_uuid_header_record(svn_stream_t *dump_stream,
+ const char *uuid,
+ apr_pool_t *pool);
+
/* Write a revision record to DUMP_STREAM for revision REVISION with revision
* properies REVPROPS, creating appropriate headers.
*
@@ -349,6 +369,27 @@ svn_repos__dump_node_record(svn_stream_t *dump_stream,
svn_boolean_t content_length_always,
apr_pool_t *scratch_pool);
+/**
+ * Get a dump editor @a editor along with a @a edit_baton allocated in
+ * @a pool. The editor will write output to @a stream.
+ *
+ * @a update_anchor_relpath is the repository relative path of the
+ * anchor of the update-style drive which will happen on @a *editor;
+ * if a replay-style drive will instead be used, it should be passed
+ * as @c NULL.
+ *
+ * In contrast to the dump editor used inside svn_repos_dump_fs4(), this
+ * one supports only deltas mode.
+ *
+ * ### TODO: Unify with the dump editor inside svn_repos_dump_fs4().
+ */
+svn_error_t *
+svn_repos__get_dump_editor(const svn_delta_editor_t **editor,
+ void **edit_baton,
+ svn_stream_t *stream,
+ const char *update_anchor_relpath,
+ apr_pool_t *pool);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/subversion/include/private/svn_sorts_private.h b/subversion/include/private/svn_sorts_private.h
index 2d5f1887f1b7..d0fddc0c6488 100644
--- a/subversion/include/private/svn_sorts_private.h
+++ b/subversion/include/private/svn_sorts_private.h
@@ -120,26 +120,29 @@ svn_sort__array_lookup(const apr_array_header_t *array,
* @a insert_index, growing the array and shuffling existing elements along to
* make room.
*
+ * Raise an error if @a insert_index is less than 0 or greater than the length
+ * of the array.
+ *
* @note Private. For use by Subversion's own code only.
*/
-void
-svn_sort__array_insert(apr_array_header_t *array,
- const void *new_element,
- int insert_index);
+svn_error_t *
+svn_sort__array_insert2(apr_array_header_t *array,
+ const void *new_element,
+ int insert_index);
/* Remove @a elements_to_delete elements starting at @a delete_index from the
- * array @a arr. If @a delete_index is not a valid element of @a arr,
- * @a elements_to_delete is not greater than zero, or
- * @a delete_index + @a elements_to_delete is greater than @a arr->nelts,
- * then do nothing.
+ * array @a arr.
+ *
+ * Raise an error if the indexes to delete extends outside the array bounds
+ * or if @a elements_to_delete is not greater than zero.
*
* @note Private. For use by Subversion's own code only.
*/
-void
-svn_sort__array_delete(apr_array_header_t *arr,
- int delete_index,
- int elements_to_delete);
+svn_error_t *
+svn_sort__array_delete2(apr_array_header_t *arr,
+ int delete_index,
+ int elements_to_delete);
/* Reverse the order of elements in @a array, in place.
*
@@ -190,7 +193,7 @@ svn_priority_queue__size(svn_priority_queue__t *queue);
/**
* Returns a reference to the first element in the @a queue. The queue
- * contents remains unchanged. If the @a queue is empty, #NULL will be
+ * contents remains unchanged. If the @a queue is empty, NULL will be
* returned.
*/
void *
@@ -212,7 +215,7 @@ svn_priority_queue__pop(svn_priority_queue__t *queue);
/**
* Append the new @a element to the @a queue. @a element must neither be
- * #NULL nor the first element as returned by #svn_priority_queue__peek.
+ * NULL nor the first element as returned by #svn_priority_queue__peek.
*/
void
svn_priority_queue__push(svn_priority_queue__t *queue, const void *element);
diff --git a/subversion/include/private/svn_subr_private.h b/subversion/include/private/svn_subr_private.h
index d18c564748d0..468b7cc459f8 100644
--- a/subversion/include/private/svn_subr_private.h
+++ b/subversion/include/private/svn_subr_private.h
@@ -389,27 +389,27 @@ svn_hash__make(apr_pool_t *pool);
/** Struct that represents a key value pair read from a serialized hash
* representation. There are special cases that can also be represented:
- * a #NULL @a key signifies the end of the hash, a #NULL @a val for non-
+ * a NULL @a key signifies the end of the hash, a NULL @a val for non-
* NULL keys is only possible in incremental mode describes a deletion.
*
* @since New in 1.9.
*/
typedef struct svn_hash__entry_t
{
- /** 0-terminated Key. #NULL if this contains no data at all because we
+ /** 0-terminated Key. NULL if this contains no data at all because we
* encountered the end of the hash. */
char *key;
- /** Length of @a key. Must be 0 if @a key is #NULL. */
+ /** Length of @a key. Must be 0 if @a key is NULL. */
apr_size_t keylen;
- /** 0-terminated value stored with the key. If this is #NULL for a
+ /** 0-terminated value stored with the key. If this is NULL for a
* non-NULL @a key, then this means that the key shall be removed from
- * the hash (only used in incremental mode). Must be #NULL if @a key is
- * #NULL. */
+ * the hash (only used in incremental mode). Must be NULL if @a key is
+ * NULL. */
char *val;
- /** Length of @a val. Must be 0 if @a val is #NULL. */
+ /** Length of @a val. Must be 0 if @a val is NULL. */
apr_size_t vallen;
} svn_hash__entry_t;
diff --git a/subversion/include/private/svn_wc_private.h b/subversion/include/private/svn_wc_private.h
index 521d092be692..9e316cda3b8c 100644
--- a/subversion/include/private/svn_wc_private.h
+++ b/subversion/include/private/svn_wc_private.h
@@ -348,19 +348,21 @@ svn_wc__get_wcroot(const char **wcroot_abspath,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
-/** Set @a *dir to the abspath of the directory in which shelved patches
- * are stored, which is inside the WC's administrative directory, and ensure
- * the directory exists.
+/** Set @a *dir to the abspath of the directory in which administrative
+ * data for experimental features may be stored. This directory is inside
+ * the WC's administrative directory. Ensure the directory exists.
*
* @a local_abspath is any path in the WC, and is used to find the WC root.
+ *
+ * @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
-svn_wc__get_shelves_dir(char **dir,
- svn_wc_context_t *wc_ctx,
- const char *local_abspath,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
+svn_wc__get_experimental_dir(char **dir,
+ svn_wc_context_t *wc_ctx,
+ const char *local_abspath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
/**
* The following are temporary APIs to aid in the transition from wc-1 to
@@ -537,7 +539,7 @@ svn_wc__node_get_origin(svn_boolean_t *is_copy,
* If @a base_only is TRUE then only the base node will be examined,
* otherwise the current base or working node will be examined.
*
- * If a value is not interesting you can pass #NULL.
+ * If a value is not interesting you can pass NULL.
*
* If @a local_abspath is not in the working copy, return
* @c SVN_ERR_WC_PATH_NOT_FOUND. Use @a scratch_pool for all temporary
@@ -615,6 +617,42 @@ svn_wc__node_get_base(svn_node_kind_t *kind,
apr_pool_t *scratch_pool);
+/* Return an array of const char * elements, which represent local absolute
+ * paths for nodes, within the working copy indicated by WRI_ABSPATH, which
+ * have a basename matching BASENAME and have node kind KIND.
+ * If no such nodes exist, return an empty array.
+ *
+ * This function returns only paths to nodes which are present in the highest
+ * layer of the WC. In other words, paths to deleted and/or excluded nodes are
+ * never returned.
+ */
+svn_error_t *
+svn_wc__find_working_nodes_with_basename(apr_array_header_t **abspaths,
+ const char *wri_abspath,
+ const char *basename,
+ svn_node_kind_t kind,
+ svn_wc_context_t *wc_ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/* Return an array of const char * elements, which represent local absolute
+ * paths for nodes, within the working copy indicated by WRI_ABSPATH, which
+ * are copies of REPOS_RELPATH and have node kind KIND.
+ * If no such nodes exist, return an empty array.
+ *
+ * This function returns only paths to nodes which are present in the highest
+ * layer of the WC. In other words, paths to deleted and/or excluded nodes are
+ * never returned.
+ */
+svn_error_t *
+svn_wc__find_copies_of_repos_path(apr_array_header_t **abspaths,
+ const char *wri_abspath,
+ const char *repos_relpath,
+ svn_node_kind_t kind,
+ svn_wc_context_t *wc_ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
/* Get the working revision of @a local_abspath using @a wc_ctx. If @a
* local_abspath is not in the working copy, return @c
* SVN_ERR_WC_PATH_NOT_FOUND.
@@ -1762,7 +1800,7 @@ svn_wc__resolve_conflicts(svn_wc_context_t *wc_ctx,
void *notify_baton,
apr_pool_t *scratch_pool);
-/**
+/**
* Resolve the text conflict at LOCAL_ABSPATH as per CHOICE, and then
* mark the conflict resolved.
* The working copy must already be locked for resolving, e.g. by calling
@@ -1779,7 +1817,7 @@ svn_wc__conflict_text_mark_resolved(svn_wc_context_t *wc_ctx,
void *notify_baton,
apr_pool_t *scratch_pool);
-/**
+/**
* Resolve the conflicted property PROPNAME at LOCAL_ABSPATH as per CHOICE,
* and then mark the conflict resolved. If MERGED_VALUE is not NULL, this is
* the new merged property, used when choosing #svn_wc_conflict_choose_merged.
@@ -1810,7 +1848,7 @@ svn_wc__conflict_prop_mark_resolved(svn_wc_context_t *wc_ctx,
*
* The tree conflict at LOCAL_ABSPATH must have the following properties or
* SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE will be returned:
- *
+ *
* operation: svn_wc_operation_update or svn_wc_operation_switch
* local change: svn_wc_conflict_reason_deleted or
* svn_wc_conflict_reason_replaced or
@@ -1847,7 +1885,7 @@ svn_wc__conflict_tree_update_break_moved_away(svn_wc_context_t *wc_ctx,
*
* The tree conflict at LOCAL_ABSPATH must have the following properties or
* SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE will be returned:
- *
+ *
* operation: svn_wc_operation_update or svn_wc_operation_switch
* local change: svn_wc_conflict_reason_deleted or
* svn_wc_conflict_reason_replaced
@@ -1883,7 +1921,7 @@ svn_wc__conflict_tree_update_raise_moved_away(svn_wc_context_t *wc_ctx,
*
* The tree conflict at LOCAL_ABSPATH must have the following properties or
* SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE will be returned:
- *
+ *
* operation: svn_wc_operation_update or svn_wc_operation_switch
* local change: svn_wc_conflict_reason_moved_away
* incoming change: svn_wc_conflict_action_edit
@@ -2044,15 +2082,19 @@ svn_wc__acquire_write_lock_for_resolve(const char **lock_root_abspath,
/* The implemementation of svn_wc_diff6(), but reporting to a diff processor
*
- * If ROOT_RELPATH is not NULL, set *ROOT_RELPATH to the target of the diff
- * within the diff namespace. ("" or a single path component).
+ * New mode, when ANCHOR_AT_GIVEN_PATHS is true:
+ *
+ * Anchor the DIFF_PROCESSOR at LOCAL_ABSPATH.
+ *
+ * Backward compatibility mode for svn_wc_diff6(),
+ * when ANCHOR_AT_GIVEN_PATHS is false:
*
- * If ROOT_IS_FILE is NOT NULL set it
- * the first processor call. (The anchor is LOCAL_ABSPATH or an ancestor of it)
+ * Send diff processor relpaths relative to LOCAL_ABSPATH if it is a
+ * directory; otherwise, relative to the parent of LOCAL_ABSPATH.
+ * This matches the "anchor and target" semantics of svn_wc_diff6().
*/
svn_error_t *
-svn_wc__diff7(const char **root_relpath,
- svn_boolean_t *root_is_dir,
+svn_wc__diff7(svn_boolean_t anchor_at_given_paths,
svn_wc_context_t *wc_ctx,
const char *local_abspath,
svn_depth_t depth,
diff --git a/subversion/include/svn_client.h b/subversion/include/svn_client.h
index 06dbbc35a7b3..c8bc74b3cbca 100644
--- a/subversion/include/svn_client.h
+++ b/subversion/include/svn_client.h
@@ -500,7 +500,7 @@ typedef struct svn_client_commit_item3_t
* contents in @c incoming_prop_changes->pool, so that it has the
* same lifetime as this data structure.
*
- * See http://subversion.tigris.org/issues/show_bug.cgi?id=806 for a
+ * See https://issues.apache.org/jira/browse/SVN-806 for a
* description of what would happen if the post-commit process
* didn't group these changes together with all other changes to the
* item.
@@ -520,7 +520,7 @@ typedef struct svn_client_commit_item3_t
/**
* When processing the commit this contains the relative path for
- * the commit session. #NULL until the commit item is preprocessed.
+ * the commit session. NULL until the commit item is preprocessed.
* @since New in 1.7.
*/
const char *session_relpath;
@@ -736,16 +736,11 @@ typedef svn_error_t *(*svn_client_get_commit_log_t)(
* @{
*/
-/** Callback type used by svn_client_blame5() to notify the caller
+/** Callback type used by svn_client_blame6() to notify the caller
* that line @a line_no of the blamed file was last changed in @a revision
* which has the revision properties @a rev_props, and that the contents were
* @a line.
*
- * @a start_revnum and @a end_revnum contain the start and end revision
- * number of the entire blame operation, as determined from the repository
- * inside svn_client_blame5(). This can be useful for the blame receiver
- * to format the blame output.
- *
* If svn_client_blame5() was called with @a include_merged_revisions set to
* TRUE, @a merged_revision, @a merged_rev_props and @a merged_path will be
* set, otherwise they will be NULL. @a merged_path will be set to the
@@ -758,6 +753,49 @@ typedef svn_error_t *(*svn_client_get_commit_log_t)(
* will be true if the reason there is no blame information is that the line
* was modified locally. In all other cases @a local_change will be false.
*
+ * Character Encoding and Line Splitting:
+ *
+ * It is up to the client to determine the character encoding. The @a line
+ * content is delivered without any encoding conversion. The line splitting
+ * is designed to work with ASCII-compatible encodings including UTF-8. Any
+ * of the byte sequences LF ("\n"), CR ("\n"), CR LF ("\r\n") ends a line
+ * and is not included in @a line. The @a line content can include all other
+ * byte values including zero (ASCII NUL).
+ *
+ * @note That is how line splitting is done on the final file content, from
+ * which this callback is driven. It is not entirely clear whether the line
+ * splitting used to calculate diffs between each revision and assign a
+ * revision number to each line is exactly compatible with this in all cases.
+ *
+ * Blaming files that have <tt>svn:mime-type</tt> set to something other
+ * than <tt>text/...</tt> requires the @a ignore_mime_type flag to be set to
+ * true when calling the svn_client_blame6 function.
+ *
+ * @since New in 1.12.
+ */
+typedef svn_error_t *(*svn_client_blame_receiver4_t)(
+ void *baton,
+ apr_int64_t line_no,
+ svn_revnum_t revision,
+ apr_hash_t *rev_props,
+ svn_revnum_t merged_revision,
+ apr_hash_t *merged_rev_props,
+ const char *merged_path,
+ const svn_string_t *line,
+ svn_boolean_t local_change,
+ apr_pool_t *pool);
+
+/**
+ * Similar to #svn_client_blame_receiver4_t, but with the @a line parameter
+ * as a (const char*) instead of an svn_string_t, and the parameters
+ * @a start_revnum and @a end_revnum contain the start and end revision
+ * number of the entire blame operation, as resolved from the repository
+ * inside svn_client_blame6().
+ *
+ * @deprecated Provided for backward compatibility with the 1.11 API.
+ * To replace @a start_revnum and @a end_revnum, see the corresponding
+ * output parameters in svn_client_blame6().
+ *
* @since New in 1.7.
*/
typedef svn_error_t *(*svn_client_blame_receiver3_t)(
@@ -1547,6 +1585,38 @@ svn_client_switch(svn_revnum_t *result_rev,
/** @} */
+/** Callback for svn_client__layout_list()
+ *
+ * @warning EXPERIMENTAL.
+ */
+typedef svn_error_t * (*svn_client__layout_func_t)(
+ void *layout_baton,
+ const char *local_abspath,
+ const char *repos_root_url,
+ svn_boolean_t not_present,
+ svn_boolean_t url_changed,
+ const char *url,
+ svn_boolean_t revision_changed,
+ svn_revnum_t revision,
+ svn_boolean_t depth_changed,
+ svn_depth_t depth,
+ apr_pool_t *scratch_pool);
+
+/**
+ * Describe the layout of the working copy below @a local_abspath to
+ * the callback @a layout.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__layout_list(const char *local_abspath,
+ svn_client__layout_func_t layout,
+ void *layout_baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool);
+
+
/**
* @defgroup Add Begin versioning files/directories in a working copy.
*
@@ -2888,6 +2958,12 @@ svn_client_log(const apr_array_header_t *targets,
* #SVN_RA_CAPABILITY_GET_FILE_REVS_REVERSE) and the client is 1.9.0 or
* newer.
*
+ * Before the first call to @a receiver, set @a *start_revnum_p and
+ * @a *end_revnum_p to the start and end revision number of the entire
+ * blame operation, as resolved from the repository. This can be useful
+ * for the blame receiver to format the blame output. Any or both of these
+ * arguments may be @c NULL.
+ *
* Use @a diff_options to determine how to compare different revisions of the
* target.
*
@@ -2896,8 +2972,33 @@ svn_client_log(const apr_array_header_t *targets,
*
* Use @a pool for any temporary allocation.
*
+ * @since New in 1.12.
+ */
+svn_error_t *
+svn_client_blame6(svn_revnum_t *start_revnum_p,
+ svn_revnum_t *end_revnum_p,
+ const char *path_or_url,
+ const svn_opt_revision_t *peg_revision,
+ const svn_opt_revision_t *start,
+ const svn_opt_revision_t *end,
+ const svn_diff_file_options_t *diff_options,
+ svn_boolean_t ignore_mime_type,
+ svn_boolean_t include_merged_revisions,
+ svn_client_blame_receiver4_t receiver,
+ void *receiver_baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool);
+
+
+/**
+ * Similar to svn_client_blame6(), but with #svn_client_blame_receiver3_t
+ * as the receiver.
+ *
+ * @deprecated Provided for backwards compatibility with the 1.11 API.
+ *
* @since New in 1.7.
*/
+SVN_DEPRECATED
svn_error_t *
svn_client_blame5(const char *path_or_url,
const svn_opt_revision_t *peg_revision,
@@ -2911,9 +3012,8 @@ svn_client_blame5(const char *path_or_url,
svn_client_ctx_t *ctx,
apr_pool_t *pool);
-
/**
- * Similar to svn_client_blame5(), but with #svn_client_blame_receiver3_t
+ * Similar to svn_client_blame5(), but with #svn_client_blame_receiver2_t
* as the receiver.
*
* @deprecated Provided for backwards compatibility with the 1.6 API.
@@ -3060,11 +3160,17 @@ svn_client_blame(const char *path_or_url,
* The above two options are mutually exclusive. It is an error to set
* both to TRUE.
*
+ * If @a pretty_print_mergeinfo is true, then describe 'svn:mergeinfo'
+ * property changes in a human-readable form that says what changes were
+ * merged or reverse merged; otherwise (or if the mergeinfo property values
+ * don't parse correctly) display them just like any other property.
+ *
* Generated headers are encoded using @a header_encoding.
*
- * Diff output will not be generated for binary files, unless @a
- * ignore_content_type is TRUE, in which case diffs will be shown
- * regardless of the content types.
+ * If either side has an svn:mime-type property that indicates 'binary'
+ * content, then if @a ignore_content_type is set, attempt to produce the
+ * diff in the usual way, otherwise produce a 'GIT binary diff' in git mode
+ * or print a warning message in non-git mode.
*
* @a diff_options (an array of <tt>const char *</tt>) is used to pass
* additional command line options to the diff processes invoked to compare
@@ -3090,8 +3196,39 @@ svn_client_blame(const char *path_or_url,
* @note @a relative_to_dir doesn't affect the path index generated by
* external diff programs.
*
+ * @since New in 1.11.
+ */
+svn_error_t *
+svn_client_diff7(const apr_array_header_t *diff_options,
+ const char *path_or_url1,
+ const svn_opt_revision_t *revision1,
+ const char *path_or_url2,
+ const svn_opt_revision_t *revision2,
+ const char *relative_to_dir,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ svn_boolean_t no_diff_added,
+ svn_boolean_t no_diff_deleted,
+ svn_boolean_t show_copies_as_adds,
+ svn_boolean_t ignore_content_type,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
+ svn_boolean_t use_git_diff_format,
+ svn_boolean_t pretty_print_mergeinfo,
+ const char *header_encoding,
+ svn_stream_t *outstream,
+ svn_stream_t *errstream,
+ const apr_array_header_t *changelists,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool);
+
+/** Similar to svn_client_diff7(), but with @a pretty_print_mergeinfo
+ * always passed as @c TRUE.
+ *
+ * @deprecated Provided for backward compatibility with the 1.10 API.
* @since New in 1.8.
*/
+SVN_DEPRECATED
svn_error_t *
svn_client_diff6(const apr_array_header_t *diff_options,
const char *path_or_url1,
@@ -3249,14 +3386,45 @@ svn_client_diff(const apr_array_header_t *diff_options,
* be either a working-copy path or URL.
*
* If @a peg_revision is #svn_opt_revision_unspecified, behave
- * identically to svn_client_diff6(), using @a path_or_url for both of that
+ * identically to svn_client_diff7(), using @a path_or_url for both of that
* function's @a path_or_url1 and @a path_or_url2 arguments.
*
- * All other options are handled identically to svn_client_diff6().
+ * All other options are handled identically to svn_client_diff7().
*
* @since New in 1.8.
*/
svn_error_t *
+svn_client_diff_peg7(const apr_array_header_t *diff_options,
+ const char *path_or_url,
+ const svn_opt_revision_t *peg_revision,
+ const svn_opt_revision_t *start_revision,
+ const svn_opt_revision_t *end_revision,
+ const char *relative_to_dir,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ svn_boolean_t no_diff_added,
+ svn_boolean_t no_diff_deleted,
+ svn_boolean_t show_copies_as_adds,
+ svn_boolean_t ignore_content_type,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
+ svn_boolean_t use_git_diff_format,
+ svn_boolean_t pretty_print_mergeinfo,
+ const char *header_encoding,
+ svn_stream_t *outstream,
+ svn_stream_t *errstream,
+ const apr_array_header_t *changelists,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool);
+
+/** Similar to svn_client_diff_peg7(), but with @a pretty_print_mergeinfo
+ * always passed as @c TRUE.
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
+ * @since New in 1.7.
+ */
+SVN_DEPRECATED
+svn_error_t *
svn_client_diff_peg6(const apr_array_header_t *diff_options,
const char *path_or_url,
const svn_opt_revision_t *peg_revision,
@@ -3419,7 +3587,7 @@ svn_client_diff_peg(const apr_array_header_t *diff_options,
* Calls @a summarize_func with @a summarize_baton for each difference
* with a #svn_client_diff_summarize_t structure describing the difference.
*
- * See svn_client_diff6() for a description of the other parameters.
+ * See svn_client_diff7() for a description of the other parameters.
*
* @since New in 1.5.
*/
@@ -4274,17 +4442,23 @@ svn_client_relocate(const char *dir,
/**
* Restore the pristine version of working copy @a paths,
- * effectively undoing any local mods. For each path in @a paths,
- * revert it if it is a file. Else if it is a directory, revert
- * according to @a depth:
+ * effectively undoing any local mods. This means returning each
+ * path's versioned status to 'unmodified' and changing its on-disk
+ * state to match that.
+ *
+ * If an item was in a state of conflict, reverting also marks the
+ * conflict as resolved. If there are conflict marker files attached
+ * to the item, these are removed.
*
* @a paths is an array of (const char *) local WC paths.
*
- * If @a depth is #svn_depth_empty, revert just the properties on
- * the directory; else if #svn_depth_files, revert the properties
+ * For each path in @a paths, revert it if it is a file. Else if it is
+ * a directory, revert according to @a depth:
+ * If @a depth is #svn_depth_empty, revert just
+ * the directory; else if #svn_depth_files, revert the directory
* and any files immediately under the directory; else if
* #svn_depth_immediates, revert all of the preceding plus
- * properties on immediate subdirectories; else if #svn_depth_infinity,
+ * immediate subdirectories; else if #svn_depth_infinity,
* revert path and everything under it fully recursively.
*
* @a changelists is an array of <tt>const char *</tt> changelist
@@ -4296,9 +4470,18 @@ svn_client_relocate(const char *dir,
* If @a clear_changelists is TRUE, then changelist information for the
* paths is cleared while reverting.
*
- * If @a metadata_only is TRUE, the files and directories aren't changed
- * by the operation. If there are conflict marker files attached to the
- * targets these are removed.
+ * The @a metadata_only and @a added_keep_local options control the
+ * extent of reverting. If @a metadata_only is TRUE, the working copy
+ * files are untouched, but if there are conflict marker files attached
+ * to these files these markers are removed. Otherwise, if
+ * @a added_keep_local is TRUE, then all items are reverted except an
+ * item that was scheduled as plain 'add' (not a copy) will not be
+ * removed from the working copy. Otherwise, all items are reverted and
+ * their on-disk state changed to match.
+ *
+ * Consult the @c SVN_CONFIG_OPTION_USE_COMMIT_TIMES option in @a ctx to
+ * determine whether or not to revert timestamp to the time of last
+ * commit ('use-commit-times = yes').
*
* If @a ctx->notify_func2 is non-NULL, then for each item reverted,
* call @a ctx->notify_func2 with @a ctx->notify_baton2 and the path of
@@ -4308,8 +4491,28 @@ svn_client_relocate(const char *dir,
* then do not error, just invoke @a ctx->notify_func2 with @a
* ctx->notify_baton2, using notification code #svn_wc_notify_skip.
*
+ * @warning The 'revert' command intentionally and permanently loses
+ * local modifications.
+ *
+ * @since New in 1.11.
+ */
+svn_error_t *
+svn_client_revert4(const apr_array_header_t *paths,
+ svn_depth_t depth,
+ const apr_array_header_t *changelists,
+ svn_boolean_t clear_changelists,
+ svn_boolean_t metadata_only,
+ svn_boolean_t added_keep_local,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool);
+
+/** Similar to svn_client_revert4(), but with @a added_keep_local set to
+ * TRUE.
+ *
* @since New in 1.9.
+ * @deprecated Provided for backwards compatibility with the 1.10 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_client_revert3(const apr_array_header_t *paths,
svn_depth_t depth,
@@ -4427,12 +4630,23 @@ typedef enum svn_client_conflict_option_id_t {
svn_client_conflict_option_incoming_move_dir_merge,
/* Options for local move vs incoming edit on merge. */
- svn_client_conflict_option_local_move_file_text_merge
+ svn_client_conflict_option_local_move_file_text_merge,
+ svn_client_conflict_option_local_move_dir_merge, /**< @since New in 1.11. */
+
+ /* Options for local missing vs incoming edit on merge. */
+ svn_client_conflict_option_sibling_move_file_text_merge, /**< @since New in 1.11. */
+ svn_client_conflict_option_sibling_move_dir_merge, /**< @since New in 1.11. */
+
+ /* Options for local move vs incoming move on merge. */
+ svn_client_conflict_option_both_moved_file_merge, /*< @since New in 1.12 */
+ svn_client_conflict_option_both_moved_file_move_merge, /*< @since New in 1.12 */
+ svn_client_conflict_option_both_moved_dir_merge, /*< @since New in 1.12 */
+ svn_client_conflict_option_both_moved_dir_move_merge, /*< @since New in 1.12 */
} svn_client_conflict_option_id_t;
/**
* Set a merged property value on @a option to @a merged_propval.
- *
+ *
* Setting the merged value is required before resolving the property
* conflict using an option with ID svn_client_conflict_option_merged_text.
*
@@ -4448,26 +4662,45 @@ svn_client_conflict_option_set_merged_propval(
const svn_string_t *merged_propval);
/**
- * Get a list of possible repository paths which can be applied to the
- * svn_client_conflict_option_incoming_move_file_text_merge or
- * svn_client_conflict_option_incoming_move_dir_merge resolution
- * @a option. (If a different option is passed in, this function will
- * raise an assertion failure.)
- *
- * In some situations, there can be multiple possible destinations for an
- * incoming move. One such situation is where a file was copied and moved
- * in the same revision: svn cp a b; svn mv a c; svn commit
+ * Get a list of possible repository paths which can be applied to @a option.
+ *
+ * In some situations, there can be multiple possible destinations for a move.
+ * One such situation is where a file was copied and moved in the same revision:
+ * svn cp a b; svn mv a c; svn commit
* When this move is merged elsewhere, both b and c will appear as valid move
* destinations to the conflict resolver. To resolve such ambiguity, the client
* may call this function to obtain a list of possible destinations the user
* may choose from.
*
+ * @a *possible_moved_to_repos_relpaths is set to NULL if the @a option does
+ * not support multiple move targets. API users may assume that only one option
+ * among those which can be applied to a conflict supports move targets.
+ *
* The array is allocated in @a result_pool and will have "const char *"
* elements pointing to strings also allocated in @a result_pool.
* All paths are relpaths, and relative to the repository root.
*
- * @see svn_client_conflict_option_set_moved_to_repos_relpath()
+ * @see svn_client_conflict_option_set_moved_to_repos_relpath2()
+ * @since New in 1.11.
+ */
+svn_error_t *
+svn_client_conflict_option_get_moved_to_repos_relpath_candidates2(
+ apr_array_header_t **possible_moved_to_repos_relpaths,
+ svn_client_conflict_option_t *option,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/**
+ * Get a list of possible repository paths which can be applied to the
+ * svn_client_conflict_option_incoming_move_file_text_merge, or the
+ * svn_client_conflict_option_incoming_move_dir_merge resolution @a option.
+ *
+ * In SVN 1.10, if a different option is passed in, this function will
+ * raise an assertion failure. Otherwise this function behaves just like
+ * svn_client_conflict_option_get_moved_to_repos_relpath_candidates2().
+ *
* @since New in 1.10.
+ * @deprecated use svn_client_conflict_option_get_moved_to_repos_relpath_candidates2()
*/
svn_error_t *
svn_client_conflict_option_get_moved_to_repos_relpath_candidates(
@@ -4477,19 +4710,34 @@ svn_client_conflict_option_get_moved_to_repos_relpath_candidates(
apr_pool_t *scratch_pool);
/**
- * Set the preferred moved target repository path for the
- * svn_client_conflict_option_incoming_move_file_text_merge or
- * svn_client_conflict_option_incoming_move_dir_merge resolution option.
- *
+ * Set the preferred moved target repository path. If @a option is not
+ * applicable to a moved target repository path, do nothing.
+ *
* @a preferred_move_target_idx must be a valid index into the list returned
* by svn_client_conflict_option_get_moved_to_repos_relpath_candidates().
- *
+ *
* This function can be called multiple times.
* It affects the output of svn_client_conflict_tree_get_description() and
* svn_client_conflict_option_get_description(). Call these functions again
* to get updated descriptions containing the newly selected move target.
*
+ * @since New in 1.11.
+ */
+svn_error_t *
+svn_client_conflict_option_set_moved_to_repos_relpath2(
+ svn_client_conflict_option_t *option,
+ int preferred_move_target_idx,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool);
+
+/**
+ * Like svn_client_conflict_option_set_moved_to_repos_relpath2(), except
+ * that in SVN 1.10 it raises an assertion failure if an option other
+ * than svn_client_conflict_option_incoming_move_file_text_merge or
+ * svn_client_conflict_option_incoming_move_dir_merge is passed.
+ *
* @since New in 1.10.
+ * @deprecated use svn_client_conflict_option_set_moved_to_repos_relpath2()
*/
svn_error_t *
svn_client_conflict_option_set_moved_to_repos_relpath(
@@ -4500,24 +4748,45 @@ svn_client_conflict_option_set_moved_to_repos_relpath(
/**
* Get a list of possible moved-to abspaths in the working copy which can be
- * applied to the svn_client_conflict_option_incoming_move_file_text_merge
- * or svn_client_conflict_option_incoming_move_dir_merge resolution @a option.
- * (If a different option is passed in, this function will raise an assertion
- * failure.)
- *
- * All paths in the returned list correspond to the repository path which
- * is assumed to be the destination of the incoming move operation.
- * To support cases where this destination path is ambiguous, the client may
- * call svn_client_conflict_option_get_moved_to_repos_relpath_candidates()
- * before calling this function to let the user select a repository path first.
- *
+ * applied to @a option.
+ *
+ * All working copy paths in the returned list correspond to one repository
+ * path which is be one of the possible destinations of a move operation.
+ * More than one repository-side move target candidate may exist; call
+ * svn_client_conflict_option_get_moved_to_repos_relpath_candidates() before
+ * calling this function to let the user select a repository path first.
+ * Otherwise, one of the repository-side paths will be selected internally.
+ *
+ * @a *possible_moved_to_abspaths is set to NULL if the @a option does not
+ * support multiple move targets. API users may assume that only one option
+ * among those which can be applied to a conflict supports move targets.
+ *
* If no possible moved-to paths can be found, return an empty array.
* This doesn't mean that no move happened in the repository. It is possible
* that the move destination is outside the scope of the current working copy,
* for example, in which case the conflict must be resolved in some other way.
*
- * @see svn_client_conflict_option_set_moved_to_abspath()
+ * @see svn_client_conflict_option_set_moved_to_abspath2()
+ * @since New in 1.11.
+ */
+svn_error_t *
+svn_client_conflict_option_get_moved_to_abspath_candidates2(
+ apr_array_header_t **possible_moved_to_abspaths,
+ svn_client_conflict_option_t *option,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/**
+ * Get a list of possible moved-to abspaths in the working copy which can be
+ * svn_client_conflict_option_incoming_move_file_text_merge, or the
+ * svn_client_conflict_option_incoming_move_dir_merge resolution @a option.
+ *
+ * In SVN 1.10, if a different option is passed in, this function will
+ * raise an assertion failure. Otherwise this function behaves just like
+ * svn_client_conflict_option_get_moved_to_abspath_candidates2().
+ *
* @since New in 1.10.
+ * @deprecated use svn_client_conflict_option_get_moved_to_abspath_candidates2()
*/
svn_error_t *
svn_client_conflict_option_get_moved_to_abspath_candidates(
@@ -4527,14 +4796,34 @@ svn_client_conflict_option_get_moved_to_abspath_candidates(
apr_pool_t *scratch_pool);
/**
- * Set the preferred moved target abspath for the
- * svn_client_conflict_option_incoming_move_file_text_merge or
- * svn_client_conflict_option_incoming_move_dir_merge resolution option.
- *
+ * Set the preferred moved target working copy path. If @a option is not
+ * applicable to a moved target working copy path, do nothing.
+ *
* @a preferred_move_target_idx must be a valid index into the list
- * returned by svn_client_conflict_option_get_moved_to_abspath_candidates().
- *
+ * returned by svn_client_conflict_option_get_moved_to_abspath_candidates2().
+ *
+ * This function can be called multiple times.
+ * It affects the output of svn_client_conflict_tree_get_description() and
+ * svn_client_conflict_option_get_description(). Call these functions again
+ * to get updated descriptions containing the newly selected move target.
+ *
+ * @since New in 1.11.
+ */
+svn_error_t *
+svn_client_conflict_option_set_moved_to_abspath2(
+ svn_client_conflict_option_t *option,
+ int preferred_move_target_idx,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool);
+
+/**
+ * Like svn_client_conflict_option_set_moved_to_abspath2(), except that
+ * in SVN 1.10 this function raises an assertion failure if an option
+ * other than svn_client_conflict_option_incoming_move_file_text_merge or
+ * svn_client_conflict_option_incoming_move_dir_merge is passed.
+ *
* @since New in 1.10.
+ * @deprecated use svn_client_conflict_option_set_moved_to_abspath2()
*/
svn_error_t *
svn_client_conflict_option_set_moved_to_abspath(
@@ -4558,7 +4847,7 @@ svn_client_conflict_option_find_by_id(
/**
* Return a conflict for the conflicted path @a local_abspath.
- *
+ *
* @since New in 1.10.
*/
svn_error_t *
@@ -4573,7 +4862,7 @@ svn_client_conflict_get(svn_client_conflict_t **conflict,
*
* The lifetime of @a conflict is limited. Its allocation in
* memory will not persist beyond this callback's execution.
- *
+ *
* @since New in 1.10.
*/
typedef svn_error_t *(*svn_client_conflict_walk_func_t)(
@@ -4583,15 +4872,15 @@ typedef svn_error_t *(*svn_client_conflict_walk_func_t)(
/**
* Walk all conflicts within the specified @a depth of @a local_abspath.
- * Pass each conflict found during the walk to the @conflict_walk_func
+ * Pass each conflict found during the walk to the @a conflict_walk_func
* callback, along with @a conflict_walk_func_baton.
* Use cancellation and notification support provided by client context @a ctx.
- *
+ *
* This callback may choose to resolve the conflict. If the act of resolving
* a conflict creates new conflicts within the walked working copy (as might
* be the case for some tree conflicts), the callback will be invoked for each
* such new conflict as well.
- *
+ *
* @since New in 1.10.
*/
svn_error_t *
@@ -4611,7 +4900,7 @@ svn_client_conflict_walk(const char *local_abspath,
* It contains the names of conflicted properties. If no property conflict
* exists, the array will contain no elements.
*
-* @since New in 1.10.
+* @since New in 1.10.
*/
svn_error_t *
svn_client_conflict_get_conflicted(svn_boolean_t *text_conflicted,
@@ -4794,7 +5083,7 @@ svn_client_conflict_option_get_description(svn_client_conflict_option_t *option,
* Client implementations which aim to avoid excessive interactive prompting
* may wish to try a recommended resolution option before falling back to
* asking the user which option to use.
- *
+ *
* Conflict resolution with a recommended option is not guaranteed to succeed.
* Clients should check for errors when trying to resolve a conflict and fall
* back to other options and/or interactive prompting when the recommended
@@ -4812,7 +5101,7 @@ svn_client_conflict_get_recommended_option_id(svn_client_conflict_t *conflict);
* Return the absolute path to the conflicted working copy node described
* by @a conflict.
*
- * @since New in 1.10.
+ * @since New in 1.10.
*/
const char *
svn_client_conflict_get_local_abspath(svn_client_conflict_t *conflict);
@@ -4821,7 +5110,7 @@ svn_client_conflict_get_local_abspath(svn_client_conflict_t *conflict);
* Return the operation during which the conflict described by @a
* conflict was recorded.
*
- * @since New in 1.10.
+ * @since New in 1.10.
*/
svn_wc_operation_t
svn_client_conflict_get_operation(svn_client_conflict_t *conflict);
@@ -4829,8 +5118,8 @@ svn_client_conflict_get_operation(svn_client_conflict_t *conflict);
/**
* Return the action an update, switch, or merge operation attempted to
* perform on the working copy node described by @a conflict.
- *
- * @since New in 1.10.
+ *
+ * @since New in 1.10.
*/
svn_wc_conflict_action_t
svn_client_conflict_get_incoming_change(svn_client_conflict_t *conflict);
@@ -4843,14 +5132,14 @@ svn_client_conflict_get_incoming_change(svn_client_conflict_t *conflict);
* modifications in the working copy. During merge operations it may
* additionally be part of the history of the merge target branch, anywhere
* between the common ancestor revision and the working copy revision.
- *
- * @since New in 1.10.
+ *
+ * @since New in 1.10.
*/
svn_wc_conflict_reason_t
svn_client_conflict_get_local_change(svn_client_conflict_t *conflict);
/**
- * Return information about the repository associated with @a conflict.
+ * Return information about the repository associated with @a conflict.
* In case of a foreign-repository merge this will differ from the
* repository information associated with the merge target working copy.
*
@@ -4868,11 +5157,11 @@ svn_client_conflict_get_repos_info(const char **repos_root_url,
* old version of the conflicted node described by @a conflict.
*
* If the repository-relative path is not available, the @a
- * *incoming_old_repos_relpath will be set to @c NULL,
+ * *incoming_old_repos_relpath will be set to @c NULL,
*
* If the peg revision is not available, @a *incoming_old_regrev will be
* set to SVN_INVALID_REVNUM.
- *
+ *
* If the node kind is not available or if the node does not exist at the
* specified path and revision, @a *incoming_old_node_kind will be set to
* svn_node_none.
@@ -4881,7 +5170,7 @@ svn_client_conflict_get_repos_info(const char **repos_root_url,
* Any output parameter may be set to @c NULL by the caller to indicate that
* a particular piece of information should not be returned.
*
- * In case of tree conflicts, this path@revision does not necessarily exist
+ * In case of tree conflicts, this "path@revision" does not necessarily exist
* in the repository, and it does not necessarily represent the incoming
* change which is responsible for the occurance of the tree conflict.
* The responsible incoming change is generally located somewhere between
@@ -4987,7 +5276,7 @@ svn_client_conflict_prop_get_reject_abspath(svn_client_conflict_t *conflict);
* Return the set of property values involved in the conflict of property
* PROPNAME described by @a conflict. If a property value is unavailable the
* corresponding output argument is set to @c NULL.
- *
+ *
* A 3-way diff of these property values can be generated with
* svn_diff_mem_string_diff3(). A merged version with conflict
* markers can be generated with svn_diff_mem_string_output_merge3().
@@ -5055,11 +5344,11 @@ const char *
svn_client_conflict_text_get_mime_type(svn_client_conflict_t *conflict);
/**
- * Return absolute paths to the versions of the text-conflicted file
+ * Return absolute paths to the versions of the text-conflicted file
* described by @a conflict.
*
* If a particular content is not available, it is set to @c NULL.
- *
+ *
* ### Should this be returning svn_stream_t instead of paths?
* @since: New in 1.10.
*/
@@ -5330,7 +5619,7 @@ svn_client_copy7(const apr_array_header_t *sources,
/**
* Similar to svn_client_copy7(), but doesn't support meta_data_only
* and cannot pin externals.
- *
+ *
*
* @since New in 1.7.
* @deprecated Provided for backward compatibility with the 1.8 API.
@@ -6549,7 +6838,7 @@ svn_client_list2(const char *path_or_url,
/**
* Similar to svn_client_list2(), but with @a recurse instead of @a depth.
- * If @a recurse is TRUE, pass #svn_depth_files for @a depth; else
+ * If @a recurse is FALSE, pass #svn_depth_immediates for @a depth; else
* pass #svn_depth_infinity.
*
* @since New in 1.4.
@@ -6714,169 +7003,12 @@ svn_client_cat(svn_stream_t *out,
/** @} end group: cat */
-
-/** Shelving commands
- *
- * @defgroup svn_client_shelve_funcs Client Shelving Functions
- * @{
- */
-
-/** Shelve a change.
- *
- * Shelve as @a name the local modifications found by @a paths, @a depth,
- * @a changelists. Revert the shelved change from the WC unless @a keep_local
- * is true.
- *
- * If @a dry_run is true, don't actually do it.
- *
- * @since New in 1.10.
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client_shelve(const char *name,
- const apr_array_header_t *paths,
- svn_depth_t depth,
- const apr_array_header_t *changelists,
- svn_boolean_t keep_local,
- svn_boolean_t dry_run,
- svn_client_ctx_t *ctx,
- apr_pool_t *pool);
-
-/** Unshelve the shelved change @a name.
- *
- * @a local_abspath is any path in the WC and is used to find the WC root.
- * Rename the shelved patch to add a '.bak' extension unless @a keep is true.
- *
- * If @a dry_run is true, don't actually do it.
- *
- * @since New in 1.10.
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client_unshelve(const char *name,
- const char *local_abspath,
- svn_boolean_t keep,
- svn_boolean_t dry_run,
- svn_client_ctx_t *ctx,
- apr_pool_t *pool);
-
-/** Delete the shelved patch @a name.
- *
- * @a local_abspath is any path in the WC and is used to find the WC root.
- *
- * If @a dry_run is true, don't actually do it.
- *
- * @since New in 1.10.
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client_shelves_delete(const char *name,
- const char *local_abspath,
- svn_boolean_t dry_run,
- svn_client_ctx_t *ctx,
- apr_pool_t *pool);
-
-/** Information about a shelved patch.
- *
- * @since New in 1.10.
- * @warning EXPERIMENTAL.
- */
-typedef struct svn_client_shelved_patch_info_t
-{
- const char *message; /* first line of log message */
- const char *patch_path; /* abspath of the patch file */
- svn_io_dirent2_t *dirent; /* info about the patch file */
- apr_time_t mtime; /* a copy of dirent->mtime */
-} svn_client_shelved_patch_info_t;
-
-/** Set @a *shelved_patch_infos to a hash, keyed by patch name, of pointers to
- * @c svn_client_shelved_patch_info_t structures.
- *
- * @a local_abspath is any path in the WC and is used to find the WC root.
- *
- * @since New in 1.10.
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client_shelves_list(apr_hash_t **shelved_patch_infos,
- const char *local_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
-
-/** Set @a *any_shelved to indicate if there are any shelved changes in this WC.
- *
- * This shall provide the answer fast, regardless of how many changes
- * are stored, unlike svn_client_shelves_list().
- *
- * ### Initial implementation isn't O(1) fast -- it just calls
- * svn_client_shelves_list().
- *
- * @a local_abspath is any path in the WC and is used to find the WC root.
- *
- * @since New in 1.10.
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client_shelves_any(svn_boolean_t *any_shelved,
- const char *local_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *scratch_pool);
-
-/** Set @a *affected_paths to a hash with one entry for each path affected
- * by the shelf @a name. The hash key is the old path and value is
- * the new path, both relative to the WC root. The key and value are the
- * same except when a path is moved or copied.
- *
- * @since New in 1.10.
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client_shelf_get_paths(apr_hash_t **affected_paths,
- const char *name,
- const char *local_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
-
-/** Set @a *has_changes to indicate whether the shelf @a name
- * contains any modifications, in other words if svn_client_shelf_get_paths()
- * would return a non-empty set of paths.
- *
- * @since New in 1.10.
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client_shelf_has_changes(svn_boolean_t *has_changes,
- const char *name,
- const char *local_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *scratch_pool);
-
-/** @} */
-
/** Changelist commands
*
* @defgroup svn_client_changelist_funcs Client Changelist Functions
* @{
*/
-/** Implementation note:
- *
- * For now, changelists are implemented by scattering the
- * associations across multiple .svn/entries files in a working copy.
- * However, this client API was written so that we have the option of
- * changing the underlying implementation -- we may someday want to
- * store changelist definitions in a centralized database.
- */
-
/**
* Add each path in @a paths (recursing to @a depth as necessary) to
* @a changelist. If a path is already a member of another
diff --git a/subversion/include/svn_config.h b/subversion/include/svn_config.h
index d194af09efbf..5e2ae1790fa6 100644
--- a/subversion/include/svn_config.h
+++ b/subversion/include/svn_config.h
@@ -44,8 +44,8 @@ extern "C" {
/**************************************************************************
*** ***
*** For a description of the SVN configuration file syntax, see ***
- *** your ~/.subversion/README, which is written out automatically by ***
- *** svn_config_ensure(). ***
+ *** your ~/.subversion/README.txt, which is written out automatically ***
+ *** by svn_config_ensure(). ***
*** ***
**************************************************************************/
diff --git a/subversion/include/svn_delta.h b/subversion/include/svn_delta.h
index c15788ee4d00..ee9e11fed6b5 100644
--- a/subversion/include/svn_delta.h
+++ b/subversion/include/svn_delta.h
@@ -495,6 +495,10 @@ svn_txdelta_send_contents(const unsigned char *contents,
* since there's nothing else in the delta application's context to
* supply a path for error messages.)
*
+ * The @a source stream will NOT be closed. The @a target stream will be
+ * closed when the window handler is given a null window to signal the
+ * end of the delta.
+ *
* @note To avoid lifetime issues, @a error_info is copied into
* @a pool or a subpool thereof.
*/
@@ -859,7 +863,7 @@ svn_txdelta_skip_svndiff_window(apr_file_t *file,
* @c apply_textdelta / @c apply_textdelta_stream and @c close_file
* should not refer to a parent directory baton UNLESS the editor has
* taken precautions to allocate it in a pool of the appropriate
- * lifetime (the @a dir_pool passed to @c open_directory and
+ * lifetime (the @a result_pool passed to @c open_directory and
* @c add_directory definitely does not have the proper lifetime).
* In general, it is recommended to simply avoid keeping a parent
* directory baton in a file baton.
@@ -1285,24 +1289,47 @@ svn_delta_depth_filter_editor(const svn_delta_editor_t **editor,
/** Callback function type for svn_delta_path_driver().
*
* The handler of this callback is given the callback baton @a
- * callback_baton, @a path which is a relpath relative to the
+ * callback_baton, @a editor and @a edit_baton which represent the
+ * editor being driven, @a relpath which is a relpath relative to the
* root of the edit, and the @a parent_baton which represents
- * path's parent directory as created by the editor passed to
- * svn_delta_path_driver().
+ * @a relpath's parent directory as created by the editor.
+ *
+ * If the handler deletes the node at @a relpath (and does not replace it
+ * with an added directory) it must set @a *dir_baton to null or leave
+ * it unchanged.
*
- * If @a path represents a directory, the handler must return a @a
- * *dir_baton for @a path, generated from the same editor (so that the
- * driver can later close that directory).
+ * If the handler opens (or adds) a directory at @a relpath, it must set
+ * @a *dir_baton to the directory baton for @a relpath, generated from
+ * the same editor. The driver will close the directory later.
*
- * If, however, @a path represents a file, the handler should NOT
- * return any file batons. It can close any opened or added files
- * immediately, or delay that close until the end of the edit when
- * svn_delta_path_driver() returns.
+ * If the handler opens (or adds) a file at @a relpath, the handler must
+ * set @a *dir_baton to null or leave it unchanged. The handler must
+ * either close the file immediately, or delay that close until the end
+ * of the edit when svn_delta_path_driver() returns.
*
* Finally, if @a parent_baton is @c NULL, then the root of the edit
* is also one of the paths passed to svn_delta_path_driver(). The
* handler of this callback must call the editor's open_root()
* function and return the top-level root dir baton in @a *dir_baton.
+ *
+ * @since New in 1.12.
+ */
+typedef svn_error_t *(*svn_delta_path_driver_cb_func2_t)(
+ void **dir_baton,
+ const svn_delta_editor_t *editor,
+ void *edit_baton,
+ void *parent_baton,
+ void *callback_baton,
+ const char *relpath,
+ apr_pool_t *pool);
+
+/** Like #svn_delta_path_driver_cb_func2_t but without the @a editor and
+ * @a edit_baton parameters. The user must arrange for the editor to be
+ * passed through @a callback_baton (if required, which it usually is).
+ * And @a path could possibly have a '/' prefix instead of being a relpath;
+ * see the note on svn_delta_path_driver2().
+ *
+ * @deprecated Provided for backward compatibility with the 1.11 API.
*/
typedef svn_error_t *(*svn_delta_path_driver_cb_func_t)(
void **dir_baton,
@@ -1312,24 +1339,51 @@ typedef svn_error_t *(*svn_delta_path_driver_cb_func_t)(
apr_pool_t *pool);
-/** Drive @a editor (with its @a edit_baton) to visit each path in @a paths.
+/** Drive @a editor (with its @a edit_baton) to visit each path in @a relpaths.
+ *
* As each path is hit as part of the editor drive, use
* @a callback_func and @a callback_baton to allow the caller to handle
* the portion of the editor drive related to that path.
*
- * Each path in @a paths is a (const char *) relpath, relative
- * to the root path of the @a edit. The editor drive will be
- * performed in the same order as @a paths. The paths should be sorted
- * using something like svn_sort_compare_paths to ensure that a depth-first
- * pattern is observed for directory/file baton creation. If @a sort_paths
+ * Each path in @a relpaths is a (const char *) relpath, relative
+ * to the root path of the edit. The editor drive will be
+ * performed in the same order as @a relpaths. The paths should be sorted
+ * using something like svn_sort_compare_paths() to ensure that each
+ * directory in the depth-first walk is visited only once. If @a sort_paths
* is set, the function will sort the paths for you. Some callers may need
* further customization of the order (ie. libsvn_delta/compat.c).
*
+ * If the first target path (after any requested sorting) is @c "" (the
+ * root of the edit), the callback function will be responsible for
+ * calling the editor's @c open_root method; otherwise, this function
+ * will call @c open_root.
+ *
* Use @a scratch_pool for all necessary allocations.
*
- * @since New in 1.8.
+ * @since New in 1.12.
*/
svn_error_t *
+svn_delta_path_driver3(const svn_delta_editor_t *editor,
+ void *edit_baton,
+ const apr_array_header_t *relpaths,
+ svn_boolean_t sort_paths,
+ svn_delta_path_driver_cb_func2_t callback_func,
+ void *callback_baton,
+ apr_pool_t *pool);
+
+/** Like svn_delta_path_driver3() but with a different callback function
+ * signature.
+ *
+ * Optionally, paths in @a paths could have a '/' prefix instead of being
+ * relpaths. If any of them do, then (since 1.12) ALL paths sent to the
+ * callback will have a '/' prefix.
+ *
+ * @deprecated Provided for backward compatibility with the 1.11 API.
+ * @since New in 1.8. Before 1.12, paths sent to the callback were the
+ * exact paths passed in @a paths.
+ */
+SVN_DEPRECATED
+svn_error_t *
svn_delta_path_driver2(const svn_delta_editor_t *editor,
void *edit_baton,
const apr_array_header_t *paths,
@@ -1358,6 +1412,80 @@ svn_delta_path_driver(const svn_delta_editor_t *editor,
void *callback_baton,
apr_pool_t *scratch_pool);
+
+/** A state object for the path driver that is obtained from
+ * svn_delta_path_driver_start() and driven by
+ * svn_delta_path_driver_step() and svn_delta_path_driver_finish().
+ *
+ * @since New in 1.12.
+ */
+typedef struct svn_delta_path_driver_state_t svn_delta_path_driver_state_t;
+
+/** Return a path driver object that can drive @a editor (with its
+ * @a edit_baton) to visit a series of paths.
+ *
+ * As each path is hit as part of the editor drive, the path driver will
+ * call @a callback_func and @a callback_baton to allow the caller to handle
+ * the portion of the editor drive related to that path.
+ *
+ * This will not call the editor's open_root method; for that, see
+ * svn_delta_path_driver_step().
+ *
+ * @since New in 1.12.
+ */
+svn_error_t *
+svn_delta_path_driver_start(svn_delta_path_driver_state_t **state_p,
+ const svn_delta_editor_t *editor,
+ void *edit_baton,
+ svn_delta_path_driver_cb_func2_t callback_func,
+ void *callback_baton,
+ apr_pool_t *result_pool);
+
+/** Visit @a relpath.
+ *
+ * @a state is the object returned by svn_delta_path_driver_start().
+ *
+ * @a relpath is a relpath relative to the root path of the edit.
+ *
+ * This function uses the editor and the callback that were originally
+ * supplied to svn_delta_path_driver_start().
+ *
+ * This drives the editor in a depth-first order, closing and then opening
+ * directories if necessary to move from the last visited path to the new
+ * path, as required by the editor driving rules.
+ *
+ * This then calls the callback to allow the caller to handle
+ * the portion of the editor drive related to that path.
+ *
+ * If the first path to visit is @c "" (the root of the edit), the
+ * callback function will be responsible for calling the editor's
+ * @c open_root method; otherwise, this function will call @c open_root.
+ *
+ * The order of paths to visit should in general be sorted using something
+ * like svn_sort_compare_paths() to ensure that each directory in the
+ * depth-first walk is visited only once. Some editors may rely on such a
+ * restriction.
+ *
+ * @since New in 1.12.
+ */
+svn_error_t *
+svn_delta_path_driver_step(svn_delta_path_driver_state_t *state,
+ const char *relpath,
+ apr_pool_t *scratch_pool);
+
+/** Finish driving the editor.
+ *
+ * @a state is the object returned by svn_delta_path_driver_start().
+ *
+ * This drives the editor to close any open directories and then calls
+ * the editor's @c close_edit method.
+ *
+ * @since New in 1.12.
+ */
+svn_error_t *
+svn_delta_path_driver_finish(svn_delta_path_driver_state_t *state,
+ apr_pool_t *scratch_pool);
+
/** @} */
diff --git a/subversion/include/svn_diff.h b/subversion/include/svn_diff.h
index bd2c97084bfb..61f4b77f1eb3 100644
--- a/subversion/include/svn_diff.h
+++ b/subversion/include/svn_diff.h
@@ -711,7 +711,7 @@ svn_diff_file_output_unified(svn_stream_t *output_stream,
* @a conflict_latest to be displayed as conflict markers in the output.
* If @a conflict_original, @a conflict_modified, @a conflict_latest and/or
* @a conflict_separator is @c NULL, a default marker will be displayed.
- * @a conflict_style dictates how conflicts are displayed.
+ * @a conflict_style dictates how conflicts are displayed.
* Uses @a scratch_pool for temporary allocations.
*
* If not @c NULL, call @a cancel_func with @a cancel_baton once or multiple
diff --git a/subversion/include/svn_dirent_uri.h b/subversion/include/svn_dirent_uri.h
index 94856f2295e6..cf8152bcfb7c 100644
--- a/subversion/include/svn_dirent_uri.h
+++ b/subversion/include/svn_dirent_uri.h
@@ -60,12 +60,14 @@
* form, except:
*
* - @c svn_dirent_canonicalize()
+ * - @c svn_dirent_canonicalize_safe()
* - @c svn_dirent_is_canonical()
* - @c svn_dirent_internal_style()
* - @c svn_relpath_canonicalize()
+ * - @c svn_relpath_canonicalize_safe()
* - @c svn_relpath_is_canonical()
- * - @c svn_relpath__internal_style()
* - @c svn_uri_canonicalize()
+ * - @c svn_uri_canonicalize_safe()
* - @c svn_uri_is_canonical()
*
* The Subversion codebase also recognizes some other classes of path:
@@ -144,17 +146,47 @@ extern "C" {
#endif /* __cplusplus */
-/** Convert @a dirent from the local style to the canonical internal style.
+/**
+ * Convert @a dirent from the local style to the canonical internal style.
* "Local style" means native path separators and "." for the empty path.
*
* Allocate the result in @a result_pool.
*
+ * @warning This function may call @c abort() if the @a dirent parameter
+ * is not a valid local-style path.
+ * Use svn_dirent_internal_style_safe() for tainted input.
+ *
* @since New in 1.6.
*/
const char *
svn_dirent_internal_style(const char *dirent,
apr_pool_t *result_pool);
+/**
+ * Convert @a dirent from the local style to the canonical internal style
+ * and return it in @a *internal_style_dirent. "Local style" means native
+ * path separators and "." for the empty path.
+ *
+ * Similar to svn_dirent_internal_style() (which see), but returns an error
+ * if the @a dirent can not be canonicalized or of the result does not pass
+ * the svn_dirent_is_canonical() test.
+ *
+ * If the function fails and @a non_canonical_result is not @c NULL, the
+ * result of the failed canonicalization attempt (which may be @c NULL)
+ * will be returned in @a *non_canonical_result.
+ *
+ * Allocates the results in @a result_pool. Uses @a scratch_pool for
+ * temporary allocations.
+ *
+ * @since New in 1.12.
+ */
+svn_error_t *
+svn_dirent_internal_style_safe(const char **internal_style_dirent,
+ const char **non_canonical_result,
+ const char *dirent,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
/** Convert @a dirent from the internal style to the local style.
* "Local style" means native path separators and "." for the empty path.
* If the input is not canonical, the output may not be canonical.
@@ -167,18 +199,6 @@ const char *
svn_dirent_local_style(const char *dirent,
apr_pool_t *result_pool);
-/** Convert @a relpath from the local style to the canonical internal style.
- * "Local style" means native path separators and "." for the empty path.
- *
- * Allocate the result in @a result_pool.
- *
- * @since New in 1.7.
- */
-const char *
-svn_relpath__internal_style(const char *relpath,
- apr_pool_t *result_pool);
-
-
/** Join a base dirent (@a base) with a component (@a component).
*
* If either @a base or @a component is the empty string, then the other
@@ -453,7 +473,8 @@ svn_boolean_t
svn_uri_is_root(const char *uri,
apr_size_t len);
-/** Return a new dirent like @a dirent, but transformed such that some types
+/**
+ * Return a new dirent like @a dirent, but transformed such that some types
* of dirent specification redundancies are removed.
*
* This involves:
@@ -467,14 +488,43 @@ svn_uri_is_root(const char *uri,
*
* Allocate the result in @a result_pool.
*
+ * @warning This function may call @c abort() if @a dirent can not be
+ * canonicalized.
+ * Use svn_dirent_canonicalize_safe() for tainted input.
+ *
* @since New in 1.6.
*/
const char *
svn_dirent_canonicalize(const char *dirent,
apr_pool_t *result_pool);
+/**
+ * Return a new @a *canonical_dirent like @a dirent, but transformed such
+ * that some types of dirent specification redundancies are removed.
+ *
+ * Similar to svn_dirent_canonicalize() (which see), but returns an error
+ * if the @a dirent can not be canonicalized or of the result does not pass
+ * the svn_dirent_is_canonical() test.
+ *
+ * If the function fails and @a non_canonical_result is not @c NULL, the
+ * result of the failed canonicalization attempt (which may be @c NULL)
+ * will be returned in @a *non_canonical_result.
+ *
+ * Allocates the results in @a result_pool. Uses @a scratch_pool for
+ * temporary allocations.
+ *
+ * @since New in 1.12.
+ */
+svn_error_t *
+svn_dirent_canonicalize_safe(const char **canonical_dirent,
+ const char **non_canonical_result,
+ const char *dirent,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
-/** Return a new relpath like @a relpath, but transformed such that some types
+/**
+ * Return a new relpath like @a relpath, but transformed such that some types
* of relpath specification redundancies are removed.
*
* This involves:
@@ -486,14 +536,44 @@ svn_dirent_canonicalize(const char *dirent,
*
* Allocate the result in @a result_pool.
*
+ * @warning This function may call @c abort() if @a relpath can not be
+ * canonicalized.
+ * Use svn_relpath_canonicalize_safe() for tainted input.
+ *
* @since New in 1.7.
*/
const char *
svn_relpath_canonicalize(const char *relpath,
apr_pool_t *result_pool);
+/**
+ * Return a new @a *canonical_relpath like @a relpath, but transformed such
+ * that some types of relpath specification redundancies are removed.
+ *
+ * Similar to svn_relpath_canonicalize() (which see), but returns an error
+ * if the @a relpath can not be canonicalized or of the result does not
+ * pass the svn_relpath_is_canonical() test.
+ *
+ * If the function fails and @a non_canonical_result is not @c NULL, the
+ * result of the failed canonicalization attempt (which may be @c NULL)
+ * will be returned in @a *non_canonical_result.
+ *
+ * Allocates the results in @a result_pool. Uses @a scratch_pool for
+ * temporary allocations.
+ *
+ * @since New in 1.12.
+ */
+
+svn_error_t *
+svn_relpath_canonicalize_safe(const char **canonical_relpath,
+ const char **non_canonical_result,
+ const char *relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
-/** Return a new uri like @a uri, but transformed such that some types
+/**
+ * Return a new uri like @a uri, but transformed such that some types
* of uri specification redundancies are removed.
*
* This involves:
@@ -510,12 +590,41 @@ svn_relpath_canonicalize(const char *relpath,
*
* Allocate the result in @a result_pool.
*
- * @since New in 1.7.
+ * @warning This function may call @c abort() if @a uri can not be
+ * canonicalized.
+ * Use svn_uri_canonicalize_safe() for tainted input.
+ *
+ * @since New in 1.7.
*/
const char *
svn_uri_canonicalize(const char *uri,
apr_pool_t *result_pool);
+/**
+ * Return a new @a *canonical_uri like @a uri, but transformed such that
+ * some types of uri specification redundancies are removed.
+ *
+ * Similar to svn_uri_canonicalize() (which see), but returns an error if
+ * the @a uri can not be canonicalized or of the result does not pass the
+ * svn_uri_is_canonical() test.
+ *
+ * If the function fails and @a non_canonical_result is not @c NULL, the
+ * result of the failed canonicalization attempt (which may be @c NULL)
+ * will be returned in @a *non_canonical_result.
+ *
+ * Allocates the results in @a result_pool. Uses @a scratch_pool for
+ * temporary allocations.
+ *
+ * @since New in 1.12.
+ */
+svn_error_t *
+svn_uri_canonicalize_safe(const char **canonical_uri,
+ const char **non_canonical_result,
+ const char *uri,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+
/** Return @c TRUE iff @a dirent is canonical.
*
* Use @a scratch_pool for temporary allocations.
diff --git a/subversion/include/svn_error_codes.h b/subversion/include/svn_error_codes.h
index f95f0a0f0e84..c00c0f5b2f85 100644
--- a/subversion/include/svn_error_codes.h
+++ b/subversion/include/svn_error_codes.h
@@ -888,6 +888,21 @@ SVN_ERROR_START
SVN_ERR_FS_CATEGORY_START + 67,
"Content checksums supposedly match but content does not.")
+ /** @since New in 1.13. */
+ SVN_ERRDEF(SVN_ERR_FS_UNRECOGNIZED_IOCTL_CODE,
+ SVN_ERR_FS_CATEGORY_START + 68,
+ "Unrecognized filesystem I/O control code")
+
+ /** @since New in 1.14. */
+ SVN_ERRDEF(SVN_ERR_FS_REP_SHARING_NOT_ALLOWED,
+ SVN_ERR_FS_CATEGORY_START + 69,
+ "Rep-sharing is not allowed.")
+
+ /** @since New in 1.14. */
+ SVN_ERRDEF(SVN_ERR_FS_REP_SHARING_NOT_SUPPORTED,
+ SVN_ERR_FS_CATEGORY_START + 70,
+ "Rep-sharing is not supported.")
+
/* repos errors */
SVN_ERRDEF(SVN_ERR_REPOS_LOCKED,
@@ -1482,6 +1497,11 @@ SVN_ERROR_START
SVN_ERR_MISC_CATEGORY_START + 46,
"LZ4 decompression failed")
+ /** @since New in 1.12. */
+ SVN_ERRDEF(SVN_ERR_CANONICALIZATION_FAILED,
+ SVN_ERR_MISC_CATEGORY_START + 47,
+ "Could not canonicalize path or URI")
+
/* command-line client errors */
SVN_ERRDEF(SVN_ERR_CL_ARG_PARSING_ERROR,
@@ -1769,7 +1789,7 @@ SVN_ERROR_START
SVN_ERRDEF(SVN_ERR_X509_CERT_VERIFY_FAILED,
SVN_ERR_X509_CATEGORY_START + 19,
- "Certficate verification failed")
+ "Certificate verification failed")
SVN_ERROR_END
diff --git a/subversion/include/svn_fs.h b/subversion/include/svn_fs.h
index 179774e16a1e..198757c66555 100644
--- a/subversion/include/svn_fs.h
+++ b/subversion/include/svn_fs.h
@@ -1744,7 +1744,7 @@ svn_fs_paths_changed3(svn_fs_path_change_iterator_t **iterator,
*
* Use @a pool for all allocations, including the hash and its values.
*
- * @note Retrieving the #node_rev_id element of #svn_fs_path_change2_t may
+ * @note Retrieving the #svn_fs_path_change2_t.node_rev_id element may
* be expensive in some FS backends.
*
* @since New in 1.6.
@@ -1828,9 +1828,9 @@ svn_fs_node_history(svn_fs_history_t **history_p,
* the same as the original. This will happen if the original
* location was an interesting one (where the node was modified, or
* took place in a copy event). This behavior allows looping callers
- * to avoid the calling svn_fs_history_location() on the object
- * returned by svn_fs_node_history(), and instead go ahead and begin
- * calling svn_fs_history_prev().
+ * to avoid calling svn_fs_history_location() on the object returned
+ * by svn_fs_node_history(), and instead go ahead and begin calling
+ * svn_fs_history_prev().
*
* @note This function uses node-id ancestry alone to determine
* modifiedness, and therefore does NOT claim that in any of the
@@ -2492,7 +2492,7 @@ svn_fs_file_md5_checksum(unsigned char digest[],
* svn_fs_file_contents(). In that case, the result of reading from
* @a *contents is undefined.
*
- * ### @todo kff: I am worried about lifetime issues with this pool vs
+ * @todo kff: I am worried about lifetime issues with this pool vs
* the trail created farther down the call stack. Trace this function
* to investigate...
*/
@@ -3503,6 +3503,54 @@ svn_fs_info_dup(const void *info,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
+/**
+ * A structure specifying the filesystem-specific input/output operation.
+ *
+ * @see svn_fs_ioctl()
+ *
+ * @since New in 1.13.
+ */
+typedef struct svn_fs_ioctl_code_t
+{
+ const char *fs_type;
+ int code;
+} svn_fs_ioctl_code_t;
+
+/**
+ * A convenience macro to declare #svn_fs_ioctl_code_t codes.
+ *
+ * @since New in 1.13.
+ */
+#define SVN_FS_DECLARE_IOCTL_CODE(name, fs_type, code) \
+ static const svn_fs_ioctl_code_t name = { fs_type, code }
+
+/**
+ * Issue a filesystem-specific input/output operation defined by @a ctlcode
+ * (usually, a low-level operation which cannot be expressed by other
+ * filesystem APIs). If @a fs is @c NULL, issue a global operation.
+ * If @a fs is not @c NULL, issue an operation that is specific to this
+ * filesystem instance.
+ *
+ * If the filesystem cannot handle this ioctl code, return the
+ * #SVN_ERR_FS_UNRECOGNIZED_IOCTL_CODE error.
+ *
+ * Allocate the result in @a result_pool, use @a scratch_pool for temporary
+ * allocations.
+ *
+ * @see #svn_fs_ioctl_code_t
+ *
+ * @since New in 1.13.
+ */
+svn_error_t *
+svn_fs_ioctl(svn_fs_t *fs,
+ svn_fs_ioctl_code_t ctlcode,
+ void *input,
+ void **output_p,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
/** @} */
#ifdef __cplusplus
diff --git a/subversion/include/svn_opt.h b/subversion/include/svn_opt.h
index 1c85b61682d3..6644d5659b1c 100644
--- a/subversion/include/svn_opt.h
+++ b/subversion/include/svn_opt.h
@@ -27,6 +27,8 @@
#ifndef SVN_OPT_H
#define SVN_OPT_H
+#include "svn_opt_impl.h"
+
#include <apr.h>
#include <apr_pools.h>
#include <apr_getopt.h>
@@ -69,6 +71,10 @@ typedef svn_error_t *(svn_opt_subcommand_t)(
/** The maximum number of options that can be accepted by a subcommand. */
#define SVN_OPT_MAX_OPTIONS 50
+/** The maximum number of paragraphs of help text a subcommand can have.
+ * @since New in 1.11. */
+#define SVN_OPT_MAX_PARAGRAPHS 100
+
/** Options that have no short option char should use an identifying
* integer equal to or greater than this.
*/
@@ -77,7 +83,39 @@ typedef svn_error_t *(svn_opt_subcommand_t)(
/** One element of a subcommand dispatch table.
*
+ * @since New in 1.11.
+ */
+typedef struct svn_opt_subcommand_desc3_t
+{
+ /** The full name of this command. */
+ const char *name;
+
+ /** The function this command invokes. */
+ svn_opt_subcommand_t *cmd_func;
+
+ /** A list of alias names for this command (e.g., 'up' for 'update'). */
+ const char *aliases[SVN_OPT_MAX_ALIASES];
+
+ /** A multi-paragraph string describing this command. */
+ const char *help[SVN_OPT_MAX_PARAGRAPHS];
+
+ /** A list of options accepted by this command. Each value in the
+ * array is a unique enum (the 2nd field in apr_getopt_option_t)
+ */
+ int valid_options[SVN_OPT_MAX_OPTIONS];
+
+ /** A list of option help descriptions, keyed by the option unique enum
+ * (the 2nd field in apr_getopt_option_t), which override the generic
+ * descriptions given in an apr_getopt_option_t on a per-subcommand basis.
+ */
+ struct { int optch; const char *desc; } desc_overrides[SVN_OPT_MAX_OPTIONS];
+} svn_opt_subcommand_desc3_t;
+
+
+/** One element of a subcommand dispatch table.
+ *
* @since New in 1.4.
+ * @deprecated Provided for backward compatibility with the 1.10 API.
*/
typedef struct svn_opt_subcommand_desc2_t
{
@@ -139,8 +177,21 @@ typedef struct svn_opt_subcommand_desc_t
* Return the entry in @a table whose name matches @a cmd_name, or @c NULL if
* none. @a cmd_name may be an alias.
*
+ * @since New in 1.11.
+ */
+const svn_opt_subcommand_desc3_t *
+svn_opt_get_canonical_subcommand3(const svn_opt_subcommand_desc3_t *table,
+ const char *cmd_name);
+
+
+/**
+ * Same as svn_opt_get_canonical_subcommand3(), but with a different
+ * version of the subcommand description table.
+ *
* @since New in 1.4.
+ * @deprecated Provided for backward compatibility with the 1.10 API.
*/
+SVN_DEPRECATED
const svn_opt_subcommand_desc2_t *
svn_opt_get_canonical_subcommand2(const svn_opt_subcommand_desc2_t *table,
const char *cmd_name);
@@ -170,8 +221,22 @@ svn_opt_get_canonical_subcommand(const svn_opt_subcommand_desc_t *table,
*
* The returned value may be statically allocated, or allocated in @a pool.
*
+ * @since New in 1.11.
+ */
+const apr_getopt_option_t *
+svn_opt_get_option_from_code3(int code,
+ const apr_getopt_option_t *option_table,
+ const svn_opt_subcommand_desc3_t *command,
+ apr_pool_t *pool);
+
+/**
+ * Same as svn_opt_get_option_from_code3(), but with a different
+ * version of the subcommand description table.
+ *
* @since New in 1.4.
+ * @deprecated Provided for backward compatibility with the 1.10 API.
*/
+SVN_DEPRECATED
const apr_getopt_option_t *
svn_opt_get_option_from_code2(int code,
const apr_getopt_option_t *option_table,
@@ -198,8 +263,21 @@ svn_opt_get_option_from_code(int code,
* non-NULL, it is a zero-terminated array, and all subcommands take
* the options listed in it.
*
+ * @since New in 1.11.
+ */
+svn_boolean_t
+svn_opt_subcommand_takes_option4(const svn_opt_subcommand_desc3_t *command,
+ int option_code,
+ const int *global_options);
+
+/**
+ * Same as svn_opt_subcommand_takes_option4(), but with a different
+ * version of the subcommand description table.
+ *
* @since New in 1.5.
+ * @deprecated Provided for backward compatibility with the 1.10 API.
*/
+SVN_DEPRECATED
svn_boolean_t
svn_opt_subcommand_takes_option3(const svn_opt_subcommand_desc2_t *command,
int option_code,
@@ -235,7 +313,7 @@ svn_opt_subcommand_takes_option(const svn_opt_subcommand_desc_t *command,
/**
* Print a generic (not command-specific) usage message to @a stream.
*
- * ### @todo Why is @a stream a stdio file instead of an svn stream?
+ * @todo Why is @a stream a stdio file instead of an svn stream?
*
* If @a header is non-NULL, print @a header followed by a newline. Then
* loop over @a cmd_table printing the usage for each command (getting
@@ -244,8 +322,24 @@ svn_opt_subcommand_takes_option(const svn_opt_subcommand_desc_t *command,
*
* Use @a pool for temporary allocation.
*
+ * @since New in 1.11.
+ */
+void
+svn_opt_print_generic_help3(const char *header,
+ const svn_opt_subcommand_desc3_t *cmd_table,
+ const apr_getopt_option_t *opt_table,
+ const char *footer,
+ apr_pool_t *pool,
+ FILE *stream);
+
+/**
+ * Same as svn_opt_print_generic_help3(), but with a different
+ * version of the subcommand description table.
+ *
* @since New in 1.4.
+ * @deprecated Provided for backward compatibility with the 1.10 API.
*/
+SVN_DEPRECATED
void
svn_opt_print_generic_help2(const char *header,
const svn_opt_subcommand_desc2_t *cmd_table,
@@ -297,8 +391,23 @@ svn_opt_format_option(const char **string,
* use that second name as an alias for the first name. This additional
* behaviour is new in 1.7.
*
+ * @since New in 1.11.
+ */
+void
+svn_opt_subcommand_help4(const char *subcommand,
+ const svn_opt_subcommand_desc3_t *table,
+ const apr_getopt_option_t *options_table,
+ const int *global_options,
+ apr_pool_t *pool);
+
+/**
+ * Same as svn_opt_subcommand_help4(), but with a different
+ * version of the subcommand description table.
+ *
* @since New in 1.5.
+ * @deprecated Provided for backward compatibility with the 1.10 API.
*/
+SVN_DEPRECATED
void
svn_opt_subcommand_help3(const char *subcommand,
const svn_opt_subcommand_desc2_t *table,
@@ -336,43 +445,7 @@ svn_opt_subcommand_help(const char *subcommand,
/* Parsing revision and date options. */
-
-/**
- * Various ways of specifying revisions.
- *
- * @note
- * In contexts where local mods are relevant, the `working' kind
- * refers to the uncommitted "working" revision, which may be modified
- * with respect to its base revision. In other contexts, `working'
- * should behave the same as `committed' or `current'.
- */
-enum svn_opt_revision_kind {
- /** No revision information given. */
- svn_opt_revision_unspecified,
-
- /** revision given as number */
- svn_opt_revision_number,
-
- /** revision given as date */
- svn_opt_revision_date,
-
- /** rev of most recent change */
- svn_opt_revision_committed,
-
- /** (rev of most recent change) - 1 */
- svn_opt_revision_previous,
-
- /** .svn/entries current revision */
- svn_opt_revision_base,
-
- /** current, plus local mods */
- svn_opt_revision_working,
-
- /** repository youngest */
- svn_opt_revision_head
-
- /* please update svn_opt__revision_to_string() when extending this enum */
-};
+/* NOTE: svn_opt_revision_kind is defined in svn_opt_impl.h */
/**
* A revision value, which can be specified as a number or a date.
@@ -700,9 +773,30 @@ svn_opt_parse_path(svn_opt_revision_t *rev,
* --version flag *and* subcommand arguments on a help command line.
* The logic for handling such a situation should be in one place.
*
- * @since New in 1.8.
+ * @since New in 1.11.
*/
+svn_error_t *
+svn_opt_print_help5(apr_getopt_t *os,
+ const char *pgm_name,
+ svn_boolean_t print_version,
+ svn_boolean_t quiet,
+ svn_boolean_t verbose,
+ const char *version_footer,
+ const char *header,
+ const svn_opt_subcommand_desc3_t *cmd_table,
+ const apr_getopt_option_t *option_table,
+ const int *global_options,
+ const char *footer,
+ apr_pool_t *pool);
+/**
+ * Same as svn_opt_print_help5(), but with a different
+ * version of the subcommand description table.
+ *
+ * @since New in 1.8.
+ * @deprecated Provided for backward compatibility with the 1.10 API.
+ */
+SVN_DEPRECATED
svn_error_t *
svn_opt_print_help4(apr_getopt_t *os,
const char *pgm_name,
diff --git a/subversion/include/svn_opt_impl.h b/subversion/include/svn_opt_impl.h
new file mode 100644
index 000000000000..73fd2f36e5c6
--- /dev/null
+++ b/subversion/include/svn_opt_impl.h
@@ -0,0 +1,86 @@
+/**
+ * @copyright
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ * @endcopyright
+ *
+ * @file svn_opt_impl.h
+ * @brief Option and argument parsing for Subversion command lines
+ * (common implementation)
+ *
+ * @warning This is a @b private implementation-specific header file.
+ * User code should include @ref svn_opt.h instead.
+ */
+
+/* NOTE:
+ * This file *must not* include or depend on any other header except
+ * the C standard library headers.
+ */
+
+#ifndef SVN_OPT_IMPL_H
+#define SVN_OPT_IMPL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/**
+ * Various ways of specifying revisions.
+ *
+ * @note
+ * In contexts where local mods are relevant, the `working' kind
+ * refers to the uncommitted "working" revision, which may be modified
+ * with respect to its base revision. In other contexts, `working'
+ * should behave the same as `committed' or `current'.
+ */
+/* NOTE: Update svnxx/revision.hpp when changing this enum. */
+enum svn_opt_revision_kind {
+ /** No revision information given. */
+ svn_opt_revision_unspecified,
+
+ /** revision given as number */
+ svn_opt_revision_number,
+
+ /** revision given as date */
+ svn_opt_revision_date,
+
+ /** rev of most recent change */
+ svn_opt_revision_committed,
+
+ /** (rev of most recent change) - 1 */
+ svn_opt_revision_previous,
+
+ /** .svn/entries current revision */
+ svn_opt_revision_base,
+
+ /** current, plus local mods */
+ svn_opt_revision_working,
+
+ /** repository youngest */
+ svn_opt_revision_head
+
+ /* please update svn_opt__revision_to_string() when extending this enum */
+};
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* SVN_OPT_IMPL_H */
diff --git a/subversion/include/svn_props.h b/subversion/include/svn_props.h
index 7ea8bba0c048..8b044b059089 100644
--- a/subversion/include/svn_props.h
+++ b/subversion/include/svn_props.h
@@ -415,19 +415,26 @@ svn_prop_name_is_valid(const char *prop_name);
/** Describes external items to check out into this directory.
*
* The format is a series of lines, each in the following format:
- * [-r REV] URL[@PEG] LOCALPATH
+ *
+ * [-r REV] URL[@PEG] LOCALPATH
+ *
* LOCALPATH is relative to the directory having this property.
* REV pins the external to revision REV.
* URL may be a full URL or a relative URL starting with one of:
- * ../ to the parent directory of the extracted external
- * ^/ to the repository root
- * / to the server root
- * // to the URL scheme
+ *
+ * ../ to the parent directory of the extracted external
+ * ^/ to the repository root
+ * / to the server root
+ * // to the URL scheme
+ *
* The following format is supported for interoperability with
* Subversion 1.4 and earlier clients:
- * LOCALPATH [-r PEG] URL
+ *
+ * LOCALPATH [-r PEG] URL
+ *
* The ambiguous format 'relative_path relative_path' is taken as
* 'relative_url relative_path' with peg revision support.
+ *
* Lines starting with a '#' character are ignored.
*/
#define SVN_PROP_EXTERNALS SVN_PROP_PREFIX "externals"
diff --git a/subversion/include/svn_ra.h b/subversion/include/svn_ra.h
index 030458d0e16a..4c71520dd1ff 100644
--- a/subversion/include/svn_ra.h
+++ b/subversion/include/svn_ra.h
@@ -65,7 +65,7 @@ svn_ra_version(void);
* @a close_baton as appropriate.
*
* @a path is relative to the "root" of the session, defined by the
- * @a repos_URL passed to svn_ra_open4() vtable call.
+ * @a repos_URL passed to svn_ra_open5() vtable call.
*
* @a name is the name of the property to fetch. If the property is present,
* then it is returned in @a value. Otherwise, @a *value is set to @c NULL.
@@ -229,7 +229,7 @@ typedef void (*svn_ra_progress_notify_func_t)(apr_off_t progress,
*
* @a revision is the target revision number of the received replay report.
*
- * @a editor and @a edit_baton should provided by the callback implementation.
+ * @a *editor and @a *edit_baton should provided by the callback implementation.
*
* @a replay_baton is the baton as originally passed to replay_range.
*
@@ -253,7 +253,7 @@ typedef svn_error_t *(*svn_ra_replay_revstart_callback_t)(
*
* @a revision is the target revision number of the received replay report.
*
- * @a editor and @a edit_baton should provided by the callback implementation.
+ * @a editor and @a edit_baton are the values provided by the REVSTART callback.
*
* @a replay_baton is the baton as originally passed to replay_range.
*
@@ -369,7 +369,7 @@ typedef struct svn_ra_reporter3_t
* implementor should assume the directory has no entries or props.
*
* This will *override* any previous set_path() calls made on parent
- * paths. @a path is relative to the URL specified in svn_ra_open4().
+ * paths. @a path is relative to the URL specified in svn_ra_open5().
*
* If @a lock_token is non-NULL, it is the lock token for @a path in the WC.
*
@@ -520,7 +520,7 @@ typedef struct svn_ra_reporter_t
/** A collection of callbacks implemented by libsvn_client which allows
* an RA layer to "pull" information from the client application, or
* possibly store information. libsvn_client passes this vtable to
- * svn_ra_open4().
+ * svn_ra_open5().
*
* Each routine takes a @a callback_baton originally provided with the
* vtable.
@@ -555,9 +555,9 @@ typedef struct svn_ra_callbacks2_t
/** Fetch working copy properties.
*
- *<pre> ### we might have a problem if the RA layer ever wants a property
- * ### that corresponds to a different revision of the file than
- * ### what is in the WC. we'll cross that bridge one day...</pre>
+ * @note we might have a problem if the RA layer ever wants a property
+ * that corresponds to a different revision of the file than
+ * what is in the WC. we'll cross that bridge one day...
*/
svn_ra_get_wc_prop_func_t get_wc_prop;
@@ -710,6 +710,14 @@ typedef struct svn_ra_session_t svn_ra_session_t;
* within the new repository root URL that @a repos_URL pointed to within
* the old repository root URL.
*
+ * If @a redirect_url is not NULL and a @corrected_url is returned, then
+ * @a redirect_url contains a non-canonicalized version of @a corrected_url,
+ * as communicated in the network protocol used by the RA provider.
+ * THe @a redirect_url should be used for to detect redirection loops.
+ * Canonicalization may change the protocol-level URL in a way that
+ * makes detection of redirect loops impossible in some cases since URLs which
+ * are different at the protocol layer could map to the same canonicalized URL.
+ *
* Return @c SVN_ERR_RA_UUID_MISMATCH if @a uuid is non-NULL and not equal
* to the UUID of the repository at @c repos_URL.
*
@@ -728,8 +736,26 @@ typedef struct svn_ra_session_t svn_ra_session_t;
*
* @see svn_client_open_ra_session().
*
+ * @since New in 1.14.
+ */
+svn_error_t *
+svn_ra_open5(svn_ra_session_t **session_p,
+ const char **corrected_url,
+ const char **redirect_url,
+ const char *repos_URL,
+ const char *uuid,
+ const svn_ra_callbacks2_t *callbacks,
+ void *callback_baton,
+ apr_hash_t *config,
+ apr_pool_t *pool);
+
+/** Similar to svn_ra_open5(), but with @a redirect_url always passed
+ * as @c NULL.
+ *
* @since New in 1.7.
+ * @deprecated Provided for backward compatibility with the 1.13 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_ra_open4(svn_ra_session_t **session_p,
const char **corrected_url,
@@ -1857,7 +1883,7 @@ svn_ra_get_location_segments(svn_ra_session_t *session,
* @note Prior to Subversion 1.9, this function may request delta handlers
* from @a handler even for empty text deltas. Starting with 1.9, the
* delta handler / baton return arguments passed to @a handler will be
- * #NULL unless there is an actual difference in the file contents between
+ * NULL unless there is an actual difference in the file contents between
* the current and the previous call.
*
* @since New in 1.5.
diff --git a/subversion/include/svn_ra_svn.h b/subversion/include/svn_ra_svn.h
index 6293255daba9..0bcd40b7aee0 100644
--- a/subversion/include/svn_ra_svn.h
+++ b/subversion/include/svn_ra_svn.h
@@ -201,7 +201,7 @@ typedef svn_error_t *(*svn_ra_svn_edit_callback)(void *baton);
* If @a max_out is not 0, error out and close the connection whenever more
* than @a max_out bytes have been send as response to some command.
*
- * @note The limits enforced may vary slightly by +/- the I/O buffer size.
+ * @note The limits enforced may vary slightly by +/- the I/O buffer size.
*
* @note If @a out_stream is an wrapped apr_file_t* the backing file will be
* used for some operations.
diff --git a/subversion/include/svn_repos.h b/subversion/include/svn_repos.h
index 9bb462abbb3c..35ff00045c22 100644
--- a/subversion/include/svn_repos.h
+++ b/subversion/include/svn_repos.h
@@ -679,7 +679,7 @@ svn_repos_fs_type(svn_repos_t *repos,
* The optional @a cancel_func callback will be invoked with
* @a cancel_baton as usual to allow the user to preempt this potentially
* lengthy operation.
- *
+ *
* Use @a scratch_pool for temporary allocations.
*
* @since New in 1.9.
@@ -861,7 +861,7 @@ typedef svn_error_t *(*svn_repos_freeze_func_t)(void *baton, apr_pool_t *pool);
* @since New in 1.8.
*/
svn_error_t *
-svn_repos_freeze(apr_array_header_t *paths,
+svn_repos_freeze(const apr_array_header_t *paths,
svn_repos_freeze_func_t freeze_func,
void *freeze_baton,
apr_pool_t *pool);
@@ -1036,7 +1036,10 @@ svn_repos_hooks_setenv(svn_repos_t *repos,
*
* @a send_copyfrom_args instructs the driver to send 'copyfrom'
* arguments to the editor's add_file() and add_directory() methods,
- * whenever it deems feasible.
+ * and therefore to send their content as deltas against the copy source,
+ * whenever it deems feasible. The implementation only does so for
+ * add_file(), and only when the file itself is the copy root (not when
+ * the file is part of a copied subtree).
*
* Use @a authz_read_func and @a authz_read_baton (if not @c NULL) to
* avoid sending data through @a editor/@a edit_baton which is not
@@ -2404,7 +2407,7 @@ svn_repos_fs_get_mergeinfo(svn_mergeinfo_catalog_t *catalog,
* @note Prior to Subversion 1.9, this function may request delta handlers
* from @a handler even for empty text deltas. Starting with 1.9, the
* delta handler / baton return arguments passed to @a handler will be
- * #NULL unless there is an actual difference in the file contents between
+ * NULL unless there is an actual difference in the file contents between
* the current and the previous call.
*
* @since New in 1.5.
@@ -3357,7 +3360,7 @@ svn_repos_dump_fs4(svn_repos_t *repos,
apr_pool_t *pool);
/**
- * Similar to svn_repos_dump_fs4(), but with @a include_revprops and
+ * Similar to svn_repos_dump_fs4(), but with @a include_revprops and
* @a include_changes both set to @c TRUE and @a filter_func and
* @a filter_baton set to @c NULL.
*
@@ -3803,7 +3806,7 @@ typedef struct svn_repos_parse_fns3_t
*
* @since New in 1.8.
- * @since Starting in 1.10, @a parse_fns may contain #NULL pointers for
+ * @since Starting in 1.10, @a parse_fns may contain NULL pointers for
* those callbacks that the caller is not interested in.
*/
svn_error_t *
@@ -4144,6 +4147,19 @@ svn_error_t *
svn_repos_authz_initialize(apr_pool_t *pool);
/**
+ * Callback for reporting authz file parsing warnings.
+ *
+ * The implementation may use @a scratch_pool for temporary
+ * allocations but should not assume that the lifetime of that pool
+ * persists past the callback invocation.
+ *
+ * The implementation @e must @e not clear @a error.
+ */
+typedef void (*svn_repos_authz_warning_func_t)(void *baton,
+ const svn_error_t *error,
+ apr_pool_t *scratch_pool);
+
+/**
* Read authz configuration data from @a path (a dirent, an absolute file url
* or a registry path) into @a *authz_p, allocated in @a pool.
*
@@ -4161,8 +4177,31 @@ svn_repos_authz_initialize(apr_pool_t *pool);
* repository instance. Otherwise, set it to NULL and the repositories will
* be opened as needed.
*
+ * If the @a warning_func callback is not @c NULL, it is called
+ * (with @a warning_baton) to report non-fatal warnings emitted by
+ * the parser.
+ *
+ * @since New in 1.12.
+ */
+svn_error_t *
+svn_repos_authz_read4(svn_authz_t **authz_p,
+ const char *path,
+ const char *groups_path,
+ svn_boolean_t must_exist,
+ svn_repos_t *repos_hint,
+ svn_repos_authz_warning_func_t warning_func,
+ void *warning_baton,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/**
+ * Similar to svn_repos_authz_read3(), but with @a warning_func and
+ * @a warning_baton set to @c NULL.
+ *
* @since New in 1.10.
+ * @deprecated Provided for backward compatibility with the 1.11 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_repos_authz_read3(svn_authz_t **authz_p,
const char *path,
@@ -4203,12 +4242,35 @@ svn_repos_authz_read(svn_authz_t **authz_p,
/**
* Read authz configuration data from @a stream into @a *authz_p,
- * allocated in @a pool.
+ * allocated in @a result_pool.
*
* If @a groups_stream is set, use the global groups parsed from it.
*
+ * If the @a warning_func callback is not @c NULL, it is called
+ * (with @a warning_baton) to report non-fatal warnings emitted by
+ * the parser.
+ *
+ * Uses @a scratch_pool for temporary aloocations.
+ *
+ * @since New in 1.12.
+ */
+svn_error_t *
+svn_repos_authz_parse2(svn_authz_t **authz_p,
+ svn_stream_t *stream,
+ svn_stream_t *groups_stream,
+ svn_repos_authz_warning_func_t warning_func,
+ void *warning_baton,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/**
+ * Similar to svn_repos_authz_parse2(), but with @a warning_func and
+ * @a warning_baton set to @c NULL.
+ *
* @since New in 1.8.
+ * @deprecated Provided for backward compatibility with the 1.11 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_repos_authz_parse(svn_authz_t **authz_p,
svn_stream_t *stream,
diff --git a/subversion/include/svn_time.h b/subversion/include/svn_time.h
index 76517ca79c37..ac857fb2b94e 100644
--- a/subversion/include/svn_time.h
+++ b/subversion/include/svn_time.h
@@ -38,14 +38,21 @@ extern "C" {
/** Convert @a when to a <tt>const char *</tt> representation allocated
- * in @a pool. Use svn_time_from_cstring() for the reverse
- * conversion.
+ * in @a pool.
+ *
+ * @see svn_time_from_cstring() for the reverse conversion.
*/
const char *
svn_time_to_cstring(apr_time_t when,
apr_pool_t *pool);
/** Convert @a data to an @c apr_time_t @a when.
+ *
+ * @see svn_time_to_cstring() for the reverse conversion.
+ *
+ * @deprecated Also accepts a format that was used before Subversion 0.14.
+ * See implementation for details. Use of this format is deprecated.
+ *
* Use @a pool for temporary memory allocation.
*/
svn_error_t *
diff --git a/subversion/include/svn_types.h b/subversion/include/svn_types.h
index 394eda866937..418d6ac9cc84 100644
--- a/subversion/include/svn_types.h
+++ b/subversion/include/svn_types.h
@@ -27,6 +27,8 @@
#ifndef SVN_TYPES_H
#define SVN_TYPES_H
+#include "svn_types_impl.h"
+
/* ### this should go away, but it causes too much breakage right now */
#include <stdlib.h>
#include <limits.h> /* for ULONG_MAX */
@@ -247,35 +249,6 @@ typedef struct svn_version_t svn_version_t;
-/** @defgroup apr_hash_utilities APR Hash Table Helpers
- * These functions enable the caller to dereference an APR hash table index
- * without type casts or temporary variables.
- *
- * These functions are provided by APR itself from version 1.5.
- * Definitions are provided here for when using older versions of APR.
- * @{
- */
-
-#if !APR_VERSION_AT_LEAST(1, 5, 0)
-
-/** Return the key of the hash table entry indexed by @a hi. */
-const void *
-apr_hash_this_key(apr_hash_index_t *hi);
-
-/** Return the key length of the hash table entry indexed by @a hi. */
-apr_ssize_t
-apr_hash_this_key_len(apr_hash_index_t *hi);
-
-/** Return the value of the hash table entry indexed by @a hi. */
-void *
-apr_hash_this_val(apr_hash_index_t *hi);
-
-#endif
-
-/** @} */
-
-
-
/** On Windows, APR_STATUS_IS_ENOTDIR includes several kinds of
* invalid-pathname error but not ERROR_INVALID_NAME, so we include it.
* We also include ERROR_DIRECTORY as that was not included in apr versions
@@ -303,28 +276,7 @@ apr_hash_this_val(apr_hash_index_t *hi);
-/** The various types of nodes in the Subversion filesystem. */
-typedef enum svn_node_kind_t
-{
- /** absent */
- svn_node_none,
-
- /** regular file */
- svn_node_file,
-
- /** directory */
- svn_node_dir,
-
- /** something's here, but we don't know what */
- svn_node_unknown,
-
- /**
- * symbolic link
- * @note This value is not currently used by the public API.
- * @since New in 1.8.
- */
- svn_node_symlink
-} svn_node_kind_t;
+/* NOTE: svn_node_kind_t is defined in svn_types_impl.h */
/** Return a constant string expressing @a kind as an English word, e.g.,
* "file", "dir", etc. The string is not localized, as it may be used for
@@ -346,23 +298,7 @@ svn_node_kind_t
svn_node_kind_from_word(const char *word);
-/** Generic three-state property to represent an unknown value for values
- * that are just like booleans. The values have been set deliberately to
- * make tristates disjoint from #svn_boolean_t.
- *
- * @note It is unsafe to use apr_pcalloc() to allocate these, since '0' is
- * not a valid value.
- *
- * @since New in 1.7. */
-typedef enum svn_tristate_t
-{
- /** state known to be false (the constant does not evaulate to false) */
- svn_tristate_false = 2,
- /** state known to be true */
- svn_tristate_true,
- /** state could be true or false */
- svn_tristate_unknown
-} svn_tristate_t;
+/* NOTE: svn_tristate_t is defined in svn_types_impl.h */
/** Return a constant string "true", "false" or NULL representing the value of
* @a tristate.
@@ -422,15 +358,11 @@ svn_tristate__from_word(const char * word);
-/** A revision number. */
-typedef long int svn_revnum_t;
+/* NOTE: svn_revnum_t and SVN_INVALID_REVNUM are defined in svn_types_impl.h */
/** Valid revision numbers begin at 0 */
#define SVN_IS_VALID_REVNUM(n) ((n) >= 0)
-/** The 'official' invalid revision num */
-#define SVN_INVALID_REVNUM ((svn_revnum_t) -1)
-
/** Not really invalid...just unimportant -- one day, this can be its
* own unique value, for now, just make it the same as
* #SVN_INVALID_REVNUM.
@@ -494,55 +426,7 @@ enum svn_recurse_kind
svn_recursive
};
-/** The concept of depth for directories.
- *
- * @note This is similar to, but not exactly the same as, the WebDAV
- * and LDAP concepts of depth.
- *
- * @since New in 1.5.
- */
-typedef enum svn_depth_t
-{
- /* The order of these depths is important: the higher the number,
- the deeper it descends. This allows us to compare two depths
- numerically to decide which should govern. */
-
- /** Depth undetermined or ignored. In some contexts, this means the
- client should choose an appropriate default depth. The server
- will generally treat it as #svn_depth_infinity. */
- svn_depth_unknown = -2,
-
- /** Exclude (i.e., don't descend into) directory D.
- @note In Subversion 1.5, svn_depth_exclude is *not* supported
- anywhere in the client-side (libsvn_wc/libsvn_client/etc) code;
- it is only supported as an argument to set_path functions in the
- ra and repos reporters. (This will enable future versions of
- Subversion to run updates, etc, against 1.5 servers with proper
- svn_depth_exclude behavior, once we get a chance to implement
- client-side support for svn_depth_exclude.)
- */
- svn_depth_exclude = -1,
-
- /** Just the named directory D, no entries. Updates will not pull in
- any files or subdirectories not already present. */
- svn_depth_empty = 0,
-
- /** D + its file children, but not subdirs. Updates will pull in any
- files not already present, but not subdirectories. */
- svn_depth_files = 1,
-
- /** D + immediate children (D and its entries). Updates will pull in
- any files or subdirectories not already present; those
- subdirectories' this_dir entries will have depth-empty. */
- svn_depth_immediates = 2,
-
- /** D + all descendants (full recursion from D). Updates will pull
- in any files or subdirectories not already present; those
- subdirectories' this_dir entries will have depth-infinity.
- Equivalent to the pre-1.5 default update behavior. */
- svn_depth_infinity = 3
-
-} svn_depth_t;
+/* NOTE: svn_depth_t is defined in svn_types_impl.h */
/** Return a constant string expressing @a depth as an English word,
* e.g., "infinity", "immediates", etc. The string is not localized,
diff --git a/subversion/include/svn_types_impl.h b/subversion/include/svn_types_impl.h
new file mode 100644
index 000000000000..625597f339eb
--- /dev/null
+++ b/subversion/include/svn_types_impl.h
@@ -0,0 +1,157 @@
+/**
+ * @copyright
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ * @endcopyright
+ *
+ * @file svn_types_impl.h
+ * @brief Subversion's data types (common implementation)
+ *
+ * @warning This is a @b private implementation-specific header file.
+ * User code should include @ref svn_types.h instead.
+ */
+
+/* NOTE:
+ * This file *must not* include or depend on any other header except
+ * the C standard library headers.
+ */
+
+#ifndef SVN_TYPES_IMPL_H
+#define SVN_TYPES_IMPL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#ifndef DOXYGEN
+/* Forward declaration of the error object. */
+struct svn_error_t;
+#endif
+
+
+/** The various types of nodes in the Subversion filesystem. */
+typedef enum svn_node_kind_t
+{
+ /** absent */
+ svn_node_none,
+
+ /** regular file */
+ svn_node_file,
+
+ /** directory */
+ svn_node_dir,
+
+ /** something's here, but we don't know what */
+ svn_node_unknown,
+
+ /**
+ * symbolic link
+ * @note This value is not currently used by the public API.
+ * @since New in 1.8.
+ */
+ svn_node_symlink
+} svn_node_kind_t;
+
+
+/** Generic three-state property to represent an unknown value for values
+ * that are just like booleans. The values have been set deliberately to
+ * make tristates disjoint from #svn_boolean_t.
+ *
+ * @note It is unsafe to use apr_pcalloc() to allocate these, since '0' is
+ * not a valid value.
+ *
+ * @since New in 1.7. */
+/* NOTE: Update svnxx/tristate.hpp when changing this enum. */
+typedef enum svn_tristate_t
+{
+ /** state known to be false (the constant does not evaulate to false) */
+ svn_tristate_false = 2,
+ /** state known to be true */
+ svn_tristate_true,
+ /** state could be true or false */
+ svn_tristate_unknown
+} svn_tristate_t;
+
+
+/** A revision number. */
+/* NOTE: Update svnxx/revision.hpp when changing this typedef. */
+typedef long int svn_revnum_t;
+
+/** The 'official' invalid revision number. */
+/* NOTE: Update svnxx/revision.hpp when changing this definition. */
+#define SVN_INVALID_REVNUM ((svn_revnum_t) -1)
+
+
+/** The concept of depth for directories.
+ *
+ * @note This is similar to, but not exactly the same as, the WebDAV
+ * and LDAP concepts of depth.
+ *
+ * @since New in 1.5.
+ */
+/* NOTE: Update svnxx/depth.hpp when changing this enum. */
+typedef enum svn_depth_t
+{
+ /* The order of these depths is important: the higher the number,
+ the deeper it descends. This allows us to compare two depths
+ numerically to decide which should govern. */
+
+ /** Depth undetermined or ignored. In some contexts, this means the
+ client should choose an appropriate default depth. The server
+ will generally treat it as #svn_depth_infinity. */
+ svn_depth_unknown = -2,
+
+ /** Exclude (i.e., don't descend into) directory D.
+ @note In Subversion 1.5, svn_depth_exclude is *not* supported
+ anywhere in the client-side (libsvn_wc/libsvn_client/etc) code;
+ it is only supported as an argument to set_path functions in the
+ ra and repos reporters. (This will enable future versions of
+ Subversion to run updates, etc, against 1.5 servers with proper
+ svn_depth_exclude behavior, once we get a chance to implement
+ client-side support for svn_depth_exclude.)
+ */
+ svn_depth_exclude = -1,
+
+ /** Just the named directory D, no entries. Updates will not pull in
+ any files or subdirectories not already present. */
+ svn_depth_empty = 0,
+
+ /** D + its file children, but not subdirs. Updates will pull in any
+ files not already present, but not subdirectories. */
+ svn_depth_files = 1,
+
+ /** D + immediate children (D and its entries). Updates will pull in
+ any files or subdirectories not already present; those
+ subdirectories' this_dir entries will have depth-empty. */
+ svn_depth_immediates = 2,
+
+ /** D + all descendants (full recursion from D). Updates will pull
+ in any files or subdirectories not already present; those
+ subdirectories' this_dir entries will have depth-infinity.
+ Equivalent to the pre-1.5 default update behavior. */
+ svn_depth_infinity = 3
+
+} svn_depth_t;
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* SVN_TYPES_IMPL_H */
diff --git a/subversion/include/svn_utf.h b/subversion/include/svn_utf.h
index 4a2c137b8e64..c65afc705a1c 100644
--- a/subversion/include/svn_utf.h
+++ b/subversion/include/svn_utf.h
@@ -212,7 +212,7 @@ svn_utf_cstring_from_utf8_ex(const char **dest,
* so when we can detect that at configure time, things will change.
* Also, this should (?) be moved to apr/apu eventually.
*
- * See http://subversion.tigris.org/issues/show_bug.cgi?id=807 for
+ * See https://issues.apache.org/jira/browse/SVN-807 for
* details.
*/
const char *
diff --git a/subversion/include/svn_version.h b/subversion/include/svn_version.h
index 7d95271dfa4f..25bbe542df5b 100644
--- a/subversion/include/svn_version.h
+++ b/subversion/include/svn_version.h
@@ -61,7 +61,7 @@ extern "C" {
* Modify when new functionality is added or new interfaces are
* defined, but all changes are backward compatible.
*/
-#define SVN_VER_MINOR 10
+#define SVN_VER_MINOR 14
/**
* Patch number.
@@ -70,7 +70,7 @@ extern "C" {
*
* @since New in 1.1.
*/
-#define SVN_VER_PATCH 2
+#define SVN_VER_PATCH 0
/** @deprecated Provided for backward compatibility with the 1.0 API. */
@@ -93,7 +93,7 @@ extern "C" {
*
* Always change this at the same time as SVN_VER_NUMTAG.
*/
-#define SVN_VER_TAG " (r1835932)"
+#define SVN_VER_TAG " (r1876290)"
/** Number tag: a string describing the version.
@@ -117,7 +117,7 @@ extern "C" {
* file version. Its value remains 0 in the repository except in release
* tags where it is the revision from which the tag was created.
*/
-#define SVN_VER_REVISION 1835932
+#define SVN_VER_REVISION 1876290
/* Version strings composed from the above definitions. */
diff --git a/subversion/include/svn_wc.h b/subversion/include/svn_wc.h
index e632673e0ae4..cd018ae1ee8e 100644
--- a/subversion/include/svn_wc.h
+++ b/subversion/include/svn_wc.h
@@ -7602,9 +7602,14 @@ svn_wc_relocate(const char *path,
* If @a clear_changelists is TRUE, then changelist information for the
* paths is cleared.
*
- * If @a metadata_only is TRUE, the working copy files are untouched, but
- * if there are conflict marker files attached to these files these
- * markers are removed.
+ * The @a metadata_only and @a added_keep_local options control the
+ * extent of reverting. If @a metadata_only is TRUE, the working copy
+ * files are untouched, but if there are conflict marker files attached
+ * to these files these markers are removed. Otherwise, if
+ * @a added_keep_local is TRUE, then all items are reverted except an
+ * item that was scheduled as plain 'add' (not a copy) will not be
+ * removed from the working copy. Otherwise, all items are reverted and
+ * their on-disk state changed to match.
*
* If @a cancel_func is non-NULL, call it with @a cancel_baton at
* various points during the reversion process. If it returns an
@@ -7622,8 +7627,30 @@ svn_wc_relocate(const char *path,
* If @a path is not under version control, return the error
* #SVN_ERR_UNVERSIONED_RESOURCE.
*
+ * @since New in 1.11.
+ */
+svn_error_t *
+svn_wc_revert6(svn_wc_context_t *wc_ctx,
+ const char *local_abspath,
+ svn_depth_t depth,
+ svn_boolean_t use_commit_times,
+ const apr_array_header_t *changelist_filter,
+ svn_boolean_t clear_changelists,
+ svn_boolean_t metadata_only,
+ svn_boolean_t added_keep_local,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
+ apr_pool_t *scratch_pool);
+
+/** Similar to svn_wc_revert6() but with @a added_keep_local always
+ * set to TRUE.
+ *
* @since New in 1.9.
+ * @deprecated Provided for backward compatibility with the 1.10 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_wc_revert5(svn_wc_context_t *wc_ctx,
const char *local_abspath,
diff --git a/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c b/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c
index 7926960ca446..a871a9390ed9 100644
--- a/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c
+++ b/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c
@@ -120,10 +120,10 @@ password_get_gnome_keyring(svn_boolean_t *done,
gchar *gpassword;
*done = FALSE;
-
+
if (!available_collection(non_interactive, pool))
return SVN_NO_ERROR;
-
+
gpassword = secret_password_lookup_sync(SECRET_SCHEMA_COMPAT_NETWORK, NULL,
&gerror,
"domain", realmstring,
@@ -140,7 +140,7 @@ password_get_gnome_keyring(svn_boolean_t *done,
g_free(gpassword);
*done = TRUE;
}
-
+
return SVN_NO_ERROR;
}
@@ -158,7 +158,7 @@ password_set_gnome_keyring(svn_boolean_t *done,
{
GError *gerror = NULL;
gboolean gstatus;
-
+
*done = FALSE;
if (!available_collection(non_interactive, pool))
@@ -182,7 +182,7 @@ password_set_gnome_keyring(svn_boolean_t *done,
{
*done = TRUE;
}
-
+
return SVN_NO_ERROR;
}
diff --git a/subversion/libsvn_auth_gnome_keyring/libsvn_auth_gnome_keyring.pc.in b/subversion/libsvn_auth_gnome_keyring/libsvn_auth_gnome_keyring.pc.in
index a787178f4ea7..114c8bb3d2ed 100644
--- a/subversion/libsvn_auth_gnome_keyring/libsvn_auth_gnome_keyring.pc.in
+++ b/subversion/libsvn_auth_gnome_keyring/libsvn_auth_gnome_keyring.pc.in
@@ -6,7 +6,7 @@ includedir=@includedir@
Name: libsvn_auth_gnome_keyring
Description: Subversion GNOME Keyring Library
Version: @PACKAGE_VERSION@
-Requires: apr-@SVN_APR_MAJOR_VERSION@
-Requires.private: libsvn_subr @SVN_GNOME_KEYRING_PCLIBS@
-Libs: -L${libdir} -lsvn_auth_gnome_keyring
-Cflags: -I${includedir}
+Requires: apr-@SVN_APR_MAJOR_VERSION@
+Requires.private: libsvn_subr, @SVN_GNOME_KEYRING_PCLIBS@
+Libs: -L${libdir} -lsvn_auth_gnome_keyring-1
+Cflags: -I${includedir}/subversion-1
diff --git a/subversion/libsvn_auth_kwallet/kwallet.cpp b/subversion/libsvn_auth_kwallet/kwallet.cpp
index f59e04778b3c..c64caabe14bd 100644
--- a/subversion/libsvn_auth_kwallet/kwallet.cpp
+++ b/subversion/libsvn_auth_kwallet/kwallet.cpp
@@ -227,10 +227,10 @@ kwallet_password_get(svn_boolean_t *done,
KLocalizedString::setApplicationDomain("subversion"); /* translation domain */
/* componentName appears in KDE GUI prompts */
- KAboutData aboutData(QStringLiteral("subversion"), /* componentName */
+ KAboutData aboutData(QString("subversion"), /* componentName */
i18n(get_application_name(parameters,
pool)), /* displayName */
- QStringLiteral(SVN_VER_NUMBER));
+ QString(SVN_VER_NUMBER));
KAboutData::setApplicationData(aboutData);
#else
KCmdLineArgs::init(q_argc, q_argv,
@@ -309,10 +309,10 @@ kwallet_password_set(svn_boolean_t *done,
KLocalizedString::setApplicationDomain("subversion"); /* translation domain */
/* componentName appears in KDE GUI prompts */
- KAboutData aboutData(QStringLiteral("subversion"), /* componentName */
+ KAboutData aboutData(QString("subversion"), /* componentName */
i18n(get_application_name(parameters,
pool)), /* displayName */
- QStringLiteral(SVN_VER_NUMBER));
+ QString(SVN_VER_NUMBER));
KAboutData::setApplicationData(aboutData);
#else
KCmdLineArgs::init(q_argc, q_argv,
diff --git a/subversion/libsvn_auth_kwallet/libsvn_auth_kwallet.pc.in b/subversion/libsvn_auth_kwallet/libsvn_auth_kwallet.pc.in
index fa65cfa476b2..8d4d72bea0df 100644
--- a/subversion/libsvn_auth_kwallet/libsvn_auth_kwallet.pc.in
+++ b/subversion/libsvn_auth_kwallet/libsvn_auth_kwallet.pc.in
@@ -6,7 +6,7 @@ includedir=@includedir@
Name: libsvn_auth_kwallet
Description: Subversion KWallet Library
Version: @PACKAGE_VERSION@
-Requires: apr-@SVN_APR_MAJOR_VERSION@
-Requires.private: libsvn_subr
-Libs: -L${libdir} -lsvn_auth_kwallet @SVN_KWALLET_LIBS@
-Cflags: -I${includedir}
+Requires: apr-@SVN_APR_MAJOR_VERSION@
+Requires.private: libsvn_subr
+Libs: -L${libdir} -lsvn_auth_kwallet-1 @SVN_KWALLET_LIBS@
+Cflags: -I${includedir}/subversion-1
diff --git a/subversion/libsvn_client/add.c b/subversion/libsvn_client/add.c
index ce7891afb27c..3bb548ae8b45 100644
--- a/subversion/libsvn_client/add.c
+++ b/subversion/libsvn_client/add.c
@@ -983,12 +983,13 @@ svn_client_add5(const char *path,
static svn_error_t *
path_driver_cb_func(void **dir_baton,
+ const svn_delta_editor_t *editor,
+ void *edit_baton,
void *parent_baton,
void *callback_baton,
const char *path,
apr_pool_t *pool)
{
- const svn_delta_editor_t *editor = callback_baton;
SVN_ERR(svn_path_check_valid(path, pool));
return editor->add_directory(path, parent_baton, NULL,
SVN_INVALID_REVNUM, pool, dir_baton);
@@ -1177,8 +1178,8 @@ mkdir_urls(const apr_array_header_t *urls,
/* Call the path-based editor driver. */
err = svn_error_trace(
- svn_delta_path_driver2(editor, edit_baton, targets, TRUE,
- path_driver_cb_func, (void *)editor, pool));
+ svn_delta_path_driver3(editor, edit_baton, targets, TRUE,
+ path_driver_cb_func, NULL, pool));
if (err)
{
diff --git a/subversion/libsvn_client/blame.c b/subversion/libsvn_client/blame.c
index b9363e20dd3e..f78b3041f5b2 100644
--- a/subversion/libsvn_client/blame.c
+++ b/subversion/libsvn_client/blame.c
@@ -456,7 +456,7 @@ file_rev_handler(void *baton, const char *path, svn_revnum_t revnum,
SVN_ERR_CLIENT_IS_BINARY_FILE, NULL,
_("Cannot calculate blame information for binary file '%s'"),
(svn_path_is_url(frb->target)
- ? frb->target
+ ? frb->target
: svn_dirent_local_style(frb->target, pool)));
}
}
@@ -553,7 +553,7 @@ file_rev_handler(void *baton, const char *path, svn_revnum_t revnum,
|| frb->include_merged_revisions);
/* The file existed before start_rev; generate no blame info for
- lines from this revision (or before).
+ lines from this revision (or before).
This revision specifies the state as it was at the start revision */
@@ -656,14 +656,16 @@ normalize_blames(struct blame_chain *chain,
}
svn_error_t *
-svn_client_blame5(const char *target,
+svn_client_blame6(svn_revnum_t *start_revnum_p,
+ svn_revnum_t *end_revnum_p,
+ const char *target,
const svn_opt_revision_t *peg_revision,
const svn_opt_revision_t *start,
const svn_opt_revision_t *end,
const svn_diff_file_options_t *diff_options,
svn_boolean_t ignore_mime_type,
svn_boolean_t include_merged_revisions,
- svn_client_blame_receiver3_t receiver,
+ svn_client_blame_receiver4_t receiver,
void *receiver_baton,
svn_client_ctx_t *ctx,
apr_pool_t *pool)
@@ -696,10 +698,13 @@ svn_client_blame5(const char *target,
SVN_ERR(svn_client__get_revision_number(&start_revnum, NULL, ctx->wc_ctx,
target_abspath_or_url, ra_session,
start, pool));
-
+ if (start_revnum_p)
+ *start_revnum_p = start_revnum;
SVN_ERR(svn_client__get_revision_number(&end_revnum, NULL, ctx->wc_ctx,
target_abspath_or_url, ra_session,
end, pool));
+ if (end_revnum_p)
+ *end_revnum_p = end_revnum;
{
svn_client__pathrev_t *loc;
@@ -734,7 +739,7 @@ svn_client_blame5(const char *target,
mime_type = svn_prop_get_value(props, SVN_PROP_MIME_TYPE);
}
- else
+ else
{
const svn_string_t *value;
@@ -941,18 +946,21 @@ svn_client_blame5(const char *target,
SVN_ERR(ctx->cancel_func(ctx->cancel_baton));
if (!eof || sb->len)
{
+ svn_string_t line;
+ line.data = sb->data;
+ line.len = sb->len;
if (walk->rev)
- SVN_ERR(receiver(receiver_baton, start_revnum, end_revnum,
+ SVN_ERR(receiver(receiver_baton,
line_no, walk->rev->revision,
walk->rev->rev_props, merged_rev,
merged_rev_props, merged_path,
- sb->data, FALSE, iterpool));
+ &line, FALSE, iterpool));
else
- SVN_ERR(receiver(receiver_baton, start_revnum, end_revnum,
+ SVN_ERR(receiver(receiver_baton,
line_no, SVN_INVALID_REVNUM,
NULL, SVN_INVALID_REVNUM,
NULL, NULL,
- sb->data, TRUE, iterpool));
+ &line, TRUE, iterpool));
}
if (eof) break;
}
diff --git a/subversion/libsvn_client/client.h b/subversion/libsvn_client/client.h
index c0a794712f3f..97cd1e297c02 100644
--- a/subversion/libsvn_client/client.h
+++ b/subversion/libsvn_client/client.h
@@ -682,34 +682,6 @@ svn_client__get_diff_editor2(const svn_delta_editor_t **editor,
/* ---------------------------------------------------------------- */
-/*** Editor for diff summary ***/
-
-/* Set *DIFF_PROCESSOR to a diff processor that will report a diff summary
- to SUMMARIZE_FUNC.
-
- P_ROOT_RELPATH will return a pointer to a string that must be set to
- the root of the operation before the processor is called.
-
- ORIGINAL_PATH specifies the original path and will be used with
- **ANCHOR_PATH to create paths as the user originally provided them
- to the diff function.
-
- SUMMARIZE_FUNC is called with SUMMARIZE_BATON as parameter by the
- created callbacks for each changed item.
-*/
-svn_error_t *
-svn_client__get_diff_summarize_callbacks(
- const svn_diff_tree_processor_t **diff_processor,
- const char ***p_root_relpath,
- svn_client_diff_summarize_func_t summarize_func,
- void *summarize_baton,
- const char *original_target,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
-
-/* ---------------------------------------------------------------- */
-
-
/*** Copy Stuff ***/
/* This structure is used to associate a specific copy or move SRC with a
@@ -754,40 +726,23 @@ typedef struct svn_client__copy_pair_t
/*** Commit Stuff ***/
-/* WARNING: This is all new, untested, un-peer-reviewed conceptual
- stuff.
+/* The "Harvest Committables" System
- The day that 'svn switch' came into existence, our old commit
- crawler (svn_wc_crawl_local_mods) became obsolete. It relied far
- too heavily on the on-disk hierarchy of files and directories, and
- simply had no way to support disjoint working copy trees or nest
- working copies. The primary reason for this is that commit
- process, in order to guarantee atomicity, is a single drive of a
+ The commit process requires, per repository, a single drive of a
commit editor which is based not on working copy paths, but on
- URLs. With the completion of 'svn switch', it became all too
- likely that the on-disk working copy hierarchy would no longer be
- guaranteed to map to a similar in-repository hierarchy.
-
- Aside from this new brokenness of the old system, an unrelated
- feature request had cropped up -- the ability to know in advance of
- your commit, exactly what would be committed (so that log messages
- could be initially populated with this information). Since the old
- crawler discovered commit candidates while in the process of
- committing, it was impossible to harvest this information upfront.
- As a workaround, svn_wc_statuses() was used to stat the whole
- working copy for changes before the commit started...and then the
- commit would again stat the whole tree for changes.
-
- Enter the new system.
+ URLs. The on-disk working copy hierarchy does not, in general,
+ map to a similar in-repository hierarchy, due to switched subtrees
+ and disjoint working copies.
+
+ Also we wish to know exactly what would be committed, in advance of
+ the commit, so that a log message editor can be initially populated
+ with this information.
The primary goal of this system is very straightforward: harvest
all commit candidate information up front, and cache enough info in
the process to use this to drive a URL-sorted commit.
- *** END-OF-KNOWLEDGE ***
-
- The prototypes below are still in development. In general, the
- idea is that commit-y processes ('svn mkdir URL', 'svn delete URL',
+ The idea is that commit-y processes ('svn mkdir URL', 'svn delete URL',
'svn commit', 'svn copy WC_PATH URL', 'svn copy URL1 URL2', 'svn
move URL1 URL2', others?) generate the cached commit candidate
information, and hand this information off to a consumer which is
@@ -844,7 +799,7 @@ typedef svn_error_t *(*svn_client__check_url_kind_t)(void *baton,
- if the candidate has a lock token, add it to the LOCK_TOKENS hash.
- if the candidate is a directory scheduled for deletion, crawl
- the directories children recursively for any lock tokens and
+ the directory's children recursively for any lock tokens and
add them to the LOCK_TOKENS array.
At the successful return of this function, COMMITTABLES will point
@@ -915,6 +870,18 @@ svn_client__condense_commit_items(const char **base_url,
apr_array_header_t *commit_items,
apr_pool_t *pool);
+/* Rewrite the COMMIT_ITEMS array to be sorted by URL.
+ Rewrite the items' URLs to be relative to BASE_URL.
+
+ COMMIT_ITEMS is an array of (svn_client_commit_item3_t *) items.
+
+ Afterwards, some of the items in COMMIT_ITEMS may contain data
+ allocated in POOL. */
+svn_error_t *
+svn_client__condense_commit_items2(const char *base_url,
+ apr_array_header_t *commit_items,
+ apr_pool_t *pool);
+
/* Commit the items in the COMMIT_ITEMS array using EDITOR/EDIT_BATON
to describe the committed local mods. Prior to this call,
COMMIT_ITEMS should have been run through (and BASE_URL generated
@@ -1129,24 +1096,26 @@ svn_client__resolve_conflicts(svn_boolean_t *conflicts_remain,
svn_client_ctx_t *ctx,
apr_pool_t *scratch_pool);
-/* Produce a diff with depth DEPTH between two files or two directories at
- * LEFT_ABSPATH1 and RIGHT_ABSPATH, using the provided diff callbacks to
- * show changes in files. The files and directories involved may be part of
- * a working copy or they may be unversioned. For versioned files, show
- * property changes, too.
+/* Produce a diff with depth DEPTH between the file or directory at
+ * LEFT_ABSPATH and the file or directory at RIGHT_ABSPATH, reporting
+ * differences to DIFF_PROCESSOR.
+ *
+ * The files and directories involved may be part of a working copy or
+ * they may be unversioned. For versioned files, show property changes,
+ * too.
*
- * If ANCHOR_ABSPATH is not null, set it to the anchor of the diff before
- * the first processor call. (The anchor is LEFT_ABSPATH or an ancestor of it)
+ * No copy or move information is reported to the diff processor.
+ *
+ * Anchor the DIFF_PROCESSOR at the requested diff targets (LEFT_ABSPATH,
+ * RIGHT_ABSPATH). As any children reached by recursion are matched by
+ * name, a diff processor relpath applies equally to both sides of the diff.
*/
svn_error_t *
-svn_client__arbitrary_nodes_diff(const char **root_relpath,
- svn_boolean_t *root_is_dir,
- const char *left_abspath,
+svn_client__arbitrary_nodes_diff(const char *left_abspath,
const char *right_abspath,
svn_depth_t depth,
const svn_diff_tree_processor_t *diff_processor,
svn_client_ctx_t *ctx,
- apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
diff --git a/subversion/libsvn_client/commit.c b/subversion/libsvn_client/commit.c
index 4a945c887aa9..df2f5f7c5224 100644
--- a/subversion/libsvn_client/commit.c
+++ b/subversion/libsvn_client/commit.c
@@ -500,6 +500,129 @@ append_externals_as_explicit_targets(apr_array_header_t *rel_targets,
return SVN_NO_ERROR;
}
+/* Crawl the working copy for commit items.
+ */
+static svn_error_t *
+harvest_committables(apr_array_header_t **commit_items_p,
+ apr_hash_t **committables_by_path_p,
+ apr_hash_t **lock_tokens,
+ const char *base_dir_abspath,
+ const apr_array_header_t *targets,
+ int depth_empty_start,
+ svn_depth_t depth,
+ svn_boolean_t just_locked,
+ const apr_array_header_t *changelists,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ struct check_url_kind_baton cukb;
+ svn_client__committables_t *committables;
+ apr_hash_index_t *hi;
+
+ /* Prepare for when we have a copy containing not-present nodes. */
+ cukb.pool = scratch_pool;
+ cukb.session = NULL; /* ### Can we somehow reuse session? */
+ cukb.repos_root_url = NULL;
+ cukb.ctx = ctx;
+
+ SVN_ERR(svn_client__harvest_committables(&committables, lock_tokens,
+ base_dir_abspath, targets,
+ depth_empty_start, depth,
+ just_locked,
+ changelists,
+ check_url_kind, &cukb,
+ ctx, result_pool, scratch_pool));
+ if (apr_hash_count(committables->by_repository) == 0)
+ {
+ *commit_items_p = NULL;
+ return SVN_NO_ERROR; /* Nothing to do */
+ }
+ else if (apr_hash_count(committables->by_repository) > 1)
+ {
+ return svn_error_create(SVN_ERR_UNSUPPORTED_FEATURE, NULL,
+ _("Commit can only commit to a single repository at a time.\n"
+ "Are all targets part of the same working copy?"));
+ }
+
+ hi = apr_hash_first(scratch_pool, committables->by_repository);
+ *commit_items_p = apr_hash_this_val(hi);
+ if (committables_by_path_p)
+ *committables_by_path_p = committables->by_path;
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__wc_replay(const char *src_wc_abspath,
+ const apr_array_header_t *targets,
+ svn_depth_t depth,
+ const apr_array_header_t *changelists,
+ const svn_delta_editor_t *editor,
+ void *edit_baton,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool)
+{
+ const char *base_abspath;
+ apr_array_header_t *rel_targets;
+ apr_hash_t *lock_tokens;
+ apr_array_header_t *commit_items;
+ svn_client__pathrev_t *base;
+ const char *base_url;
+ svn_wc_notify_func2_t saved_notify_func;
+ void *saved_notify_baton;
+
+ /* Condense the target list. This makes all targets absolute. */
+ SVN_ERR(svn_dirent_condense_targets(&base_abspath, &rel_targets, targets,
+ FALSE, pool, pool));
+
+ /* No targets means nothing to commit, so just return. */
+ if (base_abspath == NULL)
+ return SVN_NO_ERROR;
+
+ SVN_ERR_ASSERT(rel_targets != NULL);
+
+ /* If we calculated only a base and no relative targets, this
+ must mean that we are being asked to commit (effectively) a
+ single path. */
+ if (rel_targets->nelts == 0)
+ APR_ARRAY_PUSH(rel_targets, const char *) = "";
+
+ /* Crawl the working copy for commit items. */
+ SVN_ERR(harvest_committables(&commit_items, NULL /*committables_by_path_p*/,
+ &lock_tokens,
+ base_abspath, rel_targets,
+ -1 /*depth_empty_start*/,
+ depth,
+ FALSE /*just_locked*/,
+ changelists,
+ ctx, pool, pool));
+ if (!commit_items)
+ {
+ return SVN_NO_ERROR;
+ }
+
+ SVN_ERR(svn_client__wc_node_get_base(&base,
+ src_wc_abspath, ctx->wc_ctx, pool, pool));
+ base_url = base->url;
+ /* Sort our COMMIT_ITEMS by URL and find their relative URL-paths. */
+ SVN_ERR(svn_client__condense_commit_items2(base_url, commit_items, pool));
+
+ saved_notify_func = ctx->notify_func2;
+ saved_notify_baton = ctx->notify_baton2;
+ ctx->notify_func2 = notify_func;
+ ctx->notify_baton2 = notify_baton;
+ /* BASE_URL is only used here in notifications & errors */
+ SVN_ERR(svn_client__do_commit(base_url, commit_items,
+ editor, edit_baton,
+ NULL /*notify_prefix*/, NULL /*sha1_checksums*/,
+ ctx, pool, pool));
+ ctx->notify_func2 = saved_notify_func;
+ ctx->notify_baton2 = saved_notify_baton;
+ return SVN_NO_ERROR;
+}
+
svn_error_t *
svn_client_commit6(const apr_array_header_t *targets,
svn_depth_t depth,
@@ -525,7 +648,7 @@ svn_client_commit6(const apr_array_header_t *targets,
apr_array_header_t *rel_targets;
apr_array_header_t *lock_targets;
apr_array_header_t *locks_obtained;
- svn_client__committables_t *committables;
+ apr_hash_t *committables_by_path;
apr_hash_t *lock_tokens;
apr_hash_t *sha1_checksums;
apr_array_header_t *commit_items;
@@ -615,55 +738,27 @@ svn_client_commit6(const apr_array_header_t *targets,
pool);
/* Crawl the working copy for commit items. */
- {
- struct check_url_kind_baton cukb;
-
- /* Prepare for when we have a copy containing not-present nodes. */
- cukb.pool = iterpool;
- cukb.session = NULL; /* ### Can we somehow reuse session? */
- cukb.repos_root_url = NULL;
- cukb.ctx = ctx;
-
- cmt_err = svn_error_trace(
- svn_client__harvest_committables(&committables,
- &lock_tokens,
- base_abspath,
- rel_targets,
- depth_empty_after,
- depth,
- ! keep_locks,
- changelists,
- check_url_kind,
- &cukb,
- ctx,
- pool,
- iterpool));
-
- svn_pool_clear(iterpool);
- }
+ cmt_err = svn_error_trace(
+ harvest_committables(&commit_items, &committables_by_path,
+ &lock_tokens,
+ base_abspath,
+ rel_targets,
+ depth_empty_after,
+ depth,
+ ! keep_locks,
+ changelists,
+ ctx,
+ pool,
+ iterpool));
+ svn_pool_clear(iterpool);
if (cmt_err)
goto cleanup;
- if (apr_hash_count(committables->by_repository) == 0)
+ if (!commit_items)
{
goto cleanup; /* Nothing to do */
}
- else if (apr_hash_count(committables->by_repository) > 1)
- {
- cmt_err = svn_error_create(
- SVN_ERR_UNSUPPORTED_FEATURE, NULL,
- _("Commit can only commit to a single repository at a time.\n"
- "Are all targets part of the same working copy?"));
- goto cleanup;
- }
-
- {
- apr_hash_index_t *hi = apr_hash_first(iterpool,
- committables->by_repository);
-
- commit_items = apr_hash_this_val(hi);
- }
/* If our array of targets contains only locks (and no actual file
or prop modifications), then we return here to avoid committing a
@@ -713,7 +808,7 @@ svn_client_commit6(const apr_array_header_t *targets,
if (moved_from_abspath && delete_op_root_abspath)
{
svn_client_commit_item3_t *delete_half =
- svn_hash_gets(committables->by_path, delete_op_root_abspath);
+ svn_hash_gets(committables_by_path, delete_op_root_abspath);
if (!delete_half)
{
@@ -769,7 +864,7 @@ svn_client_commit6(const apr_array_header_t *targets,
if (moved_to_abspath && copy_op_root_abspath &&
strcmp(moved_to_abspath, copy_op_root_abspath) == 0 &&
- svn_hash_gets(committables->by_path, copy_op_root_abspath)
+ svn_hash_gets(committables_by_path, copy_op_root_abspath)
== NULL)
{
cmt_err = svn_error_createf(
diff --git a/subversion/libsvn_client/commit_util.c b/subversion/libsvn_client/commit_util.c
index 1f3d87783436..2be3ecd5ce39 100644
--- a/subversion/libsvn_client/commit_util.c
+++ b/subversion/libsvn_client/commit_util.c
@@ -1392,6 +1392,29 @@ sort_commit_item_urls(const void *a, const void *b)
}
+svn_error_t *
+svn_client__condense_commit_items2(const char *base_url,
+ apr_array_header_t *commit_items,
+ apr_pool_t *pool)
+{
+ apr_array_header_t *ci = commit_items; /* convenience */
+ int i;
+
+ /* Sort our commit items by their URLs. */
+ svn_sort__array(ci, sort_commit_item_urls);
+
+ /* Hack BASE_URL off each URL; store the result as session_relpath. */
+ for (i = 0; i < ci->nelts; i++)
+ {
+ svn_client_commit_item3_t *this_item
+ = APR_ARRAY_IDX(ci, i, svn_client_commit_item3_t *);
+
+ this_item->session_relpath = svn_uri_skip_ancestor(base_url,
+ this_item->url, pool);
+ }
+
+ return SVN_NO_ERROR;
+}
svn_error_t *
svn_client__condense_commit_items(const char **base_url,
@@ -1501,8 +1524,6 @@ struct file_mod_t
/* A baton for use while driving a path-based editor driver for commit */
struct item_commit_baton
{
- const svn_delta_editor_t *editor; /* commit editor */
- void *edit_baton; /* commit editor's baton */
apr_hash_t *file_mods; /* hash: path->file_mod_t */
const char *notify_path_prefix; /* notification path prefix
(NULL is okay, else abs path) */
@@ -1524,6 +1545,8 @@ struct item_commit_baton
* This implements svn_delta_path_driver_cb_func_t. */
static svn_error_t *
do_item_commit(void **dir_baton,
+ const svn_delta_editor_t *editor,
+ void *edit_baton,
void *parent_baton,
void *callback_baton,
const char *path,
@@ -1535,7 +1558,6 @@ do_item_commit(void **dir_baton,
svn_node_kind_t kind = item->kind;
void *file_baton = NULL;
apr_pool_t *file_pool = NULL;
- const svn_delta_editor_t *editor = icb->editor;
apr_hash_t *file_mods = icb->file_mods;
svn_client_ctx_t *ctx = icb->ctx;
svn_error_t *err;
@@ -1737,7 +1759,7 @@ do_item_commit(void **dir_baton,
{
if (! parent_baton)
{
- err = editor->open_root(icb->edit_baton, item->revision,
+ err = editor->open_root(edit_baton, item->revision,
pool, dir_baton);
}
else
@@ -1871,8 +1893,6 @@ svn_client__do_commit(const char *base_url,
}
/* Setup the callback baton. */
- cb_baton.editor = editor;
- cb_baton.edit_baton = edit_baton;
cb_baton.file_mods = file_mods;
cb_baton.notify_path_prefix = notify_path_prefix;
cb_baton.ctx = ctx;
@@ -1880,7 +1900,7 @@ svn_client__do_commit(const char *base_url,
cb_baton.base_url = base_url;
/* Drive the commit editor! */
- SVN_ERR(svn_delta_path_driver2(editor, edit_baton, paths, TRUE,
+ SVN_ERR(svn_delta_path_driver3(editor, edit_baton, paths, TRUE,
do_item_commit, &cb_baton, scratch_pool));
/* Transmit outstanding text deltas. */
diff --git a/subversion/libsvn_client/conflicts.c b/subversion/libsvn_client/conflicts.c
index 0b342e0e0a1e..9a58703c4238 100644
--- a/subversion/libsvn_client/conflicts.c
+++ b/subversion/libsvn_client/conflicts.c
@@ -255,7 +255,7 @@ struct repos_move_info {
/* The revision in which this move was committed. */
svn_revnum_t rev;
- /* The author who commited the revision in which this move was committed. */
+ /* The author who committed the revision in which this move was committed. */
const char *rev_author;
/* The repository relpath the node was moved from in this revision. */
@@ -383,7 +383,7 @@ add_new_move(struct repos_move_info **new_move,
const char *author,
apr_hash_t *moved_paths,
svn_ra_session_t *ra_session,
- const char *repos_root_url,
+ const char *repos_root_url,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
@@ -661,7 +661,7 @@ match_copies_to_deletion(const char *deleted_repos_relpath,
TRUE, iterpool));
if (!related)
continue;
-
+
/* Remember details of this move. */
SVN_ERR(add_new_move(&move, deleted_repos_relpath,
copy->copyto_path, copy->copyfrom_rev,
@@ -669,7 +669,7 @@ match_copies_to_deletion(const char *deleted_repos_relpath,
moved_paths, ra_session, repos_root_url,
result_pool, iterpool));
push_move(move, moves_table, result_pool);
- }
+ }
}
else
{
@@ -782,7 +782,7 @@ map_deleted_path_to_move(const char *deleted_relpath,
{
const char *relpath;
struct repos_move_info *move;
-
+
move = APR_ARRAY_IDX(moves, i, struct repos_move_info *);
if (strcmp(move->moved_from_repos_relpath, deleted_relpath) == 0)
return move;
@@ -806,18 +806,20 @@ map_deleted_path_to_move(const char *deleted_relpath,
if (closest_move)
{
const char *relpath;
- const char *moved_along_path;
- struct repos_move_info *move;
-
+
/* See if we can find an even closer move for this moved-along path. */
relpath = svn_relpath_skip_ancestor(closest_move->moved_to_repos_relpath,
deleted_relpath);
- moved_along_path =
- svn_relpath_join(closest_move->moved_from_repos_relpath, relpath,
- scratch_pool);
- move = map_deleted_path_to_move(moved_along_path, moves, scratch_pool);
- if (move)
- return move;
+ if (relpath && relpath[0] != '\0')
+ {
+ struct repos_move_info *move;
+ const char *moved_along_path =
+ svn_relpath_join(closest_move->moved_from_repos_relpath, relpath,
+ scratch_pool);
+ move = map_deleted_path_to_move(moved_along_path, moves, scratch_pool);
+ if (move)
+ return move;
+ }
}
return closest_move;
@@ -965,7 +967,7 @@ cache_copied_item(apr_hash_t *copies, const char *changed_path,
* This function answers the same question as svn_ra_get_deleted_rev() but
* works in cases where we do not already know a revision in which the deleted
* node once used to exist.
- *
+ *
* If the node was moved, rather than deleted, return move information
* in BATON->MOVE.
*/
@@ -1096,7 +1098,7 @@ find_deleted_rev(void *baton,
b->deleted_rev_author = apr_pstrdup(b->result_pool, author->data);
else
b->deleted_rev_author = _("unknown author");
-
+
b->replacing_node_kind = replacing_node_kind;
/* We're done. Abort the log operation. */
@@ -1171,7 +1173,7 @@ describe_local_file_node_change(const char **description,
const char *moved_to_abspath;
svn_error_t *err;
- err = svn_wc__node_was_moved_away(&moved_to_abspath, NULL,
+ err = svn_wc__node_was_moved_away(&moved_to_abspath, NULL,
ctx->wc_ctx,
conflict->local_abspath,
scratch_pool,
@@ -1255,7 +1257,7 @@ describe_local_file_node_change(const char **description,
{
const char *moved_from_abspath;
- SVN_ERR(svn_wc__node_was_moved_here(&moved_from_abspath, NULL,
+ SVN_ERR(svn_wc__node_was_moved_here(&moved_from_abspath, NULL,
ctx->wc_ctx,
conflict->local_abspath,
scratch_pool,
@@ -1396,7 +1398,7 @@ describe_local_dir_node_change(const char **description,
const char *moved_to_abspath;
svn_error_t *err;
- err = svn_wc__node_was_moved_away(&moved_to_abspath, NULL,
+ err = svn_wc__node_was_moved_away(&moved_to_abspath, NULL,
ctx->wc_ctx,
conflict->local_abspath,
scratch_pool,
@@ -1481,7 +1483,7 @@ describe_local_dir_node_change(const char **description,
{
const char *moved_from_abspath;
- SVN_ERR(svn_wc__node_was_moved_here(&moved_from_abspath, NULL,
+ SVN_ERR(svn_wc__node_was_moved_here(&moved_from_abspath, NULL,
ctx->wc_ctx,
conflict->local_abspath,
scratch_pool,
@@ -1579,7 +1581,7 @@ struct find_moves_baton
* rB: mv b->c
* rC: mv c->d
* we map each revision number to all the moves which happened in the
- * revision, which looks as follows:
+ * revision, which looks as follows:
* rA : [(x->z), (a->b)]
* rB : [(b->c)]
* rC : [(c->d)]
@@ -2100,33 +2102,6 @@ trace_moved_node_backwards(apr_hash_t *moves_table,
return SVN_NO_ERROR;
}
-static svn_error_t *
-reparent_session_and_fetch_node_kind(svn_node_kind_t *node_kind,
- svn_ra_session_t *ra_session,
- const char *url,
- svn_revnum_t peg_rev,
- apr_pool_t *scratch_pool)
-{
- svn_error_t *err;
-
- err = svn_ra_reparent(ra_session, url, scratch_pool);
- if (err)
- {
- if (err->apr_err == SVN_ERR_RA_ILLEGAL_URL)
- {
- svn_error_clear(err);
- *node_kind = svn_node_unknown;
- return SVN_NO_ERROR;
- }
-
- return svn_error_trace(err);
- }
-
- SVN_ERR(svn_ra_check_path(ra_session, "", peg_rev, node_kind, scratch_pool));
-
- return SVN_NO_ERROR;
-}
-
/* Scan MOVES_TABLE for moves which affect a particular deleted node, and
* build a set of new move information for this node.
* Return heads of all possible move chains in *MOVES.
@@ -2173,22 +2148,29 @@ find_operative_moves(apr_array_header_t **moves,
svn_pool_clear(iterpool);
move = APR_ARRAY_IDX(moves_in_deleted_rev, i, struct repos_move_info *);
- relpath = svn_relpath_skip_ancestor(move->moved_from_repos_relpath,
+ if (strcmp(move->moved_from_repos_relpath, deleted_repos_relpath) == 0)
+ {
+ APR_ARRAY_PUSH(*moves, struct repos_move_info *) = move;
+ continue;
+ }
+
+ /* Test for an operative nested move. */
+ relpath = svn_relpath_skip_ancestor(move->moved_to_repos_relpath,
deleted_repos_relpath);
if (relpath && relpath[0] != '\0')
{
- svn_node_kind_t node_kind;
-
- url = svn_path_url_add_component2(repos_root_url,
- deleted_repos_relpath,
- iterpool);
- SVN_ERR(reparent_session_and_fetch_node_kind(&node_kind,
- ra_session, url,
- rev_below(deleted_rev),
- iterpool));
- move = new_path_adjusted_move(move, relpath, node_kind, result_pool);
+ struct repos_move_info *nested_move;
+ const char *actual_deleted_repos_relpath;
+
+ actual_deleted_repos_relpath =
+ svn_relpath_join(move->moved_from_repos_relpath, relpath,
+ iterpool);
+ nested_move = map_deleted_path_to_move(actual_deleted_repos_relpath,
+ moves_in_deleted_rev,
+ iterpool);
+ if (nested_move)
+ APR_ARRAY_PUSH(*moves, struct repos_move_info *) = nested_move;
}
- APR_ARRAY_PUSH(*moves, struct repos_move_info *) = move;
}
if (url != NULL)
@@ -2368,6 +2350,8 @@ struct conflict_tree_local_missing_details
/* If not SVN_INVALID_REVNUM, the node was deleted in DELETED_REV. */
svn_revnum_t deleted_rev;
+ /* ### Add 'added_rev', like in conflict_tree_incoming_delete_details? */
+
/* Author who committed DELETED_REV. */
const char *deleted_rev_author;
@@ -2375,21 +2359,49 @@ struct conflict_tree_local_missing_details
const char *deleted_repos_relpath;
/* Move information about the conflict victim. If not NULL, this is an
- * array of repos_move_info elements. Each element is the head of a
- * move chain which starts in DELETED_REV. */
+ * array of 'struct repos_move_info *' elements. Each element is the
+ * head of a move chain which starts in DELETED_REV. */
apr_array_header_t *moves;
+ /* If moves is not NULL, a map of repos_relpaths and working copy nodes.
+ *
+ * Each key is a "const char *" repository relpath corresponding to a
+ * possible repository-side move destination node in the revision which
+ * is the merge-right revision in case of a merge.
+ *
+ * Each value is an apr_array_header_t *.
+ * Each array consists of "const char *" absolute paths to working copy
+ * nodes which correspond to the repository node selected by the map key.
+ * Each such working copy node is a potential local move target which can
+ * be chosen to find a suitable merge target when resolving a tree conflict.
+ *
+ * This may be an empty hash map in case if there is no move target path
+ * in the working copy. */
+ apr_hash_t *wc_move_targets;
+
+ /* If not NULL, the preferred move target repository relpath. This is our key
+ * into the WC_MOVE_TARGETS map above (can be overridden by the user). */
+ const char *move_target_repos_relpath;
+
+ /* The current index into the list of working copy nodes corresponding to
+ * MOVE_TARGET_REPOS_REPLATH (can be overridden by the user). */
+ int wc_move_target_idx;
+
/* Move information about siblings. Siblings are nodes which share
* a youngest common ancestor with the conflict victim. E.g. in case
* of a merge operation they are part of the merge source branch.
- * If not NULL, this is an array of repos_move_info elements.
+ * If not NULL, this is an array of 'struct repos_move_info *' elements.
* Each element is the head of a move chain, which starts at some
* point in history after siblings and conflict victim forked off
* their common ancestor. */
apr_array_header_t *sibling_moves;
- /* If not NULL, this is the move target abspath. */
- const char *moved_to_abspath;
+ /* List of nodes in the WC which are suitable merge targets for changes
+ * merged from any moved sibling. Array elements are 'const char *'
+ * absolute paths of working copy nodes. This array contains multiple
+ * elements only if ambiguous matches were found in the WC. */
+ apr_array_header_t *wc_siblings;
+ int preferred_sibling_idx;
};
static svn_error_t *
@@ -2608,6 +2620,168 @@ find_moves_in_natural_history(apr_array_header_t **moves,
return SVN_NO_ERROR;
}
+static svn_error_t *
+collect_sibling_move_candidates(apr_array_header_t *candidates,
+ const char *victim_abspath,
+ svn_node_kind_t victim_kind,
+ struct repos_move_info *move,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ const char *basename;
+ apr_array_header_t *abspaths;
+ int i;
+
+ basename = svn_relpath_basename(move->moved_from_repos_relpath, scratch_pool);
+ SVN_ERR(svn_wc__find_working_nodes_with_basename(&abspaths, victim_abspath,
+ basename, victim_kind,
+ ctx->wc_ctx, result_pool,
+ scratch_pool));
+ apr_array_cat(candidates, abspaths);
+
+ if (move->next)
+ {
+ apr_pool_t *iterpool = svn_pool_create(scratch_pool);
+ for (i = 0; i < move->next->nelts; i++)
+ {
+ struct repos_move_info *next_move;
+ next_move = APR_ARRAY_IDX(move->next, i, struct repos_move_info *);
+ SVN_ERR(collect_sibling_move_candidates(candidates, victim_abspath,
+ victim_kind, next_move, ctx,
+ result_pool, iterpool));
+ svn_pool_clear(iterpool);
+ }
+ svn_pool_destroy(iterpool);
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Follow each move chain starting a MOVE all the way to the end to find
+ * the possible working copy locations for VICTIM_ABSPATH which corresponds
+ * to VICTIM_REPOS_REPLATH@VICTIM_REVISION.
+ * Add each such location to the WC_MOVE_TARGETS hash table, keyed on the
+ * repos_relpath which is the corresponding move destination in the repository.
+ * This function is recursive. */
+static svn_error_t *
+follow_move_chains(apr_hash_t *wc_move_targets,
+ struct repos_move_info *move,
+ svn_client_ctx_t *ctx,
+ const char *victim_abspath,
+ svn_node_kind_t victim_node_kind,
+ const char *victim_repos_relpath,
+ svn_revnum_t victim_revision,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ apr_array_header_t *candidate_abspaths;
+
+ /* Gather candidate nodes which represent this moved_to_repos_relpath. */
+ SVN_ERR(svn_wc__guess_incoming_move_target_nodes(
+ &candidate_abspaths, ctx->wc_ctx,
+ victim_abspath, victim_node_kind,
+ move->moved_to_repos_relpath,
+ scratch_pool, scratch_pool));
+
+ if (candidate_abspaths->nelts > 0)
+ {
+ apr_array_header_t *moved_to_abspaths;
+ int i;
+ apr_pool_t *iterpool = svn_pool_create(scratch_pool);
+
+ moved_to_abspaths = apr_array_make(result_pool, 1,
+ sizeof (const char *));
+
+ for (i = 0; i < candidate_abspaths->nelts; i++)
+ {
+ const char *candidate_abspath;
+ const char *repos_root_url;
+ const char *repos_uuid;
+ const char *candidate_repos_relpath;
+ svn_revnum_t candidate_revision;
+
+ svn_pool_clear(iterpool);
+
+ candidate_abspath = APR_ARRAY_IDX(candidate_abspaths, i,
+ const char *);
+ SVN_ERR(svn_wc__node_get_origin(NULL, &candidate_revision,
+ &candidate_repos_relpath,
+ &repos_root_url,
+ &repos_uuid,
+ NULL, NULL,
+ ctx->wc_ctx,
+ candidate_abspath,
+ FALSE,
+ iterpool, iterpool));
+
+ if (candidate_revision == SVN_INVALID_REVNUM)
+ continue;
+
+ /* If the conflict victim and the move target candidate
+ * are not from the same revision we must ensure that
+ * they are related. */
+ if (candidate_revision != victim_revision)
+ {
+ svn_client__pathrev_t *yca_loc;
+ svn_error_t *err;
+
+ err = find_yca(&yca_loc, victim_repos_relpath,
+ victim_revision,
+ candidate_repos_relpath,
+ candidate_revision,
+ repos_root_url, repos_uuid,
+ NULL, ctx, iterpool, iterpool);
+ if (err)
+ {
+ if (err->apr_err == SVN_ERR_FS_NOT_FOUND)
+ {
+ svn_error_clear(err);
+ yca_loc = NULL;
+ }
+ else
+ return svn_error_trace(err);
+ }
+
+ if (yca_loc == NULL)
+ continue;
+ }
+
+ APR_ARRAY_PUSH(moved_to_abspaths, const char *) =
+ apr_pstrdup(result_pool, candidate_abspath);
+ }
+ svn_pool_destroy(iterpool);
+
+ svn_hash_sets(wc_move_targets, move->moved_to_repos_relpath,
+ moved_to_abspaths);
+ }
+
+ if (move->next)
+ {
+ int i;
+ apr_pool_t *iterpool;
+
+ /* Recurse into each of the possible move chains. */
+ iterpool = svn_pool_create(scratch_pool);
+ for (i = 0; i < move->next->nelts; i++)
+ {
+ struct repos_move_info *next_move;
+
+ svn_pool_clear(iterpool);
+
+ next_move = APR_ARRAY_IDX(move->next, i, struct repos_move_info *);
+ SVN_ERR(follow_move_chains(wc_move_targets, next_move,
+ ctx, victim_abspath, victim_node_kind,
+ victim_repos_relpath, victim_revision,
+ result_pool, iterpool));
+
+ }
+ svn_pool_destroy(iterpool);
+ }
+
+ return SVN_NO_ERROR;
+}
+
/* Implements tree_conflict_get_details_func_t. */
static svn_error_t *
conflict_tree_get_details_local_missing(svn_client_conflict_t *conflict,
@@ -2621,12 +2795,15 @@ conflict_tree_get_details_local_missing(svn_client_conflict_t *conflict,
svn_revnum_t old_rev;
svn_revnum_t new_rev;
svn_revnum_t deleted_rev;
+ svn_node_kind_t old_kind;
+ svn_node_kind_t new_kind;
const char *deleted_rev_author;
svn_node_kind_t replacing_node_kind;
const char *deleted_basename;
struct conflict_tree_local_missing_details *details;
apr_array_header_t *moves = NULL;
apr_array_header_t *sibling_moves = NULL;
+ apr_array_header_t *wc_siblings = NULL;
const char *related_repos_relpath;
svn_revnum_t related_peg_rev;
const char *repos_root_url;
@@ -2637,10 +2814,10 @@ conflict_tree_get_details_local_missing(svn_client_conflict_t *conflict,
svn_revnum_t end_rev;
SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
- &old_repos_relpath, &old_rev, NULL, conflict,
+ &old_repos_relpath, &old_rev, &old_kind, conflict,
scratch_pool, scratch_pool));
SVN_ERR(svn_client_conflict_get_incoming_new_repos_location(
- &new_repos_relpath, &new_rev, NULL, conflict,
+ &new_repos_relpath, &new_rev, &new_kind, conflict,
scratch_pool, scratch_pool));
/* Scan the conflict victim's parent's log to find a revision which
@@ -2656,9 +2833,14 @@ conflict_tree_get_details_local_missing(svn_client_conflict_t *conflict,
scratch_pool,
scratch_pool));
+ /* If the parent is not part of the repository-side tree checked out
+ * into this working copy, then bail. We do not support this case yet. */
+ if (parent_peg_rev == SVN_INVALID_REVNUM)
+ return SVN_NO_ERROR;
+
/* Pick the younger incoming node as our 'related node' which helps
* pin-pointing the deleted conflict victim in history. */
- related_repos_relpath =
+ related_repos_relpath =
(old_rev < new_rev ? new_repos_relpath : old_repos_relpath);
related_peg_rev = (old_rev < new_rev ? new_rev : old_rev);
@@ -2711,6 +2893,9 @@ conflict_tree_get_details_local_missing(svn_client_conflict_t *conflict,
{
const char *victim_abspath;
svn_node_kind_t related_node_kind;
+ apr_array_header_t *candidates;
+ int i;
+ apr_pool_t *iterpool;
/* ### The following describes all moves in terms of forward-merges,
* should do we something else for reverse-merges? */
@@ -2744,7 +2929,81 @@ conflict_tree_get_details_local_missing(svn_client_conflict_t *conflict,
if (sibling_moves == NULL)
return SVN_NO_ERROR;
- /* ## TODO: Find the missing node in the WC. */
+ /* Find the missing node in the WC. In theory, this requires tracing
+ * back history of every node in the WC to check for a YCA with the
+ * conflict victim. This operation would obviously be quite expensive.
+ *
+ * However, assuming that the victim was not moved in the merge target,
+ * we can take a short-cut: The basename of the node cannot have changed,
+ * so we can limit history tracing to nodes with a matching basename.
+ *
+ * This approach solves the conflict case where an edit to a file which
+ * was moved on one branch is cherry-picked to another branch where the
+ * corresponding file has not been moved (yet). It does not solve move
+ * vs. move conflicts, but such conflicts are not yet supported by the
+ * resolver anyway and are hard to solve without server-side support. */
+ iterpool = svn_pool_create(scratch_pool);
+ for (i = 0; i < sibling_moves->nelts; i++)
+ {
+ struct repos_move_info *move;
+ int j;
+
+ svn_pool_clear(iterpool);
+
+ move = APR_ARRAY_IDX(sibling_moves, i, struct repos_move_info *);
+ candidates = apr_array_make(iterpool, 1, sizeof(const char *));
+ SVN_ERR(collect_sibling_move_candidates(candidates, victim_abspath,
+ old_rev < new_rev
+ ? new_kind : old_kind,
+ move, ctx, iterpool,
+ iterpool));
+
+ /* Determine whether a candidate node shares a YCA with the victim. */
+ for (j = 0; j < candidates->nelts; j++)
+ {
+ const char *candidate_abspath;
+ const char *candidate_repos_relpath;
+ svn_revnum_t candidate_revision;
+ svn_error_t *err;
+
+ candidate_abspath = APR_ARRAY_IDX(candidates, j, const char *);
+ SVN_ERR(svn_wc__node_get_origin(NULL, &candidate_revision,
+ &candidate_repos_relpath,
+ NULL, NULL, NULL, NULL,
+ ctx->wc_ctx,
+ candidate_abspath,
+ FALSE,
+ iterpool, iterpool));
+ err = find_yca(&yca_loc,
+ old_rev < new_rev
+ ? new_repos_relpath : old_repos_relpath,
+ old_rev < new_rev ? new_rev : old_rev,
+ candidate_repos_relpath,
+ candidate_revision,
+ repos_root_url, repos_uuid,
+ NULL, ctx, iterpool, iterpool);
+ if (err)
+ {
+ if (err->apr_err == SVN_ERR_FS_NOT_FOUND)
+ {
+ svn_error_clear(err);
+ yca_loc = NULL;
+ }
+ else
+ return svn_error_trace(err);
+ }
+
+ if (yca_loc)
+ {
+ if (wc_siblings == NULL)
+ wc_siblings = apr_array_make(conflict->pool, 1,
+ sizeof(const char *));
+ APR_ARRAY_PUSH(wc_siblings, const char *) =
+ apr_pstrdup(conflict->pool, candidate_abspath);
+ }
+ }
+ }
+ svn_pool_destroy(iterpool);
}
details = apr_pcalloc(conflict->pool, sizeof(*details));
@@ -2753,10 +3012,85 @@ conflict_tree_get_details_local_missing(svn_client_conflict_t *conflict,
if (deleted_rev != SVN_INVALID_REVNUM)
details->deleted_repos_relpath = svn_relpath_join(parent_repos_relpath,
deleted_basename,
- conflict->pool);
+ conflict->pool);
details->moves = moves;
+ if (details->moves != NULL)
+ {
+ apr_pool_t *iterpool;
+ int i;
+
+ details->wc_move_targets = apr_hash_make(conflict->pool);
+ iterpool = svn_pool_create(scratch_pool);
+ for (i = 0; i < details->moves->nelts; i++)
+ {
+ struct repos_move_info *move;
+
+ svn_pool_clear(iterpool);
+ move = APR_ARRAY_IDX(details->moves, i, struct repos_move_info *);
+ SVN_ERR(follow_move_chains(details->wc_move_targets, move, ctx,
+ conflict->local_abspath,
+ new_kind,
+ new_repos_relpath,
+ new_rev,
+ scratch_pool, iterpool));
+ }
+ svn_pool_destroy(iterpool);
+
+ if (apr_hash_count(details->wc_move_targets) > 0)
+ {
+ apr_array_header_t *move_target_repos_relpaths;
+ const svn_sort__item_t *item;
+
+ /* Initialize to the first possible move target. Hopefully,
+ * in most cases there will only be one candidate anyway. */
+ move_target_repos_relpaths = svn_sort__hash(
+ details->wc_move_targets,
+ svn_sort_compare_items_as_paths,
+ scratch_pool);
+ item = &APR_ARRAY_IDX(move_target_repos_relpaths,
+ 0, svn_sort__item_t);
+ details->move_target_repos_relpath = item->key;
+ details->wc_move_target_idx = 0;
+ }
+ else
+ {
+ details->move_target_repos_relpath = NULL;
+ details->wc_move_target_idx = 0;
+ }
+ }
+
details->sibling_moves = sibling_moves;
-
+ details->wc_siblings = wc_siblings;
+ if (details->wc_move_targets && apr_hash_count(details->wc_move_targets) == 1)
+ {
+ apr_array_header_t *wc_abspaths;
+
+ wc_abspaths = svn_hash_gets(details->wc_move_targets,
+ details->move_target_repos_relpath);
+ if (wc_abspaths->nelts == 1)
+ {
+ svn_node_kind_t kind = old_rev < new_rev ? new_kind : old_kind;
+
+ if (kind == svn_node_file)
+ conflict->recommended_option_id =
+ svn_client_conflict_option_local_move_file_text_merge;
+ else if (kind == svn_node_dir)
+ conflict->recommended_option_id =
+ svn_client_conflict_option_local_move_dir_merge;
+ }
+ }
+ else if (details->wc_siblings && details->wc_siblings->nelts == 1)
+ {
+ svn_node_kind_t kind = old_rev < new_rev ? new_kind : old_kind;
+
+ if (kind == svn_node_file)
+ conflict->recommended_option_id =
+ svn_client_conflict_option_sibling_move_file_text_merge;
+ else if (kind == svn_node_dir)
+ conflict->recommended_option_id =
+ svn_client_conflict_option_sibling_move_dir_merge;
+ }
+
conflict->tree_conflict_local_details = details;
return SVN_NO_ERROR;
@@ -2910,7 +3244,7 @@ conflict_tree_get_description_local_missing(const char **description,
if (details->moves || details->sibling_moves)
{
struct repos_move_info *move;
-
+
*description = _("No such file or directory was found in the "
"merge target working copy.\n");
@@ -3590,7 +3924,7 @@ describe_incoming_deletion_upon_update(
struct repos_move_info *move;
move = APR_ARRAY_IDX(details->moves, 0, struct repos_move_info *);
- description =
+ description =
apr_psprintf(result_pool,
_("Item updated from r%ld to r%ld was moved "
"to '^/%s' by %s in r%ld."), old_rev, new_rev,
@@ -3728,7 +4062,7 @@ describe_incoming_deletion_upon_switch(
result_pool,
scratch_pool);
}
- return description;
+ return description;
}
else if (victim_node_kind == svn_node_file ||
victim_node_kind == svn_node_symlink)
@@ -3881,7 +4215,7 @@ describe_incoming_deletion_upon_switch(
{
struct repos_move_info *move;
const char *description;
-
+
move = APR_ARRAY_IDX(details->moves, 0, struct repos_move_info *);
description =
apr_psprintf(result_pool,
@@ -4512,7 +4846,7 @@ conflict_tree_get_description_incoming_delete(
action = describe_incoming_reverse_addition_upon_switch(
details, victim_node_kind, old_repos_relpath, old_rev,
new_repos_relpath, new_rev, result_pool);
-
+
}
}
else if (conflict_operation == svn_wc_operation_merge)
@@ -4665,133 +4999,6 @@ get_incoming_delete_details_for_reverse_addition(
return SVN_NO_ERROR;
}
-/* Follow each move chain starting a MOVE all the way to the end to find
- * the possible working copy locations for VICTIM_ABSPATH which corresponds
- * to VICTIM_REPOS_REPLATH@VICTIM_REVISION.
- * Add each such location to the WC_MOVE_TARGETS hash table, keyed on the
- * repos_relpath which is the corresponding move destination in the repository.
- * This function is recursive. */
-static svn_error_t *
-follow_move_chains(apr_hash_t *wc_move_targets,
- struct repos_move_info *move,
- svn_client_ctx_t *ctx,
- const char *victim_abspath,
- svn_node_kind_t victim_node_kind,
- const char *victim_repos_relpath,
- svn_revnum_t victim_revision,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
-{
- /* If this is the end of a move chain, look for matching paths in
- * the working copy and add them to our collection if found. */
- if (move->next == NULL)
- {
- apr_array_header_t *candidate_abspaths;
-
- /* Gather candidate nodes which represent this moved_to_repos_relpath. */
- SVN_ERR(svn_wc__guess_incoming_move_target_nodes(
- &candidate_abspaths, ctx->wc_ctx,
- victim_abspath, victim_node_kind,
- move->moved_to_repos_relpath,
- scratch_pool, scratch_pool));
- if (candidate_abspaths->nelts > 0)
- {
- apr_array_header_t *moved_to_abspaths;
- int i;
- apr_pool_t *iterpool = svn_pool_create(scratch_pool);
-
- moved_to_abspaths = apr_array_make(result_pool, 1,
- sizeof (const char *));
-
- for (i = 0; i < candidate_abspaths->nelts; i++)
- {
- const char *candidate_abspath;
- const char *repos_root_url;
- const char *repos_uuid;
- const char *candidate_repos_relpath;
- svn_revnum_t candidate_revision;
-
- svn_pool_clear(iterpool);
-
- candidate_abspath = APR_ARRAY_IDX(candidate_abspaths, i,
- const char *);
- SVN_ERR(svn_wc__node_get_origin(NULL, &candidate_revision,
- &candidate_repos_relpath,
- &repos_root_url,
- &repos_uuid,
- NULL, NULL,
- ctx->wc_ctx,
- candidate_abspath,
- FALSE,
- iterpool, iterpool));
-
- if (candidate_revision == SVN_INVALID_REVNUM)
- continue;
-
- /* If the conflict victim and the move target candidate
- * are not from the same revision we must ensure that
- * they are related. */
- if (candidate_revision != victim_revision)
- {
- svn_client__pathrev_t *yca_loc;
- svn_error_t *err;
-
- err = find_yca(&yca_loc, victim_repos_relpath,
- victim_revision,
- candidate_repos_relpath,
- candidate_revision,
- repos_root_url, repos_uuid,
- NULL, ctx, iterpool, iterpool);
- if (err)
- {
- if (err->apr_err == SVN_ERR_FS_NOT_FOUND)
- {
- svn_error_clear(err);
- yca_loc = NULL;
- }
- else
- return svn_error_trace(err);
- }
-
- if (yca_loc == NULL)
- continue;
- }
-
- APR_ARRAY_PUSH(moved_to_abspaths, const char *) =
- apr_pstrdup(result_pool, candidate_abspath);
- }
- svn_pool_destroy(iterpool);
-
- svn_hash_sets(wc_move_targets, move->moved_to_repos_relpath,
- moved_to_abspaths);
- }
- }
- else
- {
- int i;
- apr_pool_t *iterpool;
-
- /* Recurse into each of the possible move chains. */
- iterpool = svn_pool_create(scratch_pool);
- for (i = 0; i < move->next->nelts; i++)
- {
- struct repos_move_info *next_move;
-
- svn_pool_clear(iterpool);
-
- next_move = APR_ARRAY_IDX(move->next, i, struct repos_move_info *);
- SVN_ERR(follow_move_chains(wc_move_targets, next_move,
- ctx, victim_abspath, victim_node_kind,
- victim_repos_relpath, victim_revision,
- result_pool, iterpool));
-
- }
- svn_pool_destroy(iterpool);
- }
-
- return SVN_NO_ERROR;
-}
-
static svn_error_t *
init_wc_move_targets(struct conflict_tree_incoming_delete_details *details,
svn_client_conflict_t *conflict,
@@ -4803,11 +5010,9 @@ init_wc_move_targets(struct conflict_tree_incoming_delete_details *details,
svn_node_kind_t victim_node_kind;
const char *incoming_new_repos_relpath;
svn_revnum_t incoming_new_pegrev;
- svn_wc_operation_t operation;
victim_abspath = svn_client_conflict_get_local_abspath(conflict);
victim_node_kind = svn_client_conflict_tree_get_victim_node_kind(conflict);
- operation = svn_client_conflict_get_operation(conflict);
/* ### Should we get the old location in case of reverse-merges? */
SVN_ERR(svn_client_conflict_get_incoming_new_repos_location(
&incoming_new_repos_relpath, &incoming_new_pegrev,
@@ -4833,11 +5038,8 @@ init_wc_move_targets(struct conflict_tree_incoming_delete_details *details,
get_moved_to_repos_relpath(details, scratch_pool);
details->wc_move_target_idx = 0;
- /* If only one move target exists after an update or switch,
- * recommend a resolution option which follows the incoming move. */
- if (apr_hash_count(details->wc_move_targets) == 1 &&
- (operation == svn_wc_operation_update ||
- operation == svn_wc_operation_switch))
+ /* If only one move target exists recommend a resolution option. */
+ if (apr_hash_count(details->wc_move_targets) == 1)
{
apr_array_header_t *wc_abspaths;
@@ -4850,7 +5052,10 @@ init_wc_move_targets(struct conflict_tree_incoming_delete_details *details,
/* Only one of these will be present for any given conflict. */
svn_client_conflict_option_incoming_move_file_text_merge,
svn_client_conflict_option_incoming_move_dir_merge,
- svn_client_conflict_option_local_move_file_text_merge
+ svn_client_conflict_option_local_move_file_text_merge,
+ svn_client_conflict_option_local_move_dir_merge,
+ svn_client_conflict_option_sibling_move_file_text_merge,
+ svn_client_conflict_option_sibling_move_dir_merge,
};
apr_array_header_t *options;
@@ -4907,6 +5112,7 @@ conflict_tree_get_details_incoming_delete(svn_client_conflict_t *conflict,
const char *parent_repos_relpath;
svn_revnum_t parent_peg_rev;
svn_revnum_t deleted_rev;
+ svn_revnum_t end_rev;
const char *deleted_rev_author;
svn_node_kind_t replacing_node_kind;
apr_array_header_t *moves;
@@ -4939,12 +5145,15 @@ conflict_tree_get_details_incoming_delete(svn_client_conflict_t *conflict,
related_peg_rev = SVN_INVALID_REVNUM;
}
+ end_rev = (new_kind == svn_node_none ? 0 : old_rev);
+ if (end_rev >= parent_peg_rev)
+ end_rev = (parent_peg_rev > 0 ? parent_peg_rev - 1 : 0);
+
SVN_ERR(find_revision_for_suspected_deletion(
&deleted_rev, &deleted_rev_author, &replacing_node_kind,
&moves, conflict,
svn_dirent_basename(conflict->local_abspath, scratch_pool),
- parent_repos_relpath, parent_peg_rev,
- new_kind == svn_node_none ? 0 : old_rev,
+ parent_repos_relpath, parent_peg_rev, end_rev,
related_repos_relpath, related_peg_rev,
ctx, conflict->pool, scratch_pool));
if (deleted_rev == SVN_INVALID_REVNUM)
@@ -5077,7 +5286,7 @@ conflict_tree_get_details_incoming_add(svn_client_conflict_t *conflict,
const char *repos_root_url;
svn_revnum_t old_rev;
svn_revnum_t new_rev;
- struct conflict_tree_incoming_add_details *details;
+ struct conflict_tree_incoming_add_details *details = NULL;
svn_wc_operation_t operation;
SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
@@ -5170,7 +5379,8 @@ conflict_tree_get_details_incoming_add(svn_client_conflict_t *conflict,
}
}
}
- else if (operation == svn_wc_operation_merge)
+ else if (operation == svn_wc_operation_merge &&
+ strcmp(old_repos_relpath, new_repos_relpath) == 0)
{
if (old_rev < new_rev)
{
@@ -5221,7 +5431,7 @@ conflict_tree_get_details_incoming_add(svn_client_conflict_t *conflict,
details->deleted_rev = SVN_INVALID_REVNUM;
details->deleted_rev_author = NULL;
}
- else
+ else if (old_rev > new_rev)
{
/* The merge operation was a reverse-merge.
* This addition is in fact a deletion, applied in reverse,
@@ -5261,10 +5471,6 @@ conflict_tree_get_details_incoming_add(svn_client_conflict_t *conflict,
details->moves = moves;
}
}
- else
- {
- details = NULL;
- }
conflict->tree_conflict_incoming_details = details;
@@ -5727,7 +5933,10 @@ find_modified_rev(void *baton,
if (log_item->copyfrom_path)
b->repos_relpath = apr_pstrdup(b->scratch_pool,
- log_item->copyfrom_path);
+ /* ### remove leading slash */
+ svn_relpath_canonicalize(
+ log_item->copyfrom_path,
+ iterpool));
}
else if (b->node_kind == svn_node_dir &&
svn_relpath_skip_ancestor(b->repos_relpath, path) != NULL)
@@ -5931,6 +6140,9 @@ describe_incoming_edit_list_modified_revs(apr_array_header_t *edits,
const char *s = "";
int i;
+ if (edits->nelts == 0)
+ return _(" (no revisions found)");
+
if (edits->nelts <= max_revs_to_display)
num_revs_to_skip = 0;
else
@@ -5967,15 +6179,18 @@ describe_incoming_edit_list_modified_revs(apr_array_header_t *edits,
{
if (i == edits->nelts - (max_revs_to_display / 2))
s = apr_psprintf(result_pool,
- _("%s\n [%d revisions omitted for "
- "brevity],\n"),
+ Q_("%s\n [%d revision omitted for "
+ "brevity],\n",
+ "%s\n [%d revisions omitted for "
+ "brevity],\n",
+ num_revs_to_skip),
s, num_revs_to_skip);
s = apr_psprintf(result_pool, _("%s r%ld by %s%s"), s,
details->rev, details->author,
i < edits->nelts - 1 ? "," : "");
}
- }
+ }
else
s = apr_psprintf(result_pool, _("%s r%ld by %s%s"), s,
details->rev, details->author,
@@ -6124,7 +6339,7 @@ conflict_tree_get_description_incoming_edit(
"during reverse-merge of\n"
"'^/%s:%ld-%ld'"),
new_repos_relpath, new_rev + 1, old_rev);
-
+
else
action = apr_psprintf(scratch_pool,
_("Changes from the following revisions "
@@ -6159,7 +6374,7 @@ svn_client_conflict_tree_get_description(
SVN_ERR(conflict->tree_conflict_get_local_description_func(
local_change_description,
conflict, ctx, result_pool, scratch_pool));
-
+
return SVN_NO_ERROR;
}
@@ -6683,8 +6898,10 @@ resolve_merge_incoming_added_file_text_update(
apr_hash_t *working_props;
apr_array_header_t *propdiffs;
svn_error_t *err;
+ svn_wc_conflict_reason_t local_change;
local_abspath = svn_client_conflict_get_local_abspath(conflict);
+ local_change = svn_client_conflict_get_local_change(conflict);
/* Set up tempory storage for the working version of file. */
SVN_ERR(svn_wc__get_tmpdir(&wc_tmpdir, ctx->wc_ctx, local_abspath,
@@ -6695,20 +6912,31 @@ resolve_merge_incoming_added_file_text_update(
svn_io_file_del_none,
scratch_pool, scratch_pool));
- /* Copy the detranslated working file to temporary storage. */
- SVN_ERR(svn_wc__translated_stream(&working_file_stream, ctx->wc_ctx,
- local_abspath, local_abspath,
- SVN_WC_TRANSLATE_TO_NF,
- scratch_pool, scratch_pool));
+ if (local_change == svn_wc_conflict_reason_unversioned)
+ {
+ /* Copy the unversioned file to temporary storage. */
+ SVN_ERR(svn_stream_open_readonly(&working_file_stream, local_abspath,
+ scratch_pool, scratch_pool));
+ /* Unversioned files have no properties. */
+ working_props = apr_hash_make(scratch_pool);
+ }
+ else
+ {
+ /* Copy the detranslated working file to temporary storage. */
+ SVN_ERR(svn_wc__translated_stream(&working_file_stream, ctx->wc_ctx,
+ local_abspath, local_abspath,
+ SVN_WC_TRANSLATE_TO_NF,
+ scratch_pool, scratch_pool));
+ /* Get a copy of the working file's properties. */
+ SVN_ERR(svn_wc_prop_list2(&working_props, ctx->wc_ctx, local_abspath,
+ scratch_pool, scratch_pool));
+ filter_props(working_props, scratch_pool);
+ }
+
SVN_ERR(svn_stream_copy3(working_file_stream, working_file_tmp_stream,
ctx->cancel_func, ctx->cancel_baton,
scratch_pool));
- /* Get a copy of the working file's properties. */
- SVN_ERR(svn_wc_prop_list2(&working_props, ctx->wc_ctx, local_abspath,
- scratch_pool, scratch_pool));
- filter_props(working_props, scratch_pool);
-
/* Create an empty file as fake "merge-base" for the two added files.
* The files are not ancestrally related so this is the best we can do. */
SVN_ERR(svn_io_open_unique_file3(NULL, &empty_file_abspath, NULL,
@@ -6727,8 +6955,9 @@ resolve_merge_incoming_added_file_text_update(
/* Revert the path in order to restore the repository's line of
* history, which is part of the BASE tree. This revert operation
* is why are being careful about not losing the temporary copy. */
- err = svn_wc_revert5(ctx->wc_ctx, local_abspath, svn_depth_empty,
+ err = svn_wc_revert6(ctx->wc_ctx, local_abspath, svn_depth_empty,
FALSE, NULL, TRUE, FALSE,
+ TRUE /*added_keep_local*/,
NULL, NULL, /* no cancellation */
ctx->notify_func2, ctx->notify_baton2,
scratch_pool);
@@ -6760,7 +6989,7 @@ unlock_wc:
scratch_pool));
svn_io_sleep_for_timestamps(local_abspath, scratch_pool);
SVN_ERR(err);
-
+
if (ctx->notify_func2)
{
svn_wc_notify_t *notify;
@@ -7545,7 +7774,6 @@ merge_newly_added_dir(const char *added_repos_relpath,
diff_processor = processor;
if (reverse_merge)
diff_processor = svn_diff__tree_processor_reverse_create(diff_processor,
- NULL,
scratch_pool);
/* Filter the first path component using a filter processor, until we fixed
@@ -7707,20 +7935,47 @@ resolve_update_incoming_added_dir_merge(svn_client_conflict_option_t *option,
const char *local_abspath;
const char *lock_abspath;
svn_error_t *err;
+ svn_wc_conflict_reason_t local_change;
local_abspath = svn_client_conflict_get_local_abspath(conflict);
+ local_change = svn_client_conflict_get_local_change(conflict);
- SVN_ERR(svn_wc__acquire_write_lock_for_resolve(
- &lock_abspath, ctx->wc_ctx, local_abspath,
- scratch_pool, scratch_pool));
+ if (local_change == svn_wc_conflict_reason_unversioned)
+ {
+ char *parent_abspath = svn_dirent_dirname(local_abspath, scratch_pool);
+ SVN_ERR(svn_wc__acquire_write_lock_for_resolve(
+ &lock_abspath, ctx->wc_ctx, parent_abspath,
+ scratch_pool, scratch_pool));
- err = svn_wc__conflict_tree_update_local_add(ctx->wc_ctx,
- local_abspath,
- ctx->cancel_func,
- ctx->cancel_baton,
- ctx->notify_func2,
- ctx->notify_baton2,
- scratch_pool);
+ /* The update/switch operation has added the incoming versioned
+ * directory as a deleted op-depth layer. We can revert this layer
+ * to make the incoming tree appear in the working copy.
+ * This meta-data-only revert operation effecively merges the
+ * versioned and unversioned trees but leaves all unversioned files as
+ * they were. This is the best we can do; 3-way merging of unversioned
+ * files with files from the repository is impossible because there is
+ * no known merge base. No unversioned data will be lost, and any
+ * differences to files in the repository will show up in 'svn diff'. */
+ err = svn_wc_revert6(ctx->wc_ctx, local_abspath, svn_depth_infinity,
+ FALSE, NULL, TRUE, TRUE /* metadata_only */,
+ TRUE /*added_keep_local*/,
+ NULL, NULL, /* no cancellation */
+ ctx->notify_func2, ctx->notify_baton2,
+ scratch_pool);
+ }
+ else
+ {
+ SVN_ERR(svn_wc__acquire_write_lock_for_resolve(
+ &lock_abspath, ctx->wc_ctx, local_abspath,
+ scratch_pool, scratch_pool));
+ err = svn_wc__conflict_tree_update_local_add(ctx->wc_ctx,
+ local_abspath,
+ ctx->cancel_func,
+ ctx->cancel_baton,
+ ctx->notify_func2,
+ ctx->notify_baton2,
+ scratch_pool);
+ }
err = svn_error_compose_create(err, svn_wc__release_write_lock(ctx->wc_ctx,
lock_abspath,
@@ -7730,35 +7985,6 @@ resolve_update_incoming_added_dir_merge(svn_client_conflict_option_t *option,
return SVN_NO_ERROR;
}
-/* A baton for notification_adjust_func(). */
-struct notification_adjust_baton
-{
- svn_wc_notify_func2_t inner_func;
- void *inner_baton;
- const char *checkout_abspath;
- const char *final_abspath;
-};
-
-/* A svn_wc_notify_func2_t function that wraps BATON->inner_func (whose
- * baton is BATON->inner_baton) and adjusts the notification paths that
- * start with BATON->checkout_abspath to start instead with
- * BATON->final_abspath. */
-static void
-notification_adjust_func(void *baton,
- const svn_wc_notify_t *notify,
- apr_pool_t *pool)
-{
- struct notification_adjust_baton *nb = baton;
- svn_wc_notify_t *inner_notify = svn_wc_dup_notify(notify, pool);
- const char *relpath;
-
- relpath = svn_dirent_skip_ancestor(nb->checkout_abspath, notify->path);
- inner_notify->path = svn_dirent_join(nb->final_abspath, relpath, pool);
-
- if (nb->inner_func)
- nb->inner_func(nb->inner_baton, inner_notify, pool);
-}
-
/* Resolve a dir/dir "incoming add vs local obstruction" tree conflict by
* replacing the local directory with the incoming directory.
* If MERGE_DIRS is set, also merge the directories after replacing. */
@@ -7777,14 +8003,8 @@ merge_incoming_added_dir_replace(svn_client_conflict_option_t *option,
svn_revnum_t incoming_new_pegrev;
const char *local_abspath;
const char *lock_abspath;
- const char *tmpdir_abspath, *tmp_abspath;
svn_error_t *err;
- svn_revnum_t copy_src_revnum;
- svn_opt_revision_t copy_src_peg_revision;
svn_boolean_t timestamp_sleep;
- svn_wc_notify_func2_t old_notify_func2 = ctx->notify_func2;
- void *old_notify_baton2 = ctx->notify_baton2;
- struct notification_adjust_baton nb;
local_abspath = svn_client_conflict_get_local_abspath(conflict);
@@ -7805,46 +8025,6 @@ merge_incoming_added_dir_replace(svn_client_conflict_option_t *option,
if (corrected_url)
url = corrected_url;
-
- /* Find a temporary location in which to check out the copy source. */
- SVN_ERR(svn_wc__get_tmpdir(&tmpdir_abspath, ctx->wc_ctx, local_abspath,
- scratch_pool, scratch_pool));
-
- SVN_ERR(svn_io_open_unique_file3(NULL, &tmp_abspath, tmpdir_abspath,
- svn_io_file_del_on_close,
- scratch_pool, scratch_pool));
-
- /* Make a new checkout of the requested source. While doing so,
- * resolve copy_src_revnum to an actual revision number in case it
- * was until now 'invalid' meaning 'head'. Ask this function not to
- * sleep for timestamps, by passing a sleep_needed output param.
- * Send notifications for all nodes except the root node, and adjust
- * them to refer to the destination rather than this temporary path. */
-
- nb.inner_func = ctx->notify_func2;
- nb.inner_baton = ctx->notify_baton2;
- nb.checkout_abspath = tmp_abspath;
- nb.final_abspath = local_abspath;
- ctx->notify_func2 = notification_adjust_func;
- ctx->notify_baton2 = &nb;
-
- copy_src_peg_revision.kind = svn_opt_revision_number;
- copy_src_peg_revision.value.number = incoming_new_pegrev;
-
- err = svn_client__checkout_internal(&copy_src_revnum, &timestamp_sleep,
- url, tmp_abspath,
- &copy_src_peg_revision,
- &copy_src_peg_revision,
- svn_depth_infinity,
- TRUE, /* we want to ignore externals */
- FALSE, /* we don't allow obstructions */
- ra_session, ctx, scratch_pool);
-
- ctx->notify_func2 = old_notify_func2;
- ctx->notify_baton2 = old_notify_baton2;
-
- SVN_ERR(err);
-
/* ### The following WC modifications should be atomic. */
SVN_ERR(svn_wc__acquire_write_lock_for_resolve(&lock_abspath, ctx->wc_ctx,
@@ -7861,31 +8041,11 @@ merge_incoming_added_dir_replace(svn_client_conflict_option_t *option,
if (err)
goto unlock_wc;
- /* Schedule dst_path for addition in parent, with copy history.
- Don't send any notification here.
- Then remove the temporary checkout's .svn dir in preparation for
- moving the rest of it into the final destination. */
- err = svn_wc_copy3(ctx->wc_ctx, tmp_abspath, local_abspath,
- TRUE /* metadata_only */,
- NULL, NULL, /* don't allow user to cancel here */
- NULL, NULL, scratch_pool);
- if (err)
- goto unlock_wc;
-
- err = svn_wc__acquire_write_lock(NULL, ctx->wc_ctx, tmp_abspath,
- FALSE, scratch_pool, scratch_pool);
- if (err)
- goto unlock_wc;
- err = svn_wc_remove_from_revision_control2(ctx->wc_ctx,
- tmp_abspath,
- FALSE, FALSE,
- NULL, NULL, /* don't cancel */
- scratch_pool);
- if (err)
- goto unlock_wc;
-
- /* Move the temporary disk tree into place. */
- err = svn_io_file_rename2(tmp_abspath, local_abspath, FALSE, scratch_pool);
+ err = svn_client__repos_to_wc_copy_by_editor(&timestamp_sleep,
+ svn_node_dir,
+ url, incoming_new_pegrev,
+ local_abspath,
+ ra_session, ctx, scratch_pool);
if (err)
goto unlock_wc;
@@ -8012,6 +8172,112 @@ resolve_merge_incoming_added_dir_replace_and_merge(
scratch_pool));
}
+/* Ensure the conflict victim is a copy of itself from before it was deleted.
+ * Update and switch are supposed to set this up when flagging the conflict. */
+static svn_error_t *
+ensure_local_edit_vs_incoming_deletion_copied_state(
+ struct conflict_tree_incoming_delete_details *details,
+ svn_wc_operation_t operation,
+ const char *wcroot_abspath,
+ svn_client_conflict_t *conflict,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+
+ svn_boolean_t is_copy;
+ svn_revnum_t copyfrom_rev;
+ const char *copyfrom_repos_relpath;
+
+ SVN_ERR_ASSERT(operation == svn_wc_operation_update ||
+ operation == svn_wc_operation_switch);
+
+ SVN_ERR(svn_wc__node_get_origin(&is_copy, &copyfrom_rev,
+ &copyfrom_repos_relpath,
+ NULL, NULL, NULL, NULL,
+ ctx->wc_ctx, conflict->local_abspath,
+ FALSE, scratch_pool, scratch_pool));
+ if (!is_copy)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Cannot resolve tree conflict on '%s' "
+ "(expected a copied item, but the item "
+ "is not a copy)"),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(
+ wcroot_abspath,
+ conflict->local_abspath),
+ scratch_pool));
+ else if (details->deleted_rev != SVN_INVALID_REVNUM &&
+ copyfrom_rev >= details->deleted_rev)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Cannot resolve tree conflict on '%s' "
+ "(expected an item copied from a revision "
+ "smaller than r%ld, but the item was "
+ "copied from r%ld)"),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(
+ wcroot_abspath, conflict->local_abspath),
+ scratch_pool),
+ details->deleted_rev, copyfrom_rev);
+ else if (details->added_rev != SVN_INVALID_REVNUM &&
+ copyfrom_rev < details->added_rev)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Cannot resolve tree conflict on '%s' "
+ "(expected an item copied from a revision "
+ "larger than r%ld, but the item was "
+ "copied from r%ld)"),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(
+ wcroot_abspath, conflict->local_abspath),
+ scratch_pool),
+ details->added_rev, copyfrom_rev);
+ else if (operation == svn_wc_operation_update)
+ {
+ const char *old_repos_relpath;
+
+ SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
+ &old_repos_relpath, NULL, NULL, conflict,
+ scratch_pool, scratch_pool));
+ if (strcmp(copyfrom_repos_relpath, details->repos_relpath) != 0 &&
+ strcmp(copyfrom_repos_relpath, old_repos_relpath) != 0)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Cannot resolve tree conflict on '%s' "
+ "(expected an item copied from '^/%s' "
+ "or from '^/%s' but the item was "
+ "copied from '^/%s@%ld')"),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(
+ wcroot_abspath, conflict->local_abspath),
+ scratch_pool),
+ details->repos_relpath,
+ old_repos_relpath,
+ copyfrom_repos_relpath, copyfrom_rev);
+ }
+ else if (operation == svn_wc_operation_switch)
+ {
+ const char *old_repos_relpath;
+
+ SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
+ &old_repos_relpath, NULL, NULL, conflict,
+ scratch_pool, scratch_pool));
+
+ if (strcmp(copyfrom_repos_relpath, old_repos_relpath) != 0)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Cannot resolve tree conflict on '%s' "
+ "(expected an item copied from '^/%s', "
+ "but the item was copied from "
+ "'^/%s@%ld')"),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(
+ wcroot_abspath,
+ conflict->local_abspath),
+ scratch_pool),
+ old_repos_relpath,
+ copyfrom_repos_relpath, copyfrom_rev);
+ }
+
+ return SVN_NO_ERROR;
+}
+
/* Verify the local working copy state matches what we expect when an
* incoming deletion tree conflict exists.
* We assume update/merge/switch operations leave the working copy in a
@@ -8022,26 +8288,25 @@ resolve_merge_incoming_added_dir_replace_and_merge(
static svn_error_t *
verify_local_state_for_incoming_delete(svn_client_conflict_t *conflict,
svn_client_conflict_option_t *option,
- svn_client_ctx_t *ctx,
+ svn_client_ctx_t *ctx,
apr_pool_t *scratch_pool)
{
const char *local_abspath;
const char *wcroot_abspath;
svn_wc_operation_t operation;
+ svn_wc_conflict_reason_t local_change;
local_abspath = svn_client_conflict_get_local_abspath(conflict);
SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, ctx->wc_ctx,
local_abspath, scratch_pool,
scratch_pool));
operation = svn_client_conflict_get_operation(conflict);
+ local_change = svn_client_conflict_get_local_change(conflict);
if (operation == svn_wc_operation_update ||
operation == svn_wc_operation_switch)
{
struct conflict_tree_incoming_delete_details *details;
- svn_boolean_t is_copy;
- svn_revnum_t copyfrom_rev;
- const char *copyfrom_repos_relpath;
details = conflict->tree_conflict_incoming_details;
if (details == NULL)
@@ -8053,26 +8318,8 @@ verify_local_state_for_incoming_delete(svn_client_conflict_t *conflict,
svn_dirent_local_style(local_abspath,
scratch_pool));
- /* Ensure that the item is a copy of itself from before it was deleted.
- * Update and switch are supposed to set this up when flagging the
- * conflict. */
- SVN_ERR(svn_wc__node_get_origin(&is_copy, &copyfrom_rev,
- &copyfrom_repos_relpath,
- NULL, NULL, NULL, NULL,
- ctx->wc_ctx, local_abspath, FALSE,
- scratch_pool, scratch_pool));
- if (!is_copy)
- return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
- _("Cannot resolve tree conflict on '%s' "
- "(expected a copied item, but the item "
- "is not a copy)"),
- svn_dirent_local_style(
- svn_dirent_skip_ancestor(
- wcroot_abspath,
- conflict->local_abspath),
- scratch_pool));
- else if (details->deleted_rev == SVN_INVALID_REVNUM &&
- details->added_rev == SVN_INVALID_REVNUM)
+ if (details->deleted_rev == SVN_INVALID_REVNUM &&
+ details->added_rev == SVN_INVALID_REVNUM)
return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
_("Could not find the revision in which '%s' "
"was deleted from the repository"),
@@ -8081,75 +8328,11 @@ verify_local_state_for_incoming_delete(svn_client_conflict_t *conflict,
wcroot_abspath,
conflict->local_abspath),
scratch_pool));
- else if (details->deleted_rev != SVN_INVALID_REVNUM &&
- copyfrom_rev >= details->deleted_rev)
- return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
- _("Cannot resolve tree conflict on '%s' "
- "(expected an item copied from a revision "
- "smaller than r%ld, but the item was "
- "copied from r%ld)"),
- svn_dirent_local_style(
- svn_dirent_skip_ancestor(
- wcroot_abspath, conflict->local_abspath),
- scratch_pool),
- details->deleted_rev, copyfrom_rev);
- else if (details->added_rev != SVN_INVALID_REVNUM &&
- copyfrom_rev < details->added_rev)
- return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
- _("Cannot resolve tree conflict on '%s' "
- "(expected an item copied from a revision "
- "larger than r%ld, but the item was "
- "copied from r%ld)"),
- svn_dirent_local_style(
- svn_dirent_skip_ancestor(
- wcroot_abspath, conflict->local_abspath),
- scratch_pool),
- details->added_rev, copyfrom_rev);
- else if (operation == svn_wc_operation_update)
- {
- const char *old_repos_relpath;
-
- SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
- &old_repos_relpath, NULL, NULL, conflict,
- scratch_pool, scratch_pool));
- if (strcmp(copyfrom_repos_relpath, details->repos_relpath) != 0 &&
- strcmp(copyfrom_repos_relpath, old_repos_relpath) != 0)
- return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
- _("Cannot resolve tree conflict on '%s' "
- "(expected an item copied from '^/%s' "
- "or from '^/%s' but the item was "
- "copied from '^/%s@%ld')"),
- svn_dirent_local_style(
- svn_dirent_skip_ancestor(
- wcroot_abspath, conflict->local_abspath),
- scratch_pool),
- details->repos_relpath,
- old_repos_relpath,
- copyfrom_repos_relpath, copyfrom_rev);
- }
- else if (operation == svn_wc_operation_switch)
- {
- const char *old_repos_relpath;
-
- SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
- &old_repos_relpath, NULL, NULL, conflict,
- scratch_pool, scratch_pool));
-
- if (strcmp(copyfrom_repos_relpath, old_repos_relpath) != 0)
- return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
- _("Cannot resolve tree conflict on '%s' "
- "(expected an item copied from '^/%s', "
- "but the item was copied from "
- "'^/%s@%ld')"),
- svn_dirent_local_style(
- svn_dirent_skip_ancestor(
- wcroot_abspath,
- conflict->local_abspath),
- scratch_pool),
- old_repos_relpath,
- copyfrom_repos_relpath, copyfrom_rev);
- }
+ if (local_change == svn_wc_conflict_reason_edited)
+ SVN_ERR(ensure_local_edit_vs_incoming_deletion_copied_state(
+ details, operation, wcroot_abspath, conflict, ctx,
+ scratch_pool));
}
else if (operation == svn_wc_operation_merge)
{
@@ -8299,7 +8482,9 @@ resolve_incoming_move_file_text_merge(svn_client_conflict_option_t *option,
apr_pool_t *scratch_pool)
{
svn_client_conflict_option_id_t option_id;
- const char *local_abspath;
+ const char *victim_abspath;
+ const char *merge_source_abspath;
+ svn_wc_conflict_reason_t local_change;
svn_wc_operation_t operation;
const char *lock_abspath;
svn_error_t *err;
@@ -8325,7 +8510,8 @@ resolve_incoming_move_file_text_merge(svn_client_conflict_option_t *option,
const char *moved_to_abspath;
const char *incoming_abspath = NULL;
- local_abspath = svn_client_conflict_get_local_abspath(conflict);
+ victim_abspath = svn_client_conflict_get_local_abspath(conflict);
+ local_change = svn_client_conflict_get_local_change(conflict);
operation = svn_client_conflict_get_operation(conflict);
details = conflict->tree_conflict_incoming_details;
if (details == NULL || details->moves == NULL)
@@ -8333,21 +8519,21 @@ resolve_incoming_move_file_text_merge(svn_client_conflict_option_t *option,
_("The specified conflict resolution option "
"requires details for tree conflict at '%s' "
"to be fetched from the repository first."),
- svn_dirent_local_style(local_abspath,
+ svn_dirent_local_style(victim_abspath,
scratch_pool));
if (operation == svn_wc_operation_none)
return svn_error_createf(SVN_ERR_WC_CORRUPT, NULL,
_("Invalid operation code '%d' recorded for "
"conflict at '%s'"), operation,
- svn_dirent_local_style(local_abspath,
+ svn_dirent_local_style(victim_abspath,
scratch_pool));
option_id = svn_client_conflict_option_get_id(option);
SVN_ERR_ASSERT(option_id ==
svn_client_conflict_option_incoming_move_file_text_merge ||
option_id ==
- svn_client_conflict_option_incoming_move_dir_merge);
-
+ svn_client_conflict_option_both_moved_file_move_merge);
+
SVN_ERR(svn_client_conflict_get_repos_info(&repos_root_url, NULL,
conflict, scratch_pool,
scratch_pool));
@@ -8361,7 +8547,7 @@ resolve_incoming_move_file_text_merge(svn_client_conflict_option_t *option,
scratch_pool));
/* Set up temporary storage for the common ancestor version of the file. */
- SVN_ERR(svn_wc__get_tmpdir(&wc_tmpdir, ctx->wc_ctx, local_abspath,
+ SVN_ERR(svn_wc__get_tmpdir(&wc_tmpdir, ctx->wc_ctx, victim_abspath,
scratch_pool, scratch_pool));
SVN_ERR(svn_stream_open_unique(&ancestor_stream,
&ancestor_abspath, wc_tmpdir,
@@ -8391,21 +8577,41 @@ resolve_incoming_move_file_text_merge(svn_client_conflict_option_t *option,
details->wc_move_target_idx,
const char *);
+ if (local_change == svn_wc_conflict_reason_missing)
+ {
+ /* This is an incoming move vs local move conflict.
+ * Merge from the local move's target location to the
+ * incoming move's target location. */
+ struct conflict_tree_local_missing_details *local_details;
+ apr_array_header_t *moves;
+
+ local_details = conflict->tree_conflict_local_details;
+ moves = svn_hash_gets(local_details->wc_move_targets,
+ local_details->move_target_repos_relpath);
+ merge_source_abspath =
+ APR_ARRAY_IDX(moves, local_details->wc_move_target_idx, const char *);
+ }
+ else
+ merge_source_abspath = victim_abspath;
+
/* ### The following WC modifications should be atomic. */
SVN_ERR(svn_wc__acquire_write_lock_for_resolve(
&lock_abspath, ctx->wc_ctx,
- svn_dirent_get_longest_ancestor(local_abspath,
+ svn_dirent_get_longest_ancestor(victim_abspath,
moved_to_abspath,
scratch_pool),
scratch_pool, scratch_pool));
- err = verify_local_state_for_incoming_delete(conflict, option, ctx,
- scratch_pool);
- if (err)
- goto unlock_wc;
+ if (local_change != svn_wc_conflict_reason_missing)
+ {
+ err = verify_local_state_for_incoming_delete(conflict, option, ctx,
+ scratch_pool);
+ if (err)
+ goto unlock_wc;
+ }
/* Get a copy of the conflict victim's properties. */
- err = svn_wc_prop_list2(&victim_props, ctx->wc_ctx, local_abspath,
+ err = svn_wc_prop_list2(&victim_props, ctx->wc_ctx, merge_source_abspath,
scratch_pool, scratch_pool);
if (err)
goto unlock_wc;
@@ -8426,10 +8632,10 @@ resolve_incoming_move_file_text_merge(svn_client_conflict_option_t *option,
if (operation == svn_wc_operation_update ||
operation == svn_wc_operation_switch)
{
- svn_stream_t *working_stream;
+ svn_stream_t *moved_to_stream;
svn_stream_t *incoming_stream;
- /* Create a temporary copy of the working file in repository-normal form.
+ /* Create a temporary copy of the moved file in repository-normal form.
* Set up this temporary file to be automatically removed. */
err = svn_stream_open_unique(&incoming_stream,
&incoming_abspath, wc_tmpdir,
@@ -8438,18 +8644,31 @@ resolve_incoming_move_file_text_merge(svn_client_conflict_option_t *option,
if (err)
goto unlock_wc;
- err = svn_wc__translated_stream(&working_stream, ctx->wc_ctx,
- local_abspath, local_abspath,
+ err = svn_wc__translated_stream(&moved_to_stream, ctx->wc_ctx,
+ moved_to_abspath,
+ moved_to_abspath,
SVN_WC_TRANSLATE_TO_NF,
scratch_pool, scratch_pool);
if (err)
goto unlock_wc;
- err = svn_stream_copy3(working_stream, incoming_stream,
+ err = svn_stream_copy3(moved_to_stream, incoming_stream,
NULL, NULL, /* no cancellation */
scratch_pool);
if (err)
goto unlock_wc;
+
+ /* Overwrite the moved file with the conflict victim's content.
+ * Incoming changes will be merged in from the temporary file created
+ * above. This is required to correctly make local changes show up as
+ * 'mine' during the three-way text merge between the ancestor file,
+ * the conflict victim ('mine'), and the moved file ('theirs') which
+ * was brought in by the update/switch operation and occupies the path
+ * of the merge target. */
+ err = svn_io_copy_file(merge_source_abspath, moved_to_abspath, FALSE,
+ scratch_pool);
+ if (err)
+ goto unlock_wc;
}
else if (operation == svn_wc_operation_merge)
{
@@ -8486,7 +8705,7 @@ resolve_incoming_move_file_text_merge(svn_client_conflict_option_t *option,
err = svn_io_remove_file2(moved_to_abspath, FALSE, scratch_pool);
if (err)
goto unlock_wc;
- err = svn_wc__move2(ctx->wc_ctx, local_abspath, moved_to_abspath,
+ err = svn_wc__move2(ctx->wc_ctx, merge_source_abspath, moved_to_abspath,
FALSE, /* ordinary (not meta-data only) move */
FALSE, /* mixed-revisions don't apply to files */
NULL, NULL, /* don't allow user to cancel here */
@@ -8522,7 +8741,7 @@ resolve_incoming_move_file_text_merge(svn_client_conflict_option_t *option,
goto unlock_wc;
incoming_abspath = NULL;
}
-
+
if (ctx->notify_func2)
{
svn_wc_notify_t *notify;
@@ -8544,19 +8763,27 @@ resolve_incoming_move_file_text_merge(svn_client_conflict_option_t *option,
operation == svn_wc_operation_switch)
{
/* Delete the tree conflict victim (clears the tree conflict marker). */
- err = svn_wc_delete4(ctx->wc_ctx, local_abspath, FALSE, FALSE,
+ err = svn_wc_delete4(ctx->wc_ctx, victim_abspath, FALSE, FALSE,
NULL, NULL, /* don't allow user to cancel here */
NULL, NULL, /* no extra notification */
scratch_pool);
if (err)
goto unlock_wc;
}
+ else if (local_change == svn_wc_conflict_reason_missing)
+ {
+ /* Clear tree conflict marker. */
+ err = svn_wc__del_tree_conflict(ctx->wc_ctx, victim_abspath,
+ scratch_pool);
+ if (err)
+ goto unlock_wc;
+ }
if (ctx->notify_func2)
{
svn_wc_notify_t *notify;
- notify = svn_wc_create_notify(local_abspath, svn_wc_notify_resolved_tree,
+ notify = svn_wc_create_notify(victim_abspath, svn_wc_notify_resolved_tree,
scratch_pool);
ctx->notify_func2(ctx->notify_baton2, notify, scratch_pool);
}
@@ -8577,6 +8804,521 @@ unlock_wc:
return SVN_NO_ERROR;
}
+/* Implements conflict_option_resolve_func_t.
+ * Resolve an incoming move vs local move conflict by merging from the
+ * incoming move's target location to the local move's target location,
+ * overriding the incoming move. */
+static svn_error_t *
+resolve_both_moved_file_text_merge(svn_client_conflict_option_t *option,
+ svn_client_conflict_t *conflict,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ svn_client_conflict_option_id_t option_id;
+ const char *victim_abspath;
+ const char *local_moved_to_abspath;
+ svn_wc_operation_t operation;
+ const char *lock_abspath;
+ svn_error_t *err;
+ const char *repos_root_url;
+ const char *incoming_old_repos_relpath;
+ svn_revnum_t incoming_old_pegrev;
+ const char *incoming_new_repos_relpath;
+ svn_revnum_t incoming_new_pegrev;
+ const char *wc_tmpdir;
+ const char *ancestor_abspath;
+ svn_stream_t *ancestor_stream;
+ apr_hash_t *ancestor_props;
+ apr_hash_t *incoming_props;
+ apr_hash_t *local_props;
+ const char *ancestor_url;
+ const char *corrected_url;
+ svn_ra_session_t *ra_session;
+ svn_wc_merge_outcome_t merge_content_outcome;
+ svn_wc_notify_state_t merge_props_outcome;
+ apr_array_header_t *propdiffs;
+ struct conflict_tree_incoming_delete_details *incoming_details;
+ apr_array_header_t *possible_moved_to_abspaths;
+ const char *incoming_moved_to_abspath;
+ struct conflict_tree_local_missing_details *local_details;
+ apr_array_header_t *local_moves;
+
+ victim_abspath = svn_client_conflict_get_local_abspath(conflict);
+ operation = svn_client_conflict_get_operation(conflict);
+ incoming_details = conflict->tree_conflict_incoming_details;
+ if (incoming_details == NULL || incoming_details->moves == NULL)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("The specified conflict resolution option "
+ "requires details for tree conflict at '%s' "
+ "to be fetched from the repository first."),
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+ if (operation == svn_wc_operation_none)
+ return svn_error_createf(SVN_ERR_WC_CORRUPT, NULL,
+ _("Invalid operation code '%d' recorded for "
+ "conflict at '%s'"), operation,
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+
+ option_id = svn_client_conflict_option_get_id(option);
+ SVN_ERR_ASSERT(option_id == svn_client_conflict_option_both_moved_file_merge);
+
+ SVN_ERR(svn_client_conflict_get_repos_info(&repos_root_url, NULL,
+ conflict, scratch_pool,
+ scratch_pool));
+ SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
+ &incoming_old_repos_relpath, &incoming_old_pegrev,
+ NULL, conflict, scratch_pool,
+ scratch_pool));
+ SVN_ERR(svn_client_conflict_get_incoming_new_repos_location(
+ &incoming_new_repos_relpath, &incoming_new_pegrev,
+ NULL, conflict, scratch_pool,
+ scratch_pool));
+
+ /* Set up temporary storage for the common ancestor version of the file. */
+ SVN_ERR(svn_wc__get_tmpdir(&wc_tmpdir, ctx->wc_ctx, victim_abspath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_stream_open_unique(&ancestor_stream,
+ &ancestor_abspath, wc_tmpdir,
+ svn_io_file_del_on_pool_cleanup,
+ scratch_pool, scratch_pool));
+
+ /* Fetch the ancestor file's content. */
+ ancestor_url = svn_path_url_add_component2(repos_root_url,
+ incoming_old_repos_relpath,
+ scratch_pool);
+ SVN_ERR(svn_client__open_ra_session_internal(&ra_session, &corrected_url,
+ ancestor_url, NULL, NULL,
+ FALSE, FALSE, ctx,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_ra_get_file(ra_session, "", incoming_old_pegrev,
+ ancestor_stream, NULL, /* fetched_rev */
+ &ancestor_props, scratch_pool));
+ filter_props(ancestor_props, scratch_pool);
+
+ /* Close stream to flush ancestor file to disk. */
+ SVN_ERR(svn_stream_close(ancestor_stream));
+
+ possible_moved_to_abspaths =
+ svn_hash_gets(incoming_details->wc_move_targets,
+ get_moved_to_repos_relpath(incoming_details, scratch_pool));
+ incoming_moved_to_abspath =
+ APR_ARRAY_IDX(possible_moved_to_abspaths,
+ incoming_details->wc_move_target_idx, const char *);
+
+ local_details = conflict->tree_conflict_local_details;
+ local_moves = svn_hash_gets(local_details->wc_move_targets,
+ local_details->move_target_repos_relpath);
+ local_moved_to_abspath =
+ APR_ARRAY_IDX(local_moves, local_details->wc_move_target_idx, const char *);
+
+ /* ### The following WC modifications should be atomic. */
+ SVN_ERR(svn_wc__acquire_write_lock_for_resolve(
+ &lock_abspath, ctx->wc_ctx,
+ svn_dirent_get_longest_ancestor(victim_abspath,
+ local_moved_to_abspath,
+ scratch_pool),
+ scratch_pool, scratch_pool));
+
+ /* Get a copy of the incoming moved item's properties. */
+ err = svn_wc_prop_list2(&incoming_props, ctx->wc_ctx,
+ incoming_moved_to_abspath,
+ scratch_pool, scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ /* Get a copy of the local move target's properties. */
+ err = svn_wc_prop_list2(&local_props, ctx->wc_ctx,
+ local_moved_to_abspath,
+ scratch_pool, scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ /* Create a property diff for the files. */
+ err = svn_prop_diffs(&propdiffs, incoming_props, local_props,
+ scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ /* Perform the file merge. */
+ err = svn_wc_merge5(&merge_content_outcome, &merge_props_outcome,
+ ctx->wc_ctx, ancestor_abspath,
+ incoming_moved_to_abspath, local_moved_to_abspath,
+ NULL, NULL, NULL, /* labels */
+ NULL, NULL, /* conflict versions */
+ FALSE, /* dry run */
+ NULL, NULL, /* diff3_cmd, merge_options */
+ apr_hash_count(ancestor_props) ? ancestor_props : NULL,
+ propdiffs,
+ NULL, NULL, /* conflict func/baton */
+ NULL, NULL, /* don't allow user to cancel here */
+ scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ if (ctx->notify_func2)
+ {
+ svn_wc_notify_t *notify;
+
+ /* Tell the world about the file merge that just happened. */
+ notify = svn_wc_create_notify(local_moved_to_abspath,
+ svn_wc_notify_update_update,
+ scratch_pool);
+ if (merge_content_outcome == svn_wc_merge_conflict)
+ notify->content_state = svn_wc_notify_state_conflicted;
+ else
+ notify->content_state = svn_wc_notify_state_merged;
+ notify->prop_state = merge_props_outcome;
+ notify->kind = svn_node_file;
+ ctx->notify_func2(ctx->notify_baton2, notify, scratch_pool);
+ }
+
+ /* Revert local addition of the incoming move's target. */
+ err = svn_wc_revert6(ctx->wc_ctx, incoming_moved_to_abspath,
+ svn_depth_infinity, FALSE, NULL, TRUE, FALSE,
+ FALSE /*added_keep_local*/,
+ NULL, NULL, /* no cancellation */
+ ctx->notify_func2, ctx->notify_baton2,
+ scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ err = svn_wc__del_tree_conflict(ctx->wc_ctx, victim_abspath, scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ if (ctx->notify_func2)
+ {
+ svn_wc_notify_t *notify;
+
+ notify = svn_wc_create_notify(victim_abspath, svn_wc_notify_resolved_tree,
+ scratch_pool);
+ ctx->notify_func2(ctx->notify_baton2, notify, scratch_pool);
+ }
+
+ svn_io_sleep_for_timestamps(local_moved_to_abspath, scratch_pool);
+
+ conflict->resolution_tree = option_id;
+
+unlock_wc:
+ err = svn_error_compose_create(err, svn_wc__release_write_lock(ctx->wc_ctx,
+ lock_abspath,
+ scratch_pool));
+ SVN_ERR(err);
+
+ return SVN_NO_ERROR;
+}
+
+/* Implements conflict_option_resolve_func_t.
+ * Resolve an incoming move vs local move conflict by moving the locally moved
+ * directory to the incoming move target location, and then merging changes. */
+static svn_error_t *
+resolve_both_moved_dir_merge(svn_client_conflict_option_t *option,
+ svn_client_conflict_t *conflict,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ svn_client_conflict_option_id_t option_id;
+ const char *victim_abspath;
+ const char *local_moved_to_abspath;
+ svn_wc_operation_t operation;
+ const char *lock_abspath;
+ svn_error_t *err;
+ const char *repos_root_url;
+ const char *incoming_old_repos_relpath;
+ svn_revnum_t incoming_old_pegrev;
+ const char *incoming_new_repos_relpath;
+ svn_revnum_t incoming_new_pegrev;
+ const char *incoming_moved_repos_relpath;
+ struct conflict_tree_incoming_delete_details *incoming_details;
+ apr_array_header_t *possible_moved_to_abspaths;
+ const char *incoming_moved_to_abspath;
+ struct conflict_tree_local_missing_details *local_details;
+ apr_array_header_t *local_moves;
+ svn_client__conflict_report_t *conflict_report;
+ const char *incoming_old_url;
+ const char *incoming_moved_url;
+ svn_opt_revision_t incoming_old_opt_rev;
+ svn_opt_revision_t incoming_moved_opt_rev;
+
+ victim_abspath = svn_client_conflict_get_local_abspath(conflict);
+ operation = svn_client_conflict_get_operation(conflict);
+ incoming_details = conflict->tree_conflict_incoming_details;
+ if (incoming_details == NULL || incoming_details->moves == NULL)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("The specified conflict resolution option "
+ "requires details for tree conflict at '%s' "
+
+ "to be fetched from the repository first."),
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+ if (operation == svn_wc_operation_none)
+ return svn_error_createf(SVN_ERR_WC_CORRUPT, NULL,
+ _("Invalid operation code '%d' recorded for "
+ "conflict at '%s'"), operation,
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+
+ option_id = svn_client_conflict_option_get_id(option);
+ SVN_ERR_ASSERT(option_id == svn_client_conflict_option_both_moved_dir_merge);
+
+ SVN_ERR(svn_client_conflict_get_repos_info(&repos_root_url, NULL,
+ conflict, scratch_pool,
+ scratch_pool));
+ SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
+ &incoming_old_repos_relpath, &incoming_old_pegrev,
+ NULL, conflict, scratch_pool,
+ scratch_pool));
+ SVN_ERR(svn_client_conflict_get_incoming_new_repos_location(
+ &incoming_new_repos_relpath, &incoming_new_pegrev,
+ NULL, conflict, scratch_pool,
+ scratch_pool));
+
+ possible_moved_to_abspaths =
+ svn_hash_gets(incoming_details->wc_move_targets,
+ get_moved_to_repos_relpath(incoming_details, scratch_pool));
+ incoming_moved_to_abspath =
+ APR_ARRAY_IDX(possible_moved_to_abspaths,
+ incoming_details->wc_move_target_idx, const char *);
+
+ local_details = conflict->tree_conflict_local_details;
+ local_moves = svn_hash_gets(local_details->wc_move_targets,
+ local_details->move_target_repos_relpath);
+ local_moved_to_abspath =
+ APR_ARRAY_IDX(local_moves, local_details->wc_move_target_idx, const char *);
+
+ /* ### The following WC modifications should be atomic. */
+ SVN_ERR(svn_wc__acquire_write_lock_for_resolve(
+ &lock_abspath, ctx->wc_ctx,
+ svn_dirent_get_longest_ancestor(victim_abspath,
+ local_moved_to_abspath,
+ scratch_pool),
+ scratch_pool, scratch_pool));
+
+ /* Perform the merge. */
+ incoming_old_url = apr_pstrcat(scratch_pool, repos_root_url, "/",
+ incoming_old_repos_relpath, SVN_VA_NULL);
+ incoming_old_opt_rev.kind = svn_opt_revision_number;
+ incoming_old_opt_rev.value.number = incoming_old_pegrev;
+
+ incoming_moved_repos_relpath =
+ get_moved_to_repos_relpath(incoming_details, scratch_pool);
+ incoming_moved_url = apr_pstrcat(scratch_pool, repos_root_url, "/",
+ incoming_moved_repos_relpath, SVN_VA_NULL);
+ incoming_moved_opt_rev.kind = svn_opt_revision_number;
+ incoming_moved_opt_rev.value.number = incoming_new_pegrev;
+ err = svn_client__merge_locked(&conflict_report,
+ incoming_old_url, &incoming_old_opt_rev,
+ incoming_moved_url, &incoming_moved_opt_rev,
+ local_moved_to_abspath, svn_depth_infinity,
+ TRUE, TRUE, /* do a no-ancestry merge */
+ FALSE, FALSE, FALSE,
+ TRUE, /* Allow mixed-rev just in case,
+ * since conflict victims can't be
+ * updated to straighten out
+ * mixed-rev trees. */
+ NULL, ctx, scratch_pool, scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ /* Revert local addition of the incoming move's target. */
+ err = svn_wc_revert6(ctx->wc_ctx, incoming_moved_to_abspath,
+ svn_depth_infinity, FALSE, NULL, TRUE, FALSE,
+ FALSE /*added_keep_local*/,
+ NULL, NULL, /* no cancellation */
+ ctx->notify_func2, ctx->notify_baton2,
+ scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ err = svn_wc__del_tree_conflict(ctx->wc_ctx, victim_abspath, scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ if (ctx->notify_func2)
+ {
+ svn_wc_notify_t *notify;
+
+ notify = svn_wc_create_notify(victim_abspath, svn_wc_notify_resolved_tree,
+ scratch_pool);
+ ctx->notify_func2(ctx->notify_baton2, notify, scratch_pool);
+ }
+
+ svn_io_sleep_for_timestamps(local_moved_to_abspath, scratch_pool);
+
+ conflict->resolution_tree = option_id;
+
+unlock_wc:
+ err = svn_error_compose_create(err, svn_wc__release_write_lock(ctx->wc_ctx,
+ lock_abspath,
+ scratch_pool));
+ SVN_ERR(err);
+
+ return SVN_NO_ERROR;
+}
+
+/* Implements conflict_option_resolve_func_t.
+ * Resolve an incoming move vs local move conflict by merging from the
+ * incoming move's target location to the local move's target location,
+ * overriding the incoming move. */
+static svn_error_t *
+resolve_both_moved_dir_move_merge(svn_client_conflict_option_t *option,
+ svn_client_conflict_t *conflict,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ svn_client_conflict_option_id_t option_id;
+ const char *victim_abspath;
+ const char *local_moved_to_abspath;
+ svn_wc_operation_t operation;
+ const char *lock_abspath;
+ svn_error_t *err;
+ const char *repos_root_url;
+ const char *incoming_old_repos_relpath;
+ svn_revnum_t incoming_old_pegrev;
+ const char *incoming_new_repos_relpath;
+ svn_revnum_t incoming_new_pegrev;
+ struct conflict_tree_incoming_delete_details *incoming_details;
+ apr_array_header_t *possible_moved_to_abspaths;
+ const char *incoming_moved_to_abspath;
+ struct conflict_tree_local_missing_details *local_details;
+ apr_array_header_t *local_moves;
+ svn_client__conflict_report_t *conflict_report;
+ const char *incoming_old_url;
+ const char *incoming_moved_url;
+ svn_opt_revision_t incoming_old_opt_rev;
+ svn_opt_revision_t incoming_moved_opt_rev;
+
+ victim_abspath = svn_client_conflict_get_local_abspath(conflict);
+ operation = svn_client_conflict_get_operation(conflict);
+ incoming_details = conflict->tree_conflict_incoming_details;
+ if (incoming_details == NULL || incoming_details->moves == NULL)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("The specified conflict resolution option "
+ "requires details for tree conflict at '%s' "
+
+ "to be fetched from the repository first."),
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+ if (operation == svn_wc_operation_none)
+ return svn_error_createf(SVN_ERR_WC_CORRUPT, NULL,
+ _("Invalid operation code '%d' recorded for "
+ "conflict at '%s'"), operation,
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+
+ option_id = svn_client_conflict_option_get_id(option);
+ SVN_ERR_ASSERT(option_id ==
+ svn_client_conflict_option_both_moved_dir_move_merge);
+
+ SVN_ERR(svn_client_conflict_get_repos_info(&repos_root_url, NULL,
+ conflict, scratch_pool,
+ scratch_pool));
+ SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
+ &incoming_old_repos_relpath, &incoming_old_pegrev,
+ NULL, conflict, scratch_pool,
+ scratch_pool));
+ SVN_ERR(svn_client_conflict_get_incoming_new_repos_location(
+ &incoming_new_repos_relpath, &incoming_new_pegrev,
+ NULL, conflict, scratch_pool,
+ scratch_pool));
+
+ possible_moved_to_abspaths =
+ svn_hash_gets(incoming_details->wc_move_targets,
+ get_moved_to_repos_relpath(incoming_details, scratch_pool));
+ incoming_moved_to_abspath =
+ APR_ARRAY_IDX(possible_moved_to_abspaths,
+ incoming_details->wc_move_target_idx, const char *);
+
+ local_details = conflict->tree_conflict_local_details;
+ local_moves = svn_hash_gets(local_details->wc_move_targets,
+ local_details->move_target_repos_relpath);
+ local_moved_to_abspath =
+ APR_ARRAY_IDX(local_moves, local_details->wc_move_target_idx, const char *);
+
+ /* ### The following WC modifications should be atomic. */
+ SVN_ERR(svn_wc__acquire_write_lock_for_resolve(
+ &lock_abspath, ctx->wc_ctx,
+ svn_dirent_get_longest_ancestor(victim_abspath,
+ local_moved_to_abspath,
+ scratch_pool),
+ scratch_pool, scratch_pool));
+
+ /* Revert the incoming move target directory. */
+ err = svn_wc_revert6(ctx->wc_ctx, incoming_moved_to_abspath,
+ svn_depth_infinity,
+ FALSE, NULL, TRUE, FALSE,
+ TRUE /*added_keep_local*/,
+ NULL, NULL, /* no cancellation */
+ ctx->notify_func2, ctx->notify_baton2,
+ scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ /* The move operation is not part of natural history. We must replicate
+ * this move in our history. Record a move in the working copy. */
+ err = svn_wc__move2(ctx->wc_ctx, local_moved_to_abspath,
+ incoming_moved_to_abspath,
+ FALSE, /* this is not a meta-data only move */
+ TRUE, /* allow mixed-revisions just in case */
+ NULL, NULL, /* don't allow user to cancel here */
+ ctx->notify_func2, ctx->notify_baton2,
+ scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ /* Merge INCOMING_OLD_URL@MERGE_LEFT->INCOMING_MOVED_URL@MERGE_RIGHT
+ * into the locally moved merge target. */
+ incoming_old_url = apr_pstrcat(scratch_pool, repos_root_url, "/",
+ incoming_old_repos_relpath, SVN_VA_NULL);
+ incoming_old_opt_rev.kind = svn_opt_revision_number;
+ incoming_old_opt_rev.value.number = incoming_old_pegrev;
+
+ incoming_moved_url = apr_pstrcat(scratch_pool, repos_root_url, "/",
+ incoming_details->move_target_repos_relpath,
+ SVN_VA_NULL);
+ incoming_moved_opt_rev.kind = svn_opt_revision_number;
+ incoming_moved_opt_rev.value.number = incoming_new_pegrev;
+ err = svn_client__merge_locked(&conflict_report,
+ incoming_old_url, &incoming_old_opt_rev,
+ incoming_moved_url, &incoming_moved_opt_rev,
+ incoming_moved_to_abspath, svn_depth_infinity,
+ TRUE, TRUE, /* do a no-ancestry merge */
+ FALSE, FALSE, FALSE,
+ TRUE, /* Allow mixed-rev just in case,
+ * since conflict victims can't be
+ * updated to straighten out
+ * mixed-rev trees. */
+ NULL, ctx, scratch_pool, scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ err = svn_wc__del_tree_conflict(ctx->wc_ctx, victim_abspath, scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ if (ctx->notify_func2)
+ {
+ svn_wc_notify_t *notify;
+
+ notify = svn_wc_create_notify(victim_abspath, svn_wc_notify_resolved_tree,
+ scratch_pool);
+ ctx->notify_func2(ctx->notify_baton2, notify, scratch_pool);
+ }
+
+ svn_io_sleep_for_timestamps(local_moved_to_abspath, scratch_pool);
+
+ conflict->resolution_tree = option_id;
+
+unlock_wc:
+ err = svn_error_compose_create(err, svn_wc__release_write_lock(ctx->wc_ctx,
+ lock_abspath,
+ scratch_pool));
+ SVN_ERR(err);
+
+ return SVN_NO_ERROR;
+}
+
/* Implements conflict_option_resolve_func_t. */
static svn_error_t *
resolve_incoming_move_dir_merge(svn_client_conflict_option_t *option,
@@ -8602,8 +9344,8 @@ resolve_incoming_move_dir_merge(svn_client_conflict_option_t *option,
struct conflict_tree_incoming_delete_details *details;
apr_array_header_t *possible_moved_to_abspaths;
const char *moved_to_abspath;
- svn_client__pathrev_t *yca_loc;
- svn_opt_revision_t yca_opt_rev;
+ const char *incoming_old_url;
+ svn_opt_revision_t incoming_old_opt_rev;
svn_client__conflict_report_t *conflict_report;
svn_boolean_t is_copy;
svn_boolean_t is_modified;
@@ -8622,7 +9364,7 @@ resolve_incoming_move_dir_merge(svn_client_conflict_option_t *option,
option_id = svn_client_conflict_option_get_id(option);
SVN_ERR_ASSERT(option_id ==
svn_client_conflict_option_incoming_move_dir_merge);
-
+
SVN_ERR(svn_client_conflict_get_repos_info(&repos_root_url, &repos_uuid,
conflict, scratch_pool,
scratch_pool));
@@ -8696,30 +9438,6 @@ resolve_incoming_move_dir_merge(svn_client_conflict_option_t *option,
goto unlock_wc;
}
- /* Now find the youngest common ancestor of these nodes. */
- err = find_yca(&yca_loc, victim_repos_relpath, victim_peg_rev,
- moved_to_repos_relpath, moved_to_peg_rev,
- repos_root_url, repos_uuid,
- NULL, ctx, scratch_pool, scratch_pool);
- if (err)
- goto unlock_wc;
-
- if (yca_loc == NULL)
- {
- err = svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
- _("Cannot resolve tree conflict on '%s' "
- "(could not find common ancestor of '^/%s@%ld' "
- " and '^/%s@%ld')"),
- svn_dirent_local_style(local_abspath,
- scratch_pool),
- victim_repos_relpath, victim_peg_rev,
- moved_to_repos_relpath, moved_to_peg_rev);
- goto unlock_wc;
- }
-
- yca_opt_rev.kind = svn_opt_revision_number;
- yca_opt_rev.value.number = yca_loc->rev;
-
err = verify_local_state_for_incoming_delete(conflict, option, ctx,
scratch_pool);
if (err)
@@ -8731,11 +9449,14 @@ resolve_incoming_move_dir_merge(svn_client_conflict_option_t *option,
svn_opt_revision_t incoming_new_opt_rev;
/* Revert the incoming move target directory. */
- SVN_ERR(svn_wc_revert5(ctx->wc_ctx, moved_to_abspath, svn_depth_infinity,
- FALSE, NULL, TRUE, FALSE,
- NULL, NULL, /* no cancellation */
- ctx->notify_func2, ctx->notify_baton2,
- scratch_pool));
+ err = svn_wc_revert6(ctx->wc_ctx, moved_to_abspath, svn_depth_infinity,
+ FALSE, NULL, TRUE, FALSE,
+ TRUE /*added_keep_local*/,
+ NULL, NULL, /* no cancellation */
+ ctx->notify_func2, ctx->notify_baton2,
+ scratch_pool);
+ if (err)
+ goto unlock_wc;
/* The move operation is not part of natural history. We must replicate
* this move in our history. Record a move in the working copy. */
@@ -8748,7 +9469,12 @@ resolve_incoming_move_dir_merge(svn_client_conflict_option_t *option,
if (err)
goto unlock_wc;
- /* Merge YCA_URL@YCA_REV->MOVE_TARGET_URL@MERGE_RIGHT into move target. */
+ /* Merge INCOMING_OLD_URL@MERGE_LEFT->MOVE_TARGET_URL@MERGE_RIGHT
+ * into move target. */
+ incoming_old_url = apr_pstrcat(scratch_pool, repos_root_url, "/",
+ incoming_old_repos_relpath, SVN_VA_NULL);
+ incoming_old_opt_rev.kind = svn_opt_revision_number;
+ incoming_old_opt_rev.value.number = incoming_old_pegrev;
move_target_url = apr_pstrcat(scratch_pool, repos_root_url, "/",
get_moved_to_repos_relpath(details,
scratch_pool),
@@ -8756,7 +9482,7 @@ resolve_incoming_move_dir_merge(svn_client_conflict_option_t *option,
incoming_new_opt_rev.kind = svn_opt_revision_number;
incoming_new_opt_rev.value.number = incoming_new_pegrev;
err = svn_client__merge_locked(&conflict_report,
- yca_loc->url, &yca_opt_rev,
+ incoming_old_url, &incoming_old_opt_rev,
move_target_url, &incoming_new_opt_rev,
moved_to_abspath, svn_depth_infinity,
TRUE, TRUE, /* do a no-ancestry merge */
@@ -8825,7 +9551,9 @@ unlock_wc:
return SVN_NO_ERROR;
}
-/* Implements conflict_option_resolve_func_t. */
+/* Implements conflict_option_resolve_func_t.
+ * Handles svn_client_conflict_option_local_move_file_text_merge
+ * and svn_client_conflict_option_sibling_move_file_text_merge. */
static svn_error_t *
resolve_local_move_file_merge(svn_client_conflict_option_t *option,
svn_client_conflict_t *conflict,
@@ -8853,6 +9581,12 @@ resolve_local_move_file_merge(svn_client_conflict_option_t *option,
svn_wc_notify_state_t merge_props_outcome;
apr_array_header_t *propdiffs;
struct conflict_tree_local_missing_details *details;
+ const char *merge_target_abspath;
+ const char *wcroot_abspath;
+
+ SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, ctx->wc_ctx,
+ conflict->local_abspath, scratch_pool,
+ scratch_pool));
details = conflict->tree_conflict_local_details;
@@ -8868,8 +9602,31 @@ resolve_local_move_file_merge(svn_client_conflict_option_t *option,
NULL, conflict, scratch_pool,
scratch_pool));
+ if (details->wc_siblings)
+ {
+ merge_target_abspath = APR_ARRAY_IDX(details->wc_siblings,
+ details->preferred_sibling_idx,
+ const char *);
+ }
+ else if (details->wc_move_targets && details->move_target_repos_relpath)
+ {
+ apr_array_header_t *moves;
+ moves = svn_hash_gets(details->wc_move_targets,
+ details->move_target_repos_relpath);
+ merge_target_abspath = APR_ARRAY_IDX(moves, details->wc_move_target_idx,
+ const char *);
+ }
+ else
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Corresponding working copy node not found "
+ "for '%s'"),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(
+ wcroot_abspath, conflict->local_abspath),
+ scratch_pool));
+
SVN_ERR(svn_wc__get_tmpdir(&wc_tmpdir, ctx->wc_ctx,
- details->moved_to_abspath,
+ merge_target_abspath,
scratch_pool, scratch_pool));
/* Fetch the common ancestor file's content. */
@@ -8914,7 +9671,7 @@ resolve_local_move_file_merge(svn_client_conflict_option_t *option,
SVN_ERR(svn_wc__acquire_write_lock_for_resolve(
&lock_abspath, ctx->wc_ctx,
svn_dirent_get_longest_ancestor(conflict->local_abspath,
- details->moved_to_abspath,
+ merge_target_abspath,
scratch_pool),
scratch_pool, scratch_pool));
@@ -8922,7 +9679,7 @@ resolve_local_move_file_merge(svn_client_conflict_option_t *option,
err = svn_wc_merge5(&merge_content_outcome, &merge_props_outcome,
ctx->wc_ctx,
ancestor_tmp_abspath, incoming_tmp_abspath,
- details->moved_to_abspath,
+ merge_target_abspath,
NULL, NULL, NULL, /* labels */
NULL, NULL, /* conflict versions */
FALSE, /* dry run */
@@ -8932,7 +9689,7 @@ resolve_local_move_file_merge(svn_client_conflict_option_t *option,
NULL, NULL, /* conflict func/baton */
NULL, NULL, /* don't allow user to cancel here */
scratch_pool);
- svn_io_sleep_for_timestamps(details->moved_to_abspath, scratch_pool);
+ svn_io_sleep_for_timestamps(merge_target_abspath, scratch_pool);
if (err)
return svn_error_compose_create(err,
svn_wc__release_write_lock(ctx->wc_ctx,
@@ -8953,7 +9710,7 @@ resolve_local_move_file_merge(svn_client_conflict_option_t *option,
svn_wc_notify_t *notify;
/* Tell the world about the file merge that just happened. */
- notify = svn_wc_create_notify(details->moved_to_abspath,
+ notify = svn_wc_create_notify(merge_target_abspath,
svn_wc_notify_update_update,
scratch_pool);
if (merge_content_outcome == svn_wc_merge_conflict)
@@ -8976,6 +9733,127 @@ resolve_local_move_file_merge(svn_client_conflict_option_t *option,
return SVN_NO_ERROR;
}
+/* Implements conflict_option_resolve_func_t. */
+static svn_error_t *
+resolve_local_move_dir_merge(svn_client_conflict_option_t *option,
+ svn_client_conflict_t *conflict,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ const char *lock_abspath;
+ svn_error_t *err;
+ const char *repos_root_url;
+ const char *incoming_old_repos_relpath;
+ svn_revnum_t incoming_old_pegrev;
+ const char *incoming_new_repos_relpath;
+ svn_revnum_t incoming_new_pegrev;
+ struct conflict_tree_local_missing_details *details;
+ const char *merge_target_abspath;
+ const char *incoming_old_url;
+ const char *incoming_new_url;
+ svn_opt_revision_t incoming_old_opt_rev;
+ svn_opt_revision_t incoming_new_opt_rev;
+ svn_client__conflict_report_t *conflict_report;
+
+ details = conflict->tree_conflict_local_details;
+
+ SVN_ERR(svn_client_conflict_get_repos_info(&repos_root_url, NULL,
+ conflict, scratch_pool,
+ scratch_pool));
+ SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
+ &incoming_old_repos_relpath, &incoming_old_pegrev,
+ NULL, conflict, scratch_pool,
+ scratch_pool));
+ SVN_ERR(svn_client_conflict_get_incoming_new_repos_location(
+ &incoming_new_repos_relpath, &incoming_new_pegrev,
+ NULL, conflict, scratch_pool,
+ scratch_pool));
+
+ if (details->wc_move_targets)
+ {
+ apr_array_header_t *moves;
+
+ moves = svn_hash_gets(details->wc_move_targets,
+ details->move_target_repos_relpath);
+ merge_target_abspath =
+ APR_ARRAY_IDX(moves, details->wc_move_target_idx, const char *);
+ }
+ else
+ merge_target_abspath = APR_ARRAY_IDX(details->wc_siblings,
+ details->preferred_sibling_idx,
+ const char *);
+
+ /* ### The following WC modifications should be atomic. */
+ SVN_ERR(svn_wc__acquire_write_lock_for_resolve(
+ &lock_abspath, ctx->wc_ctx,
+ svn_dirent_get_longest_ancestor(conflict->local_abspath,
+ merge_target_abspath,
+ scratch_pool),
+ scratch_pool, scratch_pool));
+
+ /* Resolve to current working copy state.
+ * svn_client__merge_locked() requires this. */
+ err = svn_wc__del_tree_conflict(ctx->wc_ctx, conflict->local_abspath,
+ scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ /* Merge outstanding changes to the merge target. */
+ incoming_old_url = apr_pstrcat(scratch_pool, repos_root_url, "/",
+ incoming_old_repos_relpath, SVN_VA_NULL);
+ incoming_old_opt_rev.kind = svn_opt_revision_number;
+ incoming_old_opt_rev.value.number = incoming_old_pegrev;
+ incoming_new_url = apr_pstrcat(scratch_pool, repos_root_url, "/",
+ incoming_new_repos_relpath, SVN_VA_NULL);
+ incoming_new_opt_rev.kind = svn_opt_revision_number;
+ incoming_new_opt_rev.value.number = incoming_new_pegrev;
+ err = svn_client__merge_locked(&conflict_report,
+ incoming_old_url, &incoming_old_opt_rev,
+ incoming_new_url, &incoming_new_opt_rev,
+ merge_target_abspath, svn_depth_infinity,
+ TRUE, TRUE, /* do a no-ancestry merge */
+ FALSE, FALSE, FALSE,
+ TRUE, /* Allow mixed-rev just in case,
+ * since conflict victims can't be
+ * updated to straighten out
+ * mixed-rev trees. */
+ NULL, ctx, scratch_pool, scratch_pool);
+unlock_wc:
+ svn_io_sleep_for_timestamps(merge_target_abspath, scratch_pool);
+ err = svn_error_compose_create(err,
+ svn_wc__release_write_lock(ctx->wc_ctx,
+ lock_abspath,
+ scratch_pool));
+ if (err)
+ return svn_error_trace(err);
+
+ if (ctx->notify_func2)
+ {
+ svn_wc_notify_t *notify;
+
+ /* Tell the world about the file merge that just happened. */
+ notify = svn_wc_create_notify(merge_target_abspath,
+ svn_wc_notify_update_update,
+ scratch_pool);
+ if (conflict_report)
+ notify->content_state = svn_wc_notify_state_conflicted;
+ else
+ notify->content_state = svn_wc_notify_state_merged;
+ notify->kind = svn_node_dir;
+ ctx->notify_func2(ctx->notify_baton2, notify, scratch_pool);
+
+ /* And also about the successfully resolved tree conflict. */
+ notify = svn_wc_create_notify(conflict->local_abspath,
+ svn_wc_notify_resolved_tree,
+ scratch_pool);
+ ctx->notify_func2(ctx->notify_baton2, notify, scratch_pool);
+ }
+
+ conflict->resolution_tree = svn_client_conflict_option_get_id(option);
+
+ return SVN_NO_ERROR;
+}
+
static svn_error_t *
assert_text_conflict(svn_client_conflict_t *conflict, apr_pool_t *scratch_pool)
{
@@ -9112,13 +9990,13 @@ svn_client_conflict_text_get_resolution_options(apr_array_header_t **options,
add_resolution_option(*options, conflict,
svn_client_conflict_option_incoming_text_where_conflicted,
_("Accept incoming for conflicts"),
- _("accept changes only where they conflict"),
+ _("accept incoming changes only where they conflict"),
resolve_text_conflict);
add_resolution_option(*options, conflict,
svn_client_conflict_option_working_text_where_conflicted,
_("Reject conflicts"),
- _("reject changes which conflict and accept the rest"),
+ _("reject incoming changes which conflict and accept the rest"),
resolve_text_conflict);
add_resolution_option(*options, conflict,
@@ -9392,6 +10270,7 @@ configure_option_incoming_added_file_text_merge(svn_client_conflict_t *conflict,
incoming_new_kind == svn_node_file &&
incoming_change == svn_wc_conflict_action_add &&
(local_change == svn_wc_conflict_reason_obstructed ||
+ local_change == svn_wc_conflict_reason_unversioned ||
local_change == svn_wc_conflict_reason_added))
{
const char *description;
@@ -9517,8 +10396,9 @@ configure_option_incoming_added_dir_merge(svn_client_conflict_t *conflict,
incoming_change == svn_wc_conflict_action_add &&
(local_change == svn_wc_conflict_reason_added ||
(operation == svn_wc_operation_merge &&
- local_change == svn_wc_conflict_reason_obstructed)))
-
+ local_change == svn_wc_conflict_reason_obstructed) ||
+ (operation != svn_wc_operation_merge &&
+ local_change == svn_wc_conflict_reason_unversioned)))
{
const char *description;
const char *wcroot_abspath;
@@ -9527,13 +10407,18 @@ configure_option_incoming_added_dir_merge(svn_client_conflict_t *conflict,
conflict->local_abspath, scratch_pool,
scratch_pool));
if (operation == svn_wc_operation_merge)
- description =
- apr_psprintf(scratch_pool, _("merge '^/%s@%ld' into '%s'"),
- incoming_new_repos_relpath, incoming_new_pegrev,
- svn_dirent_local_style(
- svn_dirent_skip_ancestor(wcroot_abspath,
- conflict->local_abspath),
- scratch_pool));
+ {
+ if (conflict->tree_conflict_incoming_details == NULL)
+ return SVN_NO_ERROR;
+
+ description =
+ apr_psprintf(scratch_pool, _("merge '^/%s@%ld' into '%s'"),
+ incoming_new_repos_relpath, incoming_new_pegrev,
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(wcroot_abspath,
+ conflict->local_abspath),
+ scratch_pool));
+ }
else
description =
apr_psprintf(scratch_pool, _("merge local '%s' and '^/%s@%ld'"),
@@ -9723,7 +10608,7 @@ configure_option_incoming_delete_ignore(svn_client_conflict_t *conflict,
is_local_move = (local_details != NULL &&
local_details->moves != NULL);
- if (!is_incoming_move && !is_local_move)
+ if (is_incoming_move || is_local_move)
return SVN_NO_ERROR;
}
@@ -9769,7 +10654,8 @@ configure_option_incoming_delete_accept(svn_client_conflict_t *conflict,
incoming_details->moves != NULL);
if (is_incoming_move &&
(local_change == svn_wc_conflict_reason_edited ||
- local_change == svn_wc_conflict_reason_moved_away))
+ local_change == svn_wc_conflict_reason_moved_away ||
+ local_change == svn_wc_conflict_reason_missing))
{
/* An option which accepts the incoming deletion makes no sense
* if we know there was a local move and/or an incoming move. */
@@ -9806,39 +10692,75 @@ describe_incoming_move_merge_conflict_option(
const char **description,
svn_client_conflict_t *conflict,
svn_client_ctx_t *ctx,
- struct conflict_tree_incoming_delete_details *details,
+ const char *moved_to_abspath,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
- apr_array_header_t *move_target_wc_abspaths;
svn_wc_operation_t operation;
const char *victim_abspath;
- const char *moved_to_abspath;
+ svn_node_kind_t victim_node_kind;
const char *wcroot_abspath;
- move_target_wc_abspaths =
- svn_hash_gets(details->wc_move_targets,
- get_moved_to_repos_relpath(details, scratch_pool));
- moved_to_abspath = APR_ARRAY_IDX(move_target_wc_abspaths,
- details->wc_move_target_idx,
- const char *);
-
victim_abspath = svn_client_conflict_get_local_abspath(conflict);
+ victim_node_kind = svn_client_conflict_tree_get_victim_node_kind(conflict);
SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, ctx->wc_ctx,
victim_abspath, scratch_pool,
scratch_pool));
operation = svn_client_conflict_get_operation(conflict);
if (operation == svn_wc_operation_merge)
- *description =
- apr_psprintf(
- result_pool, _("move '%s' to '%s' and merge"),
- svn_dirent_local_style(svn_dirent_skip_ancestor(wcroot_abspath,
- victim_abspath),
- scratch_pool),
- svn_dirent_local_style(svn_dirent_skip_ancestor(wcroot_abspath,
- moved_to_abspath),
- scratch_pool));
+ {
+ const char *incoming_moved_abspath = NULL;
+
+ if (victim_node_kind == svn_node_none)
+ {
+ /* This is an incoming move vs local move conflict. */
+ struct conflict_tree_incoming_delete_details *details;
+
+ details = conflict->tree_conflict_incoming_details;
+ if (details->wc_move_targets)
+ {
+ apr_array_header_t *moves;
+
+ moves = svn_hash_gets(details->wc_move_targets,
+ details->move_target_repos_relpath);
+ incoming_moved_abspath =
+ APR_ARRAY_IDX(moves, details->wc_move_target_idx,
+ const char *);
+ }
+ }
+
+ if (incoming_moved_abspath)
+ {
+ /* The 'move and merge' option follows the incoming move; note that
+ * moved_to_abspath points to the current location of an item which
+ * was moved in the history of our merge target branch. If the user
+ * chooses 'move and merge', that item will be moved again (i.e. it
+ * will be moved to and merged with incoming_moved_abspath's item). */
+ *description =
+ apr_psprintf(
+ result_pool, _("move '%s' to '%s' and merge"),
+ svn_dirent_local_style(svn_dirent_skip_ancestor(wcroot_abspath,
+ moved_to_abspath),
+ scratch_pool),
+ svn_dirent_local_style(svn_dirent_skip_ancestor(
+ wcroot_abspath,
+ incoming_moved_abspath),
+ scratch_pool));
+ }
+ else
+ {
+ *description =
+ apr_psprintf(
+ result_pool, _("move '%s' to '%s' and merge"),
+ svn_dirent_local_style(svn_dirent_skip_ancestor(wcroot_abspath,
+ victim_abspath),
+ scratch_pool),
+ svn_dirent_local_style(svn_dirent_skip_ancestor(wcroot_abspath,
+ moved_to_abspath),
+ scratch_pool));
+ }
+ }
else
*description =
apr_psprintf(
@@ -9863,13 +10785,16 @@ configure_option_incoming_move_file_merge(svn_client_conflict_t *conflict,
{
svn_node_kind_t victim_node_kind;
svn_wc_conflict_action_t incoming_change;
+ svn_wc_conflict_reason_t local_change;
const char *incoming_old_repos_relpath;
svn_revnum_t incoming_old_pegrev;
svn_node_kind_t incoming_old_kind;
const char *incoming_new_repos_relpath;
svn_revnum_t incoming_new_pegrev;
svn_node_kind_t incoming_new_kind;
+
incoming_change = svn_client_conflict_get_incoming_change(conflict);
+ local_change = svn_client_conflict_get_local_change(conflict);
victim_node_kind = svn_client_conflict_tree_get_victim_node_kind(conflict);
SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
&incoming_old_repos_relpath, &incoming_old_pegrev,
@@ -9883,10 +10808,13 @@ configure_option_incoming_move_file_merge(svn_client_conflict_t *conflict,
if (victim_node_kind == svn_node_file &&
incoming_old_kind == svn_node_file &&
incoming_new_kind == svn_node_none &&
- incoming_change == svn_wc_conflict_action_delete)
+ incoming_change == svn_wc_conflict_action_delete &&
+ local_change == svn_wc_conflict_reason_edited)
{
struct conflict_tree_incoming_delete_details *details;
const char *description;
+ apr_array_header_t *move_target_wc_abspaths;
+ const char *moved_to_abspath;
details = conflict->tree_conflict_incoming_details;
if (details == NULL || details->moves == NULL)
@@ -9895,9 +10823,15 @@ configure_option_incoming_move_file_merge(svn_client_conflict_t *conflict,
if (apr_hash_count(details->wc_move_targets) == 0)
return SVN_NO_ERROR;
+ move_target_wc_abspaths =
+ svn_hash_gets(details->wc_move_targets,
+ get_moved_to_repos_relpath(details, scratch_pool));
+ moved_to_abspath = APR_ARRAY_IDX(move_target_wc_abspaths,
+ details->wc_move_target_idx,
+ const char *);
SVN_ERR(describe_incoming_move_merge_conflict_option(&description,
conflict, ctx,
- details,
+ moved_to_abspath,
scratch_pool,
scratch_pool));
add_resolution_option(
@@ -9948,6 +10882,8 @@ configure_option_incoming_dir_merge(svn_client_conflict_t *conflict,
{
struct conflict_tree_incoming_delete_details *details;
const char *description;
+ apr_array_header_t *move_target_wc_abspaths;
+ const char *moved_to_abspath;
details = conflict->tree_conflict_incoming_details;
if (details == NULL || details->moves == NULL)
@@ -9956,9 +10892,15 @@ configure_option_incoming_dir_merge(svn_client_conflict_t *conflict,
if (apr_hash_count(details->wc_move_targets) == 0)
return SVN_NO_ERROR;
+ move_target_wc_abspaths =
+ svn_hash_gets(details->wc_move_targets,
+ get_moved_to_repos_relpath(details, scratch_pool));
+ moved_to_abspath = APR_ARRAY_IDX(move_target_wc_abspaths,
+ details->wc_move_target_idx,
+ const char *);
SVN_ERR(describe_incoming_move_merge_conflict_option(&description,
conflict, ctx,
- details,
+ moved_to_abspath,
scratch_pool,
scratch_pool));
add_resolution_option(options, conflict,
@@ -9973,23 +10915,32 @@ configure_option_incoming_dir_merge(svn_client_conflict_t *conflict,
/* Configure 'local move file merge' resolution option for
* a tree conflict. */
static svn_error_t *
-configure_option_local_move_file_merge(svn_client_conflict_t *conflict,
- svn_client_ctx_t *ctx,
- apr_array_header_t *options,
- apr_pool_t *scratch_pool)
+configure_option_local_move_file_or_dir_merge(
+ svn_client_conflict_t *conflict,
+ svn_client_ctx_t *ctx,
+ apr_array_header_t *options,
+ apr_pool_t *scratch_pool)
{
svn_wc_operation_t operation;
svn_wc_conflict_action_t incoming_change;
svn_wc_conflict_reason_t local_change;
+ const char *incoming_old_repos_relpath;
+ svn_revnum_t incoming_old_pegrev;
+ svn_node_kind_t incoming_old_kind;
const char *incoming_new_repos_relpath;
svn_revnum_t incoming_new_pegrev;
+ svn_node_kind_t incoming_new_kind;
operation = svn_client_conflict_get_operation(conflict);
incoming_change = svn_client_conflict_get_incoming_change(conflict);
local_change = svn_client_conflict_get_local_change(conflict);
+ SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
+ &incoming_old_repos_relpath, &incoming_old_pegrev,
+ &incoming_old_kind, conflict, scratch_pool,
+ scratch_pool));
SVN_ERR(svn_client_conflict_get_incoming_new_repos_location(
&incoming_new_repos_relpath, &incoming_new_pegrev,
- NULL, conflict, scratch_pool,
+ &incoming_new_kind, conflict, scratch_pool,
scratch_pool));
if (operation == svn_wc_operation_merge &&
@@ -9997,62 +10948,37 @@ configure_option_local_move_file_merge(svn_client_conflict_t *conflict,
local_change == svn_wc_conflict_reason_missing)
{
struct conflict_tree_local_missing_details *details;
+ const char *wcroot_abspath;
+
+ SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, ctx->wc_ctx,
+ conflict->local_abspath,
+ scratch_pool, scratch_pool));
details = conflict->tree_conflict_local_details;
- if (details != NULL && details->moves != NULL)
+ if (details != NULL && details->moves != NULL &&
+ details->move_target_repos_relpath != NULL)
{
- apr_hash_t *wc_move_targets = apr_hash_make(scratch_pool);
- apr_pool_t *iterpool;
- int i;
+ apr_array_header_t *moves;
+ const char *moved_to_abspath;
+ const char *description;
- iterpool = svn_pool_create(scratch_pool);
- for (i = 0; i < details->moves->nelts; i++)
- {
- struct repos_move_info *move;
+ moves = svn_hash_gets(details->wc_move_targets,
+ details->move_target_repos_relpath);
+ moved_to_abspath =
+ APR_ARRAY_IDX(moves, details->wc_move_target_idx, const char *);
- svn_pool_clear(iterpool);
- move = APR_ARRAY_IDX(details->moves, i, struct repos_move_info *);
- SVN_ERR(follow_move_chains(wc_move_targets, move, ctx,
- conflict->local_abspath,
- svn_node_file,
- incoming_new_repos_relpath,
- incoming_new_pegrev,
- scratch_pool, iterpool));
- }
- svn_pool_destroy(iterpool);
+ description =
+ apr_psprintf(
+ scratch_pool, _("apply changes to move destination '%s'"),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(wcroot_abspath, moved_to_abspath),
+ scratch_pool));
- if (apr_hash_count(wc_move_targets) > 0)
+ if ((incoming_old_kind == svn_node_file ||
+ incoming_old_kind == svn_node_none) &&
+ (incoming_new_kind == svn_node_file ||
+ incoming_new_kind == svn_node_none))
{
- apr_array_header_t *move_target_repos_relpaths;
- const svn_sort__item_t *item;
- apr_array_header_t *moved_to_abspaths;
- const char *description;
- const char *wcroot_abspath;
-
- /* Initialize to the first possible move target. Hopefully,
- * in most cases there will only be one candidate anyway. */
- move_target_repos_relpaths = svn_sort__hash(
- wc_move_targets,
- svn_sort_compare_items_as_paths,
- scratch_pool);
- item = &APR_ARRAY_IDX(move_target_repos_relpaths,
- 0, svn_sort__item_t);
- moved_to_abspaths = item->value;
- details->moved_to_abspath =
- apr_pstrdup(conflict->pool,
- APR_ARRAY_IDX(moved_to_abspaths, 0, const char *));
-
- SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, ctx->wc_ctx,
- conflict->local_abspath,
- scratch_pool, scratch_pool));
- description =
- apr_psprintf(
- scratch_pool, _("apply changes to move destination '%s'"),
- svn_dirent_local_style(
- svn_dirent_skip_ancestor(wcroot_abspath,
- details->moved_to_abspath),
- scratch_pool));
-
add_resolution_option(
options, conflict,
svn_client_conflict_option_local_move_file_text_merge,
@@ -10060,50 +10986,943 @@ configure_option_local_move_file_merge(svn_client_conflict_t *conflict,
description, resolve_local_move_file_merge);
}
else
- details->moved_to_abspath = NULL;
+ {
+ add_resolution_option(
+ options, conflict,
+ svn_client_conflict_option_local_move_dir_merge,
+ _("Apply to move destination"),
+ description, resolve_local_move_dir_merge);
+ }
}
}
return SVN_NO_ERROR;
}
-svn_error_t *
-svn_client_conflict_option_get_moved_to_repos_relpath_candidates(
- apr_array_header_t **possible_moved_to_repos_relpaths,
+/* Configure 'sibling move file/dir merge' resolution option for
+ * a tree conflict. */
+static svn_error_t *
+configure_option_sibling_move_merge(svn_client_conflict_t *conflict,
+ svn_client_ctx_t *ctx,
+ apr_array_header_t *options,
+ apr_pool_t *scratch_pool)
+{
+ svn_wc_operation_t operation;
+ svn_wc_conflict_action_t incoming_change;
+ svn_wc_conflict_reason_t local_change;
+ const char *incoming_old_repos_relpath;
+ svn_revnum_t incoming_old_pegrev;
+ svn_node_kind_t incoming_old_kind;
+ const char *incoming_new_repos_relpath;
+ svn_revnum_t incoming_new_pegrev;
+ svn_node_kind_t incoming_new_kind;
+
+ operation = svn_client_conflict_get_operation(conflict);
+ incoming_change = svn_client_conflict_get_incoming_change(conflict);
+ local_change = svn_client_conflict_get_local_change(conflict);
+ SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
+ &incoming_old_repos_relpath, &incoming_old_pegrev,
+ &incoming_old_kind, conflict, scratch_pool,
+ scratch_pool));
+ SVN_ERR(svn_client_conflict_get_incoming_new_repos_location(
+ &incoming_new_repos_relpath, &incoming_new_pegrev,
+ &incoming_new_kind, conflict, scratch_pool,
+ scratch_pool));
+
+ if (operation == svn_wc_operation_merge &&
+ incoming_change == svn_wc_conflict_action_edit &&
+ local_change == svn_wc_conflict_reason_missing)
+ {
+ struct conflict_tree_local_missing_details *details;
+ const char *wcroot_abspath;
+
+ SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, ctx->wc_ctx,
+ conflict->local_abspath,
+ scratch_pool, scratch_pool));
+
+ details = conflict->tree_conflict_local_details;
+ if (details != NULL && details->wc_siblings != NULL)
+ {
+ const char *description;
+ const char *sibling;
+
+ sibling =
+ apr_pstrdup(conflict->pool,
+ APR_ARRAY_IDX(details->wc_siblings,
+ details->preferred_sibling_idx,
+ const char *));
+ description =
+ apr_psprintf(
+ scratch_pool, _("apply changes to '%s'"),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(wcroot_abspath, sibling),
+ scratch_pool));
+
+ if ((incoming_old_kind == svn_node_file ||
+ incoming_old_kind == svn_node_none) &&
+ (incoming_new_kind == svn_node_file ||
+ incoming_new_kind == svn_node_none))
+ {
+ add_resolution_option(
+ options, conflict,
+ svn_client_conflict_option_sibling_move_file_text_merge,
+ _("Apply to corresponding local location"),
+ description, resolve_local_move_file_merge);
+ }
+ else
+ {
+ add_resolution_option(
+ options, conflict,
+ svn_client_conflict_option_sibling_move_dir_merge,
+ _("Apply to corresponding local location"),
+ description, resolve_local_move_dir_merge);
+ }
+ }
+ }
+
+ return SVN_NO_ERROR;
+}
+
+struct conflict_tree_update_local_moved_away_details {
+ /*
+ * This array consists of "const char *" absolute paths to working copy
+ * nodes which are uncomitted copies and correspond to the repository path
+ * of the conflict victim.
+ * Each such working copy node is a potential local move target which can
+ * be chosen to find a suitable merge target when resolving a tree conflict.
+ *
+ * This may be an empty array in case if there is no move target path in
+ * the working copy. */
+ apr_array_header_t *wc_move_targets;
+
+ /* Current index into the list of working copy paths in WC_MOVE_TARGETS. */
+ int preferred_move_target_idx;
+};
+
+/* Implements conflict_option_resolve_func_t.
+ * Resolve an incoming move vs local move conflict by merging from the
+ * incoming move's target location to the local move's target location,
+ * overriding the incoming move. The original local move was broken during
+ * update/switch, so overriding the incoming move involves recording a new
+ * move from the incoming move's target location to the local move's target
+ * location. */
+static svn_error_t *
+resolve_both_moved_file_update_keep_local_move(
svn_client_conflict_option_t *option,
- apr_pool_t *result_pool,
+ svn_client_conflict_t *conflict,
+ svn_client_ctx_t *ctx,
apr_pool_t *scratch_pool)
{
- svn_client_conflict_t *conflict = option->conflict;
- struct conflict_tree_incoming_delete_details *details;
+ svn_client_conflict_option_id_t option_id;
const char *victim_abspath;
- apr_array_header_t *sorted_repos_relpaths;
- int i;
+ const char *local_moved_to_abspath;
+ svn_wc_operation_t operation;
+ const char *lock_abspath;
+ svn_error_t *err;
+ const char *repos_root_url;
+ const char *incoming_old_repos_relpath;
+ svn_revnum_t incoming_old_pegrev;
+ const char *incoming_new_repos_relpath;
+ svn_revnum_t incoming_new_pegrev;
+ const char *wc_tmpdir;
+ const char *ancestor_abspath;
+ svn_stream_t *ancestor_stream;
+ apr_hash_t *ancestor_props;
+ apr_hash_t *incoming_props;
+ apr_hash_t *local_props;
+ const char *ancestor_url;
+ const char *corrected_url;
+ svn_ra_session_t *ra_session;
+ svn_wc_merge_outcome_t merge_content_outcome;
+ svn_wc_notify_state_t merge_props_outcome;
+ apr_array_header_t *propdiffs;
+ struct conflict_tree_incoming_delete_details *incoming_details;
+ apr_array_header_t *possible_moved_to_abspaths;
+ const char *incoming_moved_to_abspath;
+ struct conflict_tree_update_local_moved_away_details *local_details;
- SVN_ERR_ASSERT(svn_client_conflict_option_get_id(option) ==
- svn_client_conflict_option_incoming_move_file_text_merge ||
- svn_client_conflict_option_get_id(option) ==
- svn_client_conflict_option_incoming_move_dir_merge);
+ victim_abspath = svn_client_conflict_get_local_abspath(conflict);
+ operation = svn_client_conflict_get_operation(conflict);
+ incoming_details = conflict->tree_conflict_incoming_details;
+ if (incoming_details == NULL || incoming_details->moves == NULL)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("The specified conflict resolution option "
+ "requires details for tree conflict at '%s' "
+ "to be fetched from the repository first."),
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+ if (operation == svn_wc_operation_none)
+ return svn_error_createf(SVN_ERR_WC_CORRUPT, NULL,
+ _("Invalid operation code '%d' recorded for "
+ "conflict at '%s'"), operation,
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+
+ option_id = svn_client_conflict_option_get_id(option);
+ SVN_ERR_ASSERT(option_id == svn_client_conflict_option_both_moved_file_merge);
+
+ SVN_ERR(svn_client_conflict_get_repos_info(&repos_root_url, NULL,
+ conflict, scratch_pool,
+ scratch_pool));
+ SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
+ &incoming_old_repos_relpath, &incoming_old_pegrev,
+ NULL, conflict, scratch_pool,
+ scratch_pool));
+ SVN_ERR(svn_client_conflict_get_incoming_new_repos_location(
+ &incoming_new_repos_relpath, &incoming_new_pegrev,
+ NULL, conflict, scratch_pool,
+ scratch_pool));
+
+ /* Set up temporary storage for the common ancestor version of the file. */
+ SVN_ERR(svn_wc__get_tmpdir(&wc_tmpdir, ctx->wc_ctx, victim_abspath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_stream_open_unique(&ancestor_stream,
+ &ancestor_abspath, wc_tmpdir,
+ svn_io_file_del_on_pool_cleanup,
+ scratch_pool, scratch_pool));
+
+ /* Fetch the ancestor file's content. */
+ ancestor_url = svn_path_url_add_component2(repos_root_url,
+ incoming_old_repos_relpath,
+ scratch_pool);
+ SVN_ERR(svn_client__open_ra_session_internal(&ra_session, &corrected_url,
+ ancestor_url, NULL, NULL,
+ FALSE, FALSE, ctx,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_ra_get_file(ra_session, "", incoming_old_pegrev,
+ ancestor_stream, NULL, /* fetched_rev */
+ &ancestor_props, scratch_pool));
+ filter_props(ancestor_props, scratch_pool);
+
+ /* Close stream to flush ancestor file to disk. */
+ SVN_ERR(svn_stream_close(ancestor_stream));
+
+ possible_moved_to_abspaths =
+ svn_hash_gets(incoming_details->wc_move_targets,
+ get_moved_to_repos_relpath(incoming_details, scratch_pool));
+ incoming_moved_to_abspath =
+ APR_ARRAY_IDX(possible_moved_to_abspaths,
+ incoming_details->wc_move_target_idx, const char *);
+
+ local_details = conflict->tree_conflict_local_details;
+ local_moved_to_abspath =
+ APR_ARRAY_IDX(local_details->wc_move_targets,
+ local_details->preferred_move_target_idx, const char *);
+
+ /* ### The following WC modifications should be atomic. */
+ SVN_ERR(svn_wc__acquire_write_lock_for_resolve(
+ &lock_abspath, ctx->wc_ctx,
+ svn_dirent_get_longest_ancestor(victim_abspath,
+ local_moved_to_abspath,
+ scratch_pool),
+ scratch_pool, scratch_pool));
+
+ /* Get a copy of the incoming moved item's properties. */
+ err = svn_wc_prop_list2(&incoming_props, ctx->wc_ctx,
+ incoming_moved_to_abspath,
+ scratch_pool, scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ /* Get a copy of the local move target's properties. */
+ err = svn_wc_prop_list2(&local_props, ctx->wc_ctx,
+ local_moved_to_abspath,
+ scratch_pool, scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ /* Create a property diff for the files. */
+ err = svn_prop_diffs(&propdiffs, incoming_props, local_props,
+ scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ /* Perform the file merge. */
+ err = svn_wc_merge5(&merge_content_outcome, &merge_props_outcome,
+ ctx->wc_ctx, ancestor_abspath,
+ incoming_moved_to_abspath, local_moved_to_abspath,
+ NULL, NULL, NULL, /* labels */
+ NULL, NULL, /* conflict versions */
+ FALSE, /* dry run */
+ NULL, NULL, /* diff3_cmd, merge_options */
+ apr_hash_count(ancestor_props) ? ancestor_props : NULL,
+ propdiffs,
+ NULL, NULL, /* conflict func/baton */
+ NULL, NULL, /* don't allow user to cancel here */
+ scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ if (ctx->notify_func2)
+ {
+ svn_wc_notify_t *notify;
+
+ /* Tell the world about the file merge that just happened. */
+ notify = svn_wc_create_notify(local_moved_to_abspath,
+ svn_wc_notify_update_update,
+ scratch_pool);
+ if (merge_content_outcome == svn_wc_merge_conflict)
+ notify->content_state = svn_wc_notify_state_conflicted;
+ else
+ notify->content_state = svn_wc_notify_state_merged;
+ notify->prop_state = merge_props_outcome;
+ notify->kind = svn_node_file;
+ ctx->notify_func2(ctx->notify_baton2, notify, scratch_pool);
+ }
+
+ /* Record a new move which overrides the incoming move. */
+ err = svn_wc__move2(ctx->wc_ctx, incoming_moved_to_abspath,
+ local_moved_to_abspath,
+ TRUE, /* meta-data only move */
+ FALSE, /* mixed-revisions don't apply to files */
+ NULL, NULL, /* don't allow user to cancel here */
+ NULL, NULL, /* no extra notification */
+ scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ /* Remove moved-away file from disk. */
+ err = svn_io_remove_file2(incoming_moved_to_abspath, TRUE, scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ err = svn_wc__del_tree_conflict(ctx->wc_ctx, victim_abspath, scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ if (ctx->notify_func2)
+ {
+ svn_wc_notify_t *notify;
+
+ notify = svn_wc_create_notify(victim_abspath, svn_wc_notify_resolved_tree,
+ scratch_pool);
+ ctx->notify_func2(ctx->notify_baton2, notify, scratch_pool);
+ }
+
+ svn_io_sleep_for_timestamps(local_moved_to_abspath, scratch_pool);
+
+ conflict->resolution_tree = option_id;
+
+unlock_wc:
+ err = svn_error_compose_create(err, svn_wc__release_write_lock(ctx->wc_ctx,
+ lock_abspath,
+ scratch_pool));
+ SVN_ERR(err);
+
+ return SVN_NO_ERROR;
+}
+
+/* Implements conflict_option_resolve_func_t.
+ * Resolve an incoming move vs local move conflict by merging from the
+ * local move's target location to the incoming move's target location,
+ * and reverting the local move. */
+static svn_error_t *
+resolve_both_moved_file_update_keep_incoming_move(
+ svn_client_conflict_option_t *option,
+ svn_client_conflict_t *conflict,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ svn_client_conflict_option_id_t option_id;
+ const char *victim_abspath;
+ const char *local_moved_to_abspath;
+ svn_wc_operation_t operation;
+ const char *lock_abspath;
+ svn_error_t *err;
+ const char *repos_root_url;
+ const char *incoming_old_repos_relpath;
+ svn_revnum_t incoming_old_pegrev;
+ const char *incoming_new_repos_relpath;
+ svn_revnum_t incoming_new_pegrev;
+ const char *wc_tmpdir;
+ const char *ancestor_abspath;
+ svn_stream_t *ancestor_stream;
+ apr_hash_t *ancestor_props;
+ apr_hash_t *incoming_props;
+ apr_hash_t *local_props;
+ const char *ancestor_url;
+ const char *corrected_url;
+ svn_ra_session_t *ra_session;
+ svn_wc_merge_outcome_t merge_content_outcome;
+ svn_wc_notify_state_t merge_props_outcome;
+ apr_array_header_t *propdiffs;
+ struct conflict_tree_incoming_delete_details *incoming_details;
+ apr_array_header_t *possible_moved_to_abspaths;
+ const char *incoming_moved_to_abspath;
+ struct conflict_tree_update_local_moved_away_details *local_details;
victim_abspath = svn_client_conflict_get_local_abspath(conflict);
- details = conflict->tree_conflict_incoming_details;
- if (details == NULL || details->wc_move_targets == NULL)
+ operation = svn_client_conflict_get_operation(conflict);
+ incoming_details = conflict->tree_conflict_incoming_details;
+ if (incoming_details == NULL || incoming_details->moves == NULL)
return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
- _("Getting a list of possible move targets "
+ _("The specified conflict resolution option "
"requires details for tree conflict at '%s' "
- "to be fetched from the repository first"),
+ "to be fetched from the repository first."),
svn_dirent_local_style(victim_abspath,
scratch_pool));
+ if (operation == svn_wc_operation_none)
+ return svn_error_createf(SVN_ERR_WC_CORRUPT, NULL,
+ _("Invalid operation code '%d' recorded for "
+ "conflict at '%s'"), operation,
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+
+ option_id = svn_client_conflict_option_get_id(option);
+ SVN_ERR_ASSERT(option_id ==
+ svn_client_conflict_option_both_moved_file_move_merge);
+
+ SVN_ERR(svn_client_conflict_get_repos_info(&repos_root_url, NULL,
+ conflict, scratch_pool,
+ scratch_pool));
+ SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
+ &incoming_old_repos_relpath, &incoming_old_pegrev,
+ NULL, conflict, scratch_pool,
+ scratch_pool));
+ SVN_ERR(svn_client_conflict_get_incoming_new_repos_location(
+ &incoming_new_repos_relpath, &incoming_new_pegrev,
+ NULL, conflict, scratch_pool,
+ scratch_pool));
+
+ /* Set up temporary storage for the common ancestor version of the file. */
+ SVN_ERR(svn_wc__get_tmpdir(&wc_tmpdir, ctx->wc_ctx, victim_abspath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_stream_open_unique(&ancestor_stream,
+ &ancestor_abspath, wc_tmpdir,
+ svn_io_file_del_on_pool_cleanup,
+ scratch_pool, scratch_pool));
+
+ /* Fetch the ancestor file's content. */
+ ancestor_url = svn_path_url_add_component2(repos_root_url,
+ incoming_old_repos_relpath,
+ scratch_pool);
+ SVN_ERR(svn_client__open_ra_session_internal(&ra_session, &corrected_url,
+ ancestor_url, NULL, NULL,
+ FALSE, FALSE, ctx,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_ra_get_file(ra_session, "", incoming_old_pegrev,
+ ancestor_stream, NULL, /* fetched_rev */
+ &ancestor_props, scratch_pool));
+ filter_props(ancestor_props, scratch_pool);
+
+ /* Close stream to flush ancestor file to disk. */
+ SVN_ERR(svn_stream_close(ancestor_stream));
+
+ possible_moved_to_abspaths =
+ svn_hash_gets(incoming_details->wc_move_targets,
+ get_moved_to_repos_relpath(incoming_details, scratch_pool));
+ incoming_moved_to_abspath =
+ APR_ARRAY_IDX(possible_moved_to_abspaths,
+ incoming_details->wc_move_target_idx, const char *);
+
+ local_details = conflict->tree_conflict_local_details;
+ local_moved_to_abspath =
+ APR_ARRAY_IDX(local_details->wc_move_targets,
+ local_details->preferred_move_target_idx, const char *);
+
+ /* ### The following WC modifications should be atomic. */
+ SVN_ERR(svn_wc__acquire_write_lock_for_resolve(
+ &lock_abspath, ctx->wc_ctx,
+ svn_dirent_get_longest_ancestor(victim_abspath,
+ local_moved_to_abspath,
+ scratch_pool),
+ scratch_pool, scratch_pool));
+
+ /* Get a copy of the incoming moved item's properties. */
+ err = svn_wc_prop_list2(&incoming_props, ctx->wc_ctx,
+ incoming_moved_to_abspath,
+ scratch_pool, scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ /* Get a copy of the local move target's properties. */
+ err = svn_wc_prop_list2(&local_props, ctx->wc_ctx,
+ local_moved_to_abspath,
+ scratch_pool, scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ /* Create a property diff for the files. */
+ err = svn_prop_diffs(&propdiffs, incoming_props, local_props,
+ scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ /* Perform the file merge. */
+ err = svn_wc_merge5(&merge_content_outcome, &merge_props_outcome,
+ ctx->wc_ctx, ancestor_abspath,
+ local_moved_to_abspath, incoming_moved_to_abspath,
+ NULL, NULL, NULL, /* labels */
+ NULL, NULL, /* conflict versions */
+ FALSE, /* dry run */
+ NULL, NULL, /* diff3_cmd, merge_options */
+ apr_hash_count(ancestor_props) ? ancestor_props : NULL,
+ propdiffs,
+ NULL, NULL, /* conflict func/baton */
+ NULL, NULL, /* don't allow user to cancel here */
+ scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ if (ctx->notify_func2)
+ {
+ svn_wc_notify_t *notify;
+
+ /* Tell the world about the file merge that just happened. */
+ notify = svn_wc_create_notify(local_moved_to_abspath,
+ svn_wc_notify_update_update,
+ scratch_pool);
+ if (merge_content_outcome == svn_wc_merge_conflict)
+ notify->content_state = svn_wc_notify_state_conflicted;
+ else
+ notify->content_state = svn_wc_notify_state_merged;
+ notify->prop_state = merge_props_outcome;
+ notify->kind = svn_node_file;
+ ctx->notify_func2(ctx->notify_baton2, notify, scratch_pool);
+ }
+
+ /* Revert the copy-half of the local move. The delete-half of this move
+ * has already been deleted during the update/switch operation. */
+ err = svn_wc_revert6(ctx->wc_ctx, local_moved_to_abspath, svn_depth_empty,
+ FALSE, NULL, TRUE, FALSE,
+ TRUE /*added_keep_local*/,
+ NULL, NULL, /* no cancellation */
+ ctx->notify_func2, ctx->notify_baton2,
+ scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ err = svn_wc__del_tree_conflict(ctx->wc_ctx, victim_abspath, scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ if (ctx->notify_func2)
+ {
+ svn_wc_notify_t *notify;
+
+ notify = svn_wc_create_notify(victim_abspath, svn_wc_notify_resolved_tree,
+ scratch_pool);
+ ctx->notify_func2(ctx->notify_baton2, notify, scratch_pool);
+ }
+
+ svn_io_sleep_for_timestamps(local_moved_to_abspath, scratch_pool);
+
+ conflict->resolution_tree = option_id;
+
+unlock_wc:
+ err = svn_error_compose_create(err, svn_wc__release_write_lock(ctx->wc_ctx,
+ lock_abspath,
+ scratch_pool));
+ SVN_ERR(err);
+
+ return SVN_NO_ERROR;
+}
+
+/* Implements tree_conflict_get_details_func_t. */
+static svn_error_t *
+conflict_tree_get_details_update_local_moved_away(
+ svn_client_conflict_t *conflict,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ struct conflict_tree_update_local_moved_away_details *details;
+ const char *incoming_old_repos_relpath;
+ svn_node_kind_t incoming_old_kind;
+
+ SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
+ &incoming_old_repos_relpath, NULL, &incoming_old_kind,
+ conflict, scratch_pool, scratch_pool));
+
+ details = apr_pcalloc(conflict->pool, sizeof(*details));
+
+ details->wc_move_targets = apr_array_make(conflict->pool, 1,
+ sizeof(const char *));
+
+ /* Search the WC for copies of the conflict victim. */
+ SVN_ERR(svn_wc__find_copies_of_repos_path(&details->wc_move_targets,
+ conflict->local_abspath,
+ incoming_old_repos_relpath,
+ incoming_old_kind,
+ ctx->wc_ctx,
+ conflict->pool,
+ scratch_pool));
+
+ conflict->tree_conflict_local_details = details;
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+get_both_moved_file_paths(const char **incoming_moved_to_abspath,
+ const char **local_moved_to_abspath,
+ svn_client_conflict_t *conflict,
+ apr_pool_t *scratch_pool)
+{
+ struct conflict_tree_incoming_delete_details *incoming_details;
+ apr_array_header_t *incoming_move_target_wc_abspaths;
+ svn_wc_operation_t operation;
+
+ operation = svn_client_conflict_get_operation(conflict);
+
+ *incoming_moved_to_abspath = NULL;
+ *local_moved_to_abspath = NULL;
+
+ incoming_details = conflict->tree_conflict_incoming_details;
+ if (incoming_details == NULL || incoming_details->moves == NULL ||
+ apr_hash_count(incoming_details->wc_move_targets) == 0)
+ return SVN_NO_ERROR;
+
+ incoming_move_target_wc_abspaths =
+ svn_hash_gets(incoming_details->wc_move_targets,
+ get_moved_to_repos_relpath(incoming_details,
+ scratch_pool));
+ *incoming_moved_to_abspath =
+ APR_ARRAY_IDX(incoming_move_target_wc_abspaths,
+ incoming_details->wc_move_target_idx, const char *);
+
+ if (operation == svn_wc_operation_merge)
+ {
+ struct conflict_tree_local_missing_details *local_details;
+ apr_array_header_t *local_moves;
+
+ local_details = conflict->tree_conflict_local_details;
+ if (local_details == NULL ||
+ apr_hash_count(local_details->wc_move_targets) == 0)
+ return SVN_NO_ERROR;
+
+ local_moves = svn_hash_gets(local_details->wc_move_targets,
+ local_details->move_target_repos_relpath);
+ *local_moved_to_abspath =
+ APR_ARRAY_IDX(local_moves, local_details->wc_move_target_idx,
+ const char *);
+ }
+ else
+ {
+ struct conflict_tree_update_local_moved_away_details *local_details;
+
+ local_details = conflict->tree_conflict_local_details;
+ if (local_details == NULL ||
+ local_details->wc_move_targets->nelts == 0)
+ return SVN_NO_ERROR;
+
+ *local_moved_to_abspath =
+ APR_ARRAY_IDX(local_details->wc_move_targets,
+ local_details->preferred_move_target_idx,
+ const char *);
+ }
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+conflict_tree_get_description_update_both_moved_file_merge(
+ const char **description,
+ svn_client_conflict_t *conflict,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ const char *incoming_moved_to_abspath;
+ const char *local_moved_to_abspath;
+ svn_wc_operation_t operation;
+ const char *wcroot_abspath;
+
+ *description = NULL;
+
+ SVN_ERR(get_both_moved_file_paths(&incoming_moved_to_abspath,
+ &local_moved_to_abspath,
+ conflict, scratch_pool));
+ if (incoming_moved_to_abspath == NULL || local_moved_to_abspath == NULL)
+ return SVN_NO_ERROR;
+
+ SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, ctx->wc_ctx,
+ conflict->local_abspath, scratch_pool,
+ scratch_pool));
+
+ operation = svn_client_conflict_get_operation(conflict);
+
+ if (operation == svn_wc_operation_merge)
+ {
+ /* In case of a merge, the incoming move has A+ (copied) status... */
+ *description =
+ apr_psprintf(
+ scratch_pool,
+ _("apply changes to '%s' and revert addition of '%s'"),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(wcroot_abspath, local_moved_to_abspath),
+ scratch_pool),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(wcroot_abspath, incoming_moved_to_abspath),
+ scratch_pool));
+ }
+ else
+ {
+ /* ...but in case of update/switch the local move has "A+" status. */
+ *description =
+ apr_psprintf(
+ scratch_pool,
+ _("override incoming move and merge incoming changes from '%s' "
+ "to '%s'"),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(wcroot_abspath, incoming_moved_to_abspath),
+ scratch_pool),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(wcroot_abspath, local_moved_to_abspath),
+ scratch_pool));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+conflict_tree_get_description_update_both_moved_file_move_merge(
+ const char **description,
+ svn_client_conflict_t *conflict,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ const char *incoming_moved_to_abspath;
+ const char *local_moved_to_abspath;
+ svn_wc_operation_t operation;
+ const char *wcroot_abspath;
+
+ *description = NULL;
+
+ SVN_ERR(get_both_moved_file_paths(&incoming_moved_to_abspath,
+ &local_moved_to_abspath,
+ conflict, scratch_pool));
+ if (incoming_moved_to_abspath == NULL || local_moved_to_abspath == NULL)
+ return SVN_NO_ERROR;
+
+ SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, ctx->wc_ctx,
+ conflict->local_abspath, scratch_pool,
+ scratch_pool));
+
+ operation = svn_client_conflict_get_operation(conflict);
+
+ if (operation == svn_wc_operation_merge)
+ {
+ SVN_ERR(describe_incoming_move_merge_conflict_option(
+ description, conflict, ctx, local_moved_to_abspath,
+ scratch_pool, scratch_pool));
+ }
+ else
+ {
+ *description =
+ apr_psprintf(
+ scratch_pool,
+ _("accept incoming move and merge local changes from "
+ "'%s' to '%s'"),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(wcroot_abspath, local_moved_to_abspath),
+ scratch_pool),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(wcroot_abspath, incoming_moved_to_abspath),
+ scratch_pool));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Configure 'both moved file merge' resolution options for a tree conflict. */
+static svn_error_t *
+configure_option_both_moved_file_merge(svn_client_conflict_t *conflict,
+ svn_client_ctx_t *ctx,
+ apr_array_header_t *options,
+ apr_pool_t *scratch_pool)
+{
+ svn_wc_operation_t operation;
+ svn_node_kind_t victim_node_kind;
+ svn_wc_conflict_action_t incoming_change;
+ svn_wc_conflict_reason_t local_change;
+ const char *incoming_old_repos_relpath;
+ svn_revnum_t incoming_old_pegrev;
+ svn_node_kind_t incoming_old_kind;
+ const char *incoming_new_repos_relpath;
+ svn_revnum_t incoming_new_pegrev;
+ svn_node_kind_t incoming_new_kind;
+ const char *wcroot_abspath;
+
+ SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, ctx->wc_ctx,
+ conflict->local_abspath, scratch_pool,
+ scratch_pool));
+
+ operation = svn_client_conflict_get_operation(conflict);
+ victim_node_kind = svn_client_conflict_tree_get_victim_node_kind(conflict);
+ incoming_change = svn_client_conflict_get_incoming_change(conflict);
+ local_change = svn_client_conflict_get_local_change(conflict);
+ SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
+ &incoming_old_repos_relpath, &incoming_old_pegrev,
+ &incoming_old_kind, conflict, scratch_pool,
+ scratch_pool));
+ SVN_ERR(svn_client_conflict_get_incoming_new_repos_location(
+ &incoming_new_repos_relpath, &incoming_new_pegrev,
+ &incoming_new_kind, conflict, scratch_pool,
+ scratch_pool));
+
+ /* ### what about the switch operation? */
+ if (((operation == svn_wc_operation_merge &&
+ victim_node_kind == svn_node_none) ||
+ (operation == svn_wc_operation_update &&
+ victim_node_kind == svn_node_file)) &&
+ incoming_old_kind == svn_node_file &&
+ incoming_new_kind == svn_node_none &&
+ ((operation == svn_wc_operation_merge &&
+ local_change == svn_wc_conflict_reason_missing) ||
+ (operation == svn_wc_operation_update &&
+ local_change == svn_wc_conflict_reason_moved_away)) &&
+ incoming_change == svn_wc_conflict_action_delete)
+ {
+ const char *description;
+
+ SVN_ERR(conflict_tree_get_description_update_both_moved_file_merge(
+ &description, conflict, ctx, conflict->pool, scratch_pool));
+
+ if (description == NULL) /* details not fetched yet */
+ return SVN_NO_ERROR;
+
+ add_resolution_option(
+ options, conflict, svn_client_conflict_option_both_moved_file_merge,
+ _("Merge to corresponding local location"),
+ description,
+ operation == svn_wc_operation_merge ?
+ resolve_both_moved_file_text_merge :
+ resolve_both_moved_file_update_keep_local_move);
+
+ SVN_ERR(conflict_tree_get_description_update_both_moved_file_move_merge(
+ &description, conflict, ctx, conflict->pool, scratch_pool));
+
+ add_resolution_option(options, conflict,
+ svn_client_conflict_option_both_moved_file_move_merge,
+ _("Move and merge"), description,
+ operation == svn_wc_operation_merge ?
+ resolve_incoming_move_file_text_merge :
+ resolve_both_moved_file_update_keep_incoming_move);
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Configure 'both moved dir merge' resolution options for a tree conflict. */
+static svn_error_t *
+configure_option_both_moved_dir_merge(svn_client_conflict_t *conflict,
+ svn_client_ctx_t *ctx,
+ apr_array_header_t *options,
+ apr_pool_t *scratch_pool)
+{
+ svn_wc_operation_t operation;
+ svn_node_kind_t victim_node_kind;
+ svn_wc_conflict_action_t incoming_change;
+ svn_wc_conflict_reason_t local_change;
+ const char *incoming_old_repos_relpath;
+ svn_revnum_t incoming_old_pegrev;
+ svn_node_kind_t incoming_old_kind;
+ const char *incoming_new_repos_relpath;
+ svn_revnum_t incoming_new_pegrev;
+ svn_node_kind_t incoming_new_kind;
+ const char *wcroot_abspath;
+
+ SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, ctx->wc_ctx,
+ conflict->local_abspath, scratch_pool,
+ scratch_pool));
+
+ operation = svn_client_conflict_get_operation(conflict);
+ victim_node_kind = svn_client_conflict_tree_get_victim_node_kind(conflict);
+ incoming_change = svn_client_conflict_get_incoming_change(conflict);
+ local_change = svn_client_conflict_get_local_change(conflict);
+ SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
+ &incoming_old_repos_relpath, &incoming_old_pegrev,
+ &incoming_old_kind, conflict, scratch_pool,
+ scratch_pool));
+ SVN_ERR(svn_client_conflict_get_incoming_new_repos_location(
+ &incoming_new_repos_relpath, &incoming_new_pegrev,
+ &incoming_new_kind, conflict, scratch_pool,
+ scratch_pool));
+
+ if (operation == svn_wc_operation_merge &&
+ victim_node_kind == svn_node_none &&
+ incoming_old_kind == svn_node_dir &&
+ incoming_new_kind == svn_node_none &&
+ local_change == svn_wc_conflict_reason_missing &&
+ incoming_change == svn_wc_conflict_action_delete)
+ {
+ struct conflict_tree_incoming_delete_details *incoming_details;
+ struct conflict_tree_local_missing_details *local_details;
+ const char *description;
+ apr_array_header_t *local_moves;
+ const char *local_moved_to_abspath;
+ const char *incoming_moved_to_abspath;
+ apr_array_header_t *incoming_move_target_wc_abspaths;
+
+ incoming_details = conflict->tree_conflict_incoming_details;
+ if (incoming_details == NULL || incoming_details->moves == NULL ||
+ apr_hash_count(incoming_details->wc_move_targets) == 0)
+ return SVN_NO_ERROR;
+
+ local_details = conflict->tree_conflict_local_details;
+ if (local_details == NULL ||
+ apr_hash_count(local_details->wc_move_targets) == 0)
+ return SVN_NO_ERROR;
+
+ local_moves = svn_hash_gets(local_details->wc_move_targets,
+ local_details->move_target_repos_relpath);
+ local_moved_to_abspath =
+ APR_ARRAY_IDX(local_moves, local_details->wc_move_target_idx,
+ const char *);
+
+ incoming_move_target_wc_abspaths =
+ svn_hash_gets(incoming_details->wc_move_targets,
+ get_moved_to_repos_relpath(incoming_details,
+ scratch_pool));
+ incoming_moved_to_abspath =
+ APR_ARRAY_IDX(incoming_move_target_wc_abspaths,
+ incoming_details->wc_move_target_idx, const char *);
+
+ description =
+ apr_psprintf(
+ scratch_pool, _("apply changes to '%s' and revert addition of '%s'"),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(wcroot_abspath, local_moved_to_abspath),
+ scratch_pool),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(wcroot_abspath, incoming_moved_to_abspath),
+ scratch_pool));
+ add_resolution_option(
+ options, conflict, svn_client_conflict_option_both_moved_dir_merge,
+ _("Merge to corresponding local location"),
+ description, resolve_both_moved_dir_merge);
+
+ SVN_ERR(describe_incoming_move_merge_conflict_option(
+ &description, conflict, ctx, local_moved_to_abspath,
+ scratch_pool, scratch_pool));
+ add_resolution_option(options, conflict,
+ svn_client_conflict_option_both_moved_dir_move_merge,
+ _("Move and merge"), description,
+ resolve_both_moved_dir_move_merge);
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Return a copy of the repos replath candidate list. */
+static svn_error_t *
+get_repos_relpath_candidates(
+ apr_array_header_t **possible_moved_to_repos_relpaths,
+ apr_hash_t *wc_move_targets,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ apr_array_header_t *sorted_repos_relpaths;
+ int i;
- /* Return a copy of the repos replath candidate list. */
- sorted_repos_relpaths = svn_sort__hash(details->wc_move_targets,
+ sorted_repos_relpaths = svn_sort__hash(wc_move_targets,
svn_sort_compare_items_as_paths,
scratch_pool);
- *possible_moved_to_repos_relpaths = apr_array_make(
- result_pool,
- sorted_repos_relpaths->nelts,
- sizeof (const char *));
+ *possible_moved_to_repos_relpaths =
+ apr_array_make(result_pool, sorted_repos_relpaths->nelts,
+ sizeof (const char *));
for (i = 0; i < sorted_repos_relpaths->nelts; i++)
{
svn_sort__item_t item;
@@ -10119,37 +11938,115 @@ svn_client_conflict_option_get_moved_to_repos_relpath_candidates(
}
svn_error_t *
-svn_client_conflict_option_set_moved_to_repos_relpath(
+svn_client_conflict_option_get_moved_to_repos_relpath_candidates2(
+ apr_array_header_t **possible_moved_to_repos_relpaths,
svn_client_conflict_option_t *option,
- int preferred_move_target_idx,
- svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
svn_client_conflict_t *conflict = option->conflict;
- struct conflict_tree_incoming_delete_details *details;
const char *victim_abspath;
+ svn_wc_operation_t operation;
+ svn_wc_conflict_action_t incoming_change;
+ svn_wc_conflict_reason_t local_change;
+ svn_client_conflict_option_id_t id;
+
+ id = svn_client_conflict_option_get_id(option);
+ if (id != svn_client_conflict_option_incoming_move_file_text_merge &&
+ id != svn_client_conflict_option_incoming_move_dir_merge &&
+ id != svn_client_conflict_option_local_move_file_text_merge &&
+ id != svn_client_conflict_option_local_move_dir_merge &&
+ id != svn_client_conflict_option_sibling_move_file_text_merge &&
+ id != svn_client_conflict_option_sibling_move_dir_merge &&
+ id != svn_client_conflict_option_both_moved_file_merge &&
+ id != svn_client_conflict_option_both_moved_file_move_merge &&
+ id != svn_client_conflict_option_both_moved_dir_merge &&
+ id != svn_client_conflict_option_both_moved_dir_move_merge)
+ {
+ /* We cannot operate on this option. */
+ *possible_moved_to_repos_relpaths = NULL;
+ return SVN_NO_ERROR;
+ }
+
+ victim_abspath = svn_client_conflict_get_local_abspath(conflict);
+ operation = svn_client_conflict_get_operation(conflict);
+ incoming_change = svn_client_conflict_get_incoming_change(conflict);
+ local_change = svn_client_conflict_get_local_change(conflict);
+
+ if (operation == svn_wc_operation_merge &&
+ incoming_change == svn_wc_conflict_action_edit &&
+ local_change == svn_wc_conflict_reason_missing)
+ {
+ struct conflict_tree_local_missing_details *details;
+
+ details = conflict->tree_conflict_local_details;
+ if (details == NULL ||
+ (details->wc_move_targets == NULL && details->wc_siblings == NULL))
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Getting a list of possible move targets "
+ "requires details for tree conflict at '%s' "
+ "to be fetched from the repository first"),
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+
+ if (details->wc_move_targets)
+ SVN_ERR(get_repos_relpath_candidates(possible_moved_to_repos_relpaths,
+ details->wc_move_targets,
+ result_pool, scratch_pool));
+ else
+ *possible_moved_to_repos_relpaths = NULL;
+ }
+ else
+ {
+ struct conflict_tree_incoming_delete_details *details;
+
+ details = conflict->tree_conflict_incoming_details;
+ if (details == NULL || details->wc_move_targets == NULL)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Getting a list of possible move targets "
+ "requires details for tree conflict at '%s' "
+ "to be fetched from the repository first"),
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+
+ SVN_ERR(get_repos_relpath_candidates(possible_moved_to_repos_relpaths,
+ details->wc_move_targets,
+ result_pool, scratch_pool));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client_conflict_option_get_moved_to_repos_relpath_candidates(
+ apr_array_header_t **possible_moved_to_repos_relpaths,
+ svn_client_conflict_option_t *option,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ /* The only difference to API version 2 is an assertion failure if
+ * an unexpected option is passed.
+ * We do not emulate this old behaviour since clients written against
+ * the previous API will just keep working. */
+ return svn_error_trace(
+ svn_client_conflict_option_get_moved_to_repos_relpath_candidates2(
+ possible_moved_to_repos_relpaths, option, result_pool, scratch_pool));
+}
+
+static svn_error_t *
+set_wc_move_target(const char **new_hash_key,
+ apr_hash_t *wc_move_targets,
+ int preferred_move_target_idx,
+ const char *victim_abspath,
+ apr_pool_t *scratch_pool)
+{
apr_array_header_t *move_target_repos_relpaths;
svn_sort__item_t item;
const char *move_target_repos_relpath;
apr_hash_index_t *hi;
- SVN_ERR_ASSERT(svn_client_conflict_option_get_id(option) ==
- svn_client_conflict_option_incoming_move_file_text_merge ||
- svn_client_conflict_option_get_id(option) ==
- svn_client_conflict_option_incoming_move_dir_merge);
-
- victim_abspath = svn_client_conflict_get_local_abspath(conflict);
- details = conflict->tree_conflict_incoming_details;
- if (details == NULL || details->wc_move_targets == NULL)
- return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
- _("Setting a move target requires details "
- "for tree conflict at '%s' to be fetched "
- "from the repository first"),
- svn_dirent_local_style(victim_abspath,
- scratch_pool));
-
if (preferred_move_target_idx < 0 ||
- preferred_move_target_idx >= apr_hash_count(details->wc_move_targets))
+ preferred_move_target_idx >= apr_hash_count(wc_move_targets))
return svn_error_createf(SVN_ERR_INCORRECT_PARAMS, NULL,
_("Index '%d' is out of bounds of the possible "
"move target list for '%s'"),
@@ -10158,15 +12055,14 @@ svn_client_conflict_option_set_moved_to_repos_relpath(
scratch_pool));
/* Translate the index back into a hash table key. */
- move_target_repos_relpaths =
- svn_sort__hash(details->wc_move_targets,
- svn_sort_compare_items_as_paths,
- scratch_pool);
+ move_target_repos_relpaths = svn_sort__hash(wc_move_targets,
+ svn_sort_compare_items_as_paths,
+ scratch_pool);
item = APR_ARRAY_IDX(move_target_repos_relpaths, preferred_move_target_idx,
svn_sort__item_t);
move_target_repos_relpath = item.key;
/* Find our copy of the hash key and remember the user's preference. */
- for (hi = apr_hash_first(scratch_pool, details->wc_move_targets);
+ for (hi = apr_hash_first(scratch_pool, wc_move_targets);
hi != NULL;
hi = apr_hash_next(hi))
{
@@ -10174,15 +12070,7 @@ svn_client_conflict_option_set_moved_to_repos_relpath(
if (strcmp(move_target_repos_relpath, repos_relpath) == 0)
{
- details->move_target_repos_relpath = repos_relpath;
- /* Update option description. */
- SVN_ERR(describe_incoming_move_merge_conflict_option(
- &option->description,
- conflict, ctx,
- details,
- conflict->pool,
- scratch_pool));
-
+ *new_hash_key = repos_relpath;
return SVN_NO_ERROR;
}
}
@@ -10196,107 +12084,501 @@ svn_client_conflict_option_set_moved_to_repos_relpath(
}
svn_error_t *
-svn_client_conflict_option_get_moved_to_abspath_candidates(
+svn_client_conflict_option_set_moved_to_repos_relpath2(
+ svn_client_conflict_option_t *option,
+ int preferred_move_target_idx,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ svn_client_conflict_t *conflict = option->conflict;
+ const char *victim_abspath;
+ svn_wc_operation_t operation;
+ svn_wc_conflict_action_t incoming_change;
+ svn_wc_conflict_reason_t local_change;
+ svn_client_conflict_option_id_t id;
+
+ id = svn_client_conflict_option_get_id(option);
+ if (id != svn_client_conflict_option_incoming_move_file_text_merge &&
+ id != svn_client_conflict_option_incoming_move_dir_merge &&
+ id != svn_client_conflict_option_local_move_file_text_merge &&
+ id != svn_client_conflict_option_local_move_dir_merge &&
+ id != svn_client_conflict_option_sibling_move_file_text_merge &&
+ id != svn_client_conflict_option_sibling_move_dir_merge &&
+ id != svn_client_conflict_option_both_moved_file_merge &&
+ id != svn_client_conflict_option_both_moved_file_move_merge &&
+ id != svn_client_conflict_option_both_moved_dir_merge &&
+ id != svn_client_conflict_option_both_moved_dir_move_merge)
+ return SVN_NO_ERROR; /* We cannot operate on this option. Nothing to do. */
+
+ victim_abspath = svn_client_conflict_get_local_abspath(conflict);
+ operation = svn_client_conflict_get_operation(conflict);
+ incoming_change = svn_client_conflict_get_incoming_change(conflict);
+ local_change = svn_client_conflict_get_local_change(conflict);
+
+ if (operation == svn_wc_operation_merge &&
+ incoming_change == svn_wc_conflict_action_edit &&
+ local_change == svn_wc_conflict_reason_missing)
+ {
+ struct conflict_tree_local_missing_details *details;
+
+ details = conflict->tree_conflict_local_details;
+ if (details == NULL || details->wc_move_targets == NULL)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Setting a move target requires details "
+ "for tree conflict at '%s' to be fetched "
+ "from the repository first"),
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+
+ SVN_ERR(set_wc_move_target(&details->move_target_repos_relpath,
+ details->wc_move_targets,
+ preferred_move_target_idx,
+ victim_abspath, scratch_pool));
+ details->wc_move_target_idx = 0;
+
+ /* Update option description. */
+ SVN_ERR(conflict_tree_get_description_local_missing(
+ &option->description, conflict, ctx,
+ conflict->pool, scratch_pool));
+ }
+ else
+ {
+ struct conflict_tree_incoming_delete_details *details;
+ apr_array_header_t *move_target_wc_abspaths;
+ const char *moved_to_abspath;
+
+ details = conflict->tree_conflict_incoming_details;
+ if (details == NULL || details->wc_move_targets == NULL)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Setting a move target requires details "
+ "for tree conflict at '%s' to be fetched "
+ "from the repository first"),
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+
+ SVN_ERR(set_wc_move_target(&details->move_target_repos_relpath,
+ details->wc_move_targets,
+ preferred_move_target_idx,
+ victim_abspath, scratch_pool));
+ details->wc_move_target_idx = 0;
+
+ /* Update option description. */
+ move_target_wc_abspaths =
+ svn_hash_gets(details->wc_move_targets,
+ get_moved_to_repos_relpath(details, scratch_pool));
+ moved_to_abspath = APR_ARRAY_IDX(move_target_wc_abspaths,
+ details->wc_move_target_idx,
+ const char *);
+ SVN_ERR(describe_incoming_move_merge_conflict_option(
+ &option->description,
+ conflict, ctx,
+ moved_to_abspath,
+ conflict->pool,
+ scratch_pool));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client_conflict_option_set_moved_to_repos_relpath(
+ svn_client_conflict_option_t *option,
+ int preferred_move_target_idx,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ /* The only difference to API version 2 is an assertion failure if
+ * an unexpected option is passed.
+ * We do not emulate this old behaviour since clients written against
+ * the previous API will just keep working. */
+ return svn_error_trace(
+ svn_client_conflict_option_set_moved_to_repos_relpath2(option,
+ preferred_move_target_idx, ctx, scratch_pool));
+}
+
+svn_error_t *
+svn_client_conflict_option_get_moved_to_abspath_candidates2(
apr_array_header_t **possible_moved_to_abspaths,
svn_client_conflict_option_t *option,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
svn_client_conflict_t *conflict = option->conflict;
- struct conflict_tree_incoming_delete_details *details;
const char *victim_abspath;
- apr_array_header_t *move_target_wc_abspaths;
+ svn_wc_operation_t operation;
+ svn_wc_conflict_action_t incoming_change;
+ svn_wc_conflict_reason_t local_change;
int i;
+ svn_client_conflict_option_id_t id;
- SVN_ERR_ASSERT(svn_client_conflict_option_get_id(option) ==
- svn_client_conflict_option_incoming_move_file_text_merge ||
- svn_client_conflict_option_get_id(option) ==
- svn_client_conflict_option_incoming_move_dir_merge);
+ id = svn_client_conflict_option_get_id(option);
+ if (id != svn_client_conflict_option_incoming_move_file_text_merge &&
+ id != svn_client_conflict_option_incoming_move_dir_merge &&
+ id != svn_client_conflict_option_local_move_file_text_merge &&
+ id != svn_client_conflict_option_local_move_dir_merge &&
+ id != svn_client_conflict_option_sibling_move_file_text_merge &&
+ id != svn_client_conflict_option_sibling_move_dir_merge &&
+ id != svn_client_conflict_option_both_moved_file_merge &&
+ id != svn_client_conflict_option_both_moved_file_move_merge &&
+ id != svn_client_conflict_option_both_moved_dir_merge &&
+ id != svn_client_conflict_option_both_moved_dir_move_merge)
+ {
+ /* We cannot operate on this option. */
+ *possible_moved_to_abspaths = NULL;
+ return NULL;
+ }
victim_abspath = svn_client_conflict_get_local_abspath(conflict);
- details = conflict->tree_conflict_incoming_details;
- if (details == NULL || details->wc_move_targets == NULL)
- return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
- _("Getting a list of possible move targets "
- "requires details for tree conflict at '%s' "
- "to be fetched from the repository first"),
- svn_dirent_local_style(victim_abspath,
- scratch_pool));
+ operation = svn_client_conflict_get_operation(conflict);
+ incoming_change = svn_client_conflict_get_incoming_change(conflict);
+ local_change = svn_client_conflict_get_local_change(conflict);
- move_target_wc_abspaths =
- svn_hash_gets(details->wc_move_targets,
- get_moved_to_repos_relpath(details, scratch_pool));
+ if (operation == svn_wc_operation_merge &&
+ incoming_change == svn_wc_conflict_action_edit &&
+ local_change == svn_wc_conflict_reason_missing)
+ {
+ struct conflict_tree_local_missing_details *details;
- /* Return a copy of the option's move target candidate list. */
- *possible_moved_to_abspaths =
- apr_array_make(result_pool, move_target_wc_abspaths->nelts,
- sizeof (const char *));
- for (i = 0; i < move_target_wc_abspaths->nelts; i++)
+ details = conflict->tree_conflict_local_details;
+ if (details == NULL ||
+ (details->wc_move_targets == NULL && details->wc_siblings == NULL))
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Getting a list of possible move siblings "
+ "requires details for tree conflict at '%s' "
+ "to be fetched from the repository first"),
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+
+ *possible_moved_to_abspaths = apr_array_make(result_pool, 1,
+ sizeof (const char *));
+ if (details->wc_move_targets)
+ {
+ apr_array_header_t *move_target_wc_abspaths;
+ move_target_wc_abspaths =
+ svn_hash_gets(details->wc_move_targets,
+ details->move_target_repos_relpath);
+ for (i = 0; i < move_target_wc_abspaths->nelts; i++)
+ {
+ const char *moved_to_abspath;
+
+ moved_to_abspath = APR_ARRAY_IDX(move_target_wc_abspaths, i,
+ const char *);
+ APR_ARRAY_PUSH(*possible_moved_to_abspaths, const char *) =
+ apr_pstrdup(result_pool, moved_to_abspath);
+ }
+ }
+
+ /* ### Siblings are actually 'corresponding nodes', not 'move targets'.
+ ### But we provide them here to avoid another API function. */
+ if (details->wc_siblings)
+ {
+ for (i = 0; i < details->wc_siblings->nelts; i++)
+ {
+ const char *sibling_abspath;
+
+ sibling_abspath = APR_ARRAY_IDX(details->wc_siblings, i,
+ const char *);
+ APR_ARRAY_PUSH(*possible_moved_to_abspaths, const char *) =
+ apr_pstrdup(result_pool, sibling_abspath);
+ }
+ }
+ }
+ else if ((operation == svn_wc_operation_update ||
+ operation == svn_wc_operation_switch) &&
+ incoming_change == svn_wc_conflict_action_delete &&
+ local_change == svn_wc_conflict_reason_moved_away)
{
- const char *moved_to_abspath;
+ struct conflict_tree_update_local_moved_away_details *details;
- moved_to_abspath = APR_ARRAY_IDX(move_target_wc_abspaths, i,
- const char *);
- APR_ARRAY_PUSH(*possible_moved_to_abspaths, const char *) =
- apr_pstrdup(result_pool, moved_to_abspath);
+ details = conflict->tree_conflict_local_details;
+ if (details == NULL || details->wc_move_targets == NULL)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Getting a list of possible move targets "
+ "requires details for tree conflict at '%s' "
+ "to be fetched from the repository first"),
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+
+ /* Return a copy of the option's move target candidate list. */
+ *possible_moved_to_abspaths =
+ apr_array_make(result_pool, details->wc_move_targets->nelts,
+ sizeof (const char *));
+ for (i = 0; i < details->wc_move_targets->nelts; i++)
+ {
+ const char *moved_to_abspath;
+
+ moved_to_abspath = APR_ARRAY_IDX(details->wc_move_targets, i,
+ const char *);
+ APR_ARRAY_PUSH(*possible_moved_to_abspaths, const char *) =
+ apr_pstrdup(result_pool, moved_to_abspath);
+ }
+ }
+ else
+ {
+ struct conflict_tree_incoming_delete_details *details;
+ apr_array_header_t *move_target_wc_abspaths;
+
+ details = conflict->tree_conflict_incoming_details;
+ if (details == NULL || details->wc_move_targets == NULL)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Getting a list of possible move targets "
+ "requires details for tree conflict at '%s' "
+ "to be fetched from the repository first"),
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+
+ move_target_wc_abspaths =
+ svn_hash_gets(details->wc_move_targets,
+ get_moved_to_repos_relpath(details, scratch_pool));
+
+ /* Return a copy of the option's move target candidate list. */
+ *possible_moved_to_abspaths =
+ apr_array_make(result_pool, move_target_wc_abspaths->nelts,
+ sizeof (const char *));
+ for (i = 0; i < move_target_wc_abspaths->nelts; i++)
+ {
+ const char *moved_to_abspath;
+
+ moved_to_abspath = APR_ARRAY_IDX(move_target_wc_abspaths, i,
+ const char *);
+ APR_ARRAY_PUSH(*possible_moved_to_abspaths, const char *) =
+ apr_pstrdup(result_pool, moved_to_abspath);
+ }
}
return SVN_NO_ERROR;
}
svn_error_t *
-svn_client_conflict_option_set_moved_to_abspath(
+svn_client_conflict_option_get_moved_to_abspath_candidates(
+ apr_array_header_t **possible_moved_to_abspaths,
+ svn_client_conflict_option_t *option,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ /* The only difference to API version 2 is an assertion failure if
+ * an unexpected option is passed.
+ * We do not emulate this old behaviour since clients written against
+ * the previous API will just keep working. */
+ return svn_error_trace(
+ svn_client_conflict_option_get_moved_to_abspath_candidates2(
+ possible_moved_to_abspaths, option, result_pool, scratch_pool));
+}
+
+svn_error_t *
+svn_client_conflict_option_set_moved_to_abspath2(
svn_client_conflict_option_t *option,
int preferred_move_target_idx,
svn_client_ctx_t *ctx,
apr_pool_t *scratch_pool)
{
svn_client_conflict_t *conflict = option->conflict;
- struct conflict_tree_incoming_delete_details *details;
const char *victim_abspath;
- apr_array_header_t *move_target_wc_abspaths;
+ svn_wc_operation_t operation;
+ svn_wc_conflict_action_t incoming_change;
+ svn_wc_conflict_reason_t local_change;
+ svn_client_conflict_option_id_t id;
- SVN_ERR_ASSERT(svn_client_conflict_option_get_id(option) ==
- svn_client_conflict_option_incoming_move_file_text_merge ||
- svn_client_conflict_option_get_id(option) ==
- svn_client_conflict_option_incoming_move_dir_merge);
+ id = svn_client_conflict_option_get_id(option);
+ if (id != svn_client_conflict_option_incoming_move_file_text_merge &&
+ id != svn_client_conflict_option_incoming_move_dir_merge &&
+ id != svn_client_conflict_option_local_move_file_text_merge &&
+ id != svn_client_conflict_option_local_move_dir_merge &&
+ id != svn_client_conflict_option_sibling_move_file_text_merge &&
+ id != svn_client_conflict_option_sibling_move_dir_merge &&
+ id != svn_client_conflict_option_both_moved_file_merge &&
+ id != svn_client_conflict_option_both_moved_file_move_merge &&
+ id != svn_client_conflict_option_both_moved_dir_merge &&
+ id != svn_client_conflict_option_both_moved_dir_move_merge)
+ return NULL; /* We cannot operate on this option. Nothing to do. */
victim_abspath = svn_client_conflict_get_local_abspath(conflict);
- details = conflict->tree_conflict_incoming_details;
- if (details == NULL || details->wc_move_targets == NULL)
- return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
- _("Setting a move target requires details "
- "for tree conflict at '%s' to be fetched "
- "from the repository first"),
- svn_dirent_local_style(victim_abspath,
- scratch_pool));
+ operation = svn_client_conflict_get_operation(conflict);
+ incoming_change = svn_client_conflict_get_incoming_change(conflict);
+ local_change = svn_client_conflict_get_local_change(conflict);
- move_target_wc_abspaths =
- svn_hash_gets(details->wc_move_targets,
- get_moved_to_repos_relpath(details, scratch_pool));
+ if (operation == svn_wc_operation_merge &&
+ incoming_change == svn_wc_conflict_action_edit &&
+ local_change == svn_wc_conflict_reason_missing)
+ {
+ struct conflict_tree_local_missing_details *details;
+ const char *wcroot_abspath;
+ const char *preferred_sibling;
- if (preferred_move_target_idx < 0 ||
- preferred_move_target_idx > move_target_wc_abspaths->nelts)
- return svn_error_createf(SVN_ERR_INCORRECT_PARAMS, NULL,
- _("Index '%d' is out of bounds of the possible "
- "move target list for '%s'"),
- preferred_move_target_idx,
- svn_dirent_local_style(victim_abspath,
- scratch_pool));
+ SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath,
+ ctx->wc_ctx,
+ conflict->local_abspath,
+ scratch_pool,
+ scratch_pool));
- /* Record the user's preference. */
- details->wc_move_target_idx = preferred_move_target_idx;
+ details = conflict->tree_conflict_local_details;
+ if (details == NULL || (details->wc_siblings == NULL &&
+ details->wc_move_targets == NULL))
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Setting a move target requires details "
+ "for tree conflict at '%s' to be fetched "
+ "from the repository first"),
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
- /* Update option description. */
- SVN_ERR(describe_incoming_move_merge_conflict_option(&option->description,
- conflict, ctx,
- details,
- conflict->pool,
+ if (details->wc_siblings)
+ {
+ if (preferred_move_target_idx < 0 ||
+ preferred_move_target_idx > details->wc_siblings->nelts)
+ return svn_error_createf(SVN_ERR_INCORRECT_PARAMS, NULL,
+ _("Index '%d' is out of bounds of the "
+ "possible move sibling list for '%s'"),
+ preferred_move_target_idx,
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+ /* Record the user's preference. */
+ details->preferred_sibling_idx = preferred_move_target_idx;
+
+ /* Update option description. */
+ preferred_sibling = APR_ARRAY_IDX(details->wc_siblings,
+ details->preferred_sibling_idx,
+ const char *);
+ option->description =
+ apr_psprintf(
+ conflict->pool, _("apply changes to '%s'"),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(wcroot_abspath, preferred_sibling),
+ scratch_pool));
+ }
+ else if (details->wc_move_targets)
+ {
+ apr_array_header_t *move_target_wc_abspaths;
+ move_target_wc_abspaths =
+ svn_hash_gets(details->wc_move_targets,
+ details->move_target_repos_relpath);
+
+ if (preferred_move_target_idx < 0 ||
+ preferred_move_target_idx > move_target_wc_abspaths->nelts)
+ return svn_error_createf(SVN_ERR_INCORRECT_PARAMS, NULL,
+ _("Index '%d' is out of bounds of the possible "
+ "move target list for '%s'"),
+ preferred_move_target_idx,
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+
+ /* Record the user's preference. */
+ details->wc_move_target_idx = preferred_move_target_idx;
+
+ /* Update option description. */
+ SVN_ERR(conflict_tree_get_description_local_missing(
+ &option->description, conflict, ctx,
+ conflict->pool, scratch_pool));
+ }
+ }
+ else if ((operation == svn_wc_operation_update ||
+ operation == svn_wc_operation_switch) &&
+ incoming_change == svn_wc_conflict_action_delete &&
+ local_change == svn_wc_conflict_reason_moved_away)
+ {
+ struct conflict_tree_update_local_moved_away_details *details;
+
+ details = conflict->tree_conflict_local_details;
+ if (details == NULL || details->wc_move_targets == NULL)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Setting a move target requires details "
+ "for tree conflict at '%s' to be fetched "
+ "from the repository first"),
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+
+ if (preferred_move_target_idx < 0 ||
+ preferred_move_target_idx > details->wc_move_targets->nelts)
+ return svn_error_createf(SVN_ERR_INCORRECT_PARAMS, NULL,
+ _("Index '%d' is out of bounds of the "
+ "possible move target list for '%s'"),
+ preferred_move_target_idx,
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+
+ /* Record the user's preference. */
+ details->preferred_move_target_idx = preferred_move_target_idx;
+
+ /* Update option description. */
+ if (id == svn_client_conflict_option_both_moved_file_merge)
+ SVN_ERR(conflict_tree_get_description_update_both_moved_file_merge(
+ &option->description, conflict, ctx, conflict->pool,
+ scratch_pool));
+ else if (id == svn_client_conflict_option_both_moved_file_move_merge)
+ SVN_ERR(conflict_tree_get_description_update_both_moved_file_move_merge(
+ &option->description, conflict, ctx, conflict->pool, scratch_pool));
+#if 0 /* ### TODO: Also handle options for directories! */
+ else if (id == svn_client_conflict_option_both_moved_dir_merge)
+ {
+ }
+ else if (id == svn_client_conflict_option_both_moved_dir_move_merge)
+ {
+ }
+#endif
+ else
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Unexpected option id '%d'"), id);
+ }
+ else
+ {
+ struct conflict_tree_incoming_delete_details *details;
+ apr_array_header_t *move_target_wc_abspaths;
+ const char *moved_to_abspath;
+
+ details = conflict->tree_conflict_incoming_details;
+ if (details == NULL || details->wc_move_targets == NULL)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Setting a move target requires details "
+ "for tree conflict at '%s' to be fetched "
+ "from the repository first"),
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+
+ move_target_wc_abspaths =
+ svn_hash_gets(details->wc_move_targets,
+ get_moved_to_repos_relpath(details, scratch_pool));
+
+ if (preferred_move_target_idx < 0 ||
+ preferred_move_target_idx > move_target_wc_abspaths->nelts)
+ return svn_error_createf(SVN_ERR_INCORRECT_PARAMS, NULL,
+ _("Index '%d' is out of bounds of the possible "
+ "move target list for '%s'"),
+ preferred_move_target_idx,
+ svn_dirent_local_style(victim_abspath,
scratch_pool));
+
+ /* Record the user's preference. */
+ details->wc_move_target_idx = preferred_move_target_idx;
+
+ /* Update option description. */
+ moved_to_abspath = APR_ARRAY_IDX(move_target_wc_abspaths,
+ details->wc_move_target_idx,
+ const char *);
+ SVN_ERR(describe_incoming_move_merge_conflict_option(&option->description,
+ conflict, ctx,
+ moved_to_abspath,
+ conflict->pool,
+ scratch_pool));
+ }
return SVN_NO_ERROR;
}
svn_error_t *
+svn_client_conflict_option_set_moved_to_abspath(
+ svn_client_conflict_option_t *option,
+ int preferred_move_target_idx,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ /* The only difference to API version 2 is an assertion failure if
+ * an unexpected option is passed.
+ * We do not emulate this old behaviour since clients written against
+ * the previous API will just keep working. */
+ return svn_error_trace(
+ svn_client_conflict_option_set_moved_to_abspath2(option,
+ preferred_move_target_idx, ctx, scratch_pool));
+}
+
+svn_error_t *
svn_client_conflict_tree_get_resolution_options(apr_array_header_t **options,
svn_client_conflict_t *conflict,
svn_client_ctx_t *ctx,
@@ -10349,8 +12631,15 @@ svn_client_conflict_tree_get_resolution_options(apr_array_header_t **options,
scratch_pool));
SVN_ERR(configure_option_incoming_dir_merge(conflict, ctx, *options,
scratch_pool));
- SVN_ERR(configure_option_local_move_file_merge(conflict, ctx, *options,
+ SVN_ERR(configure_option_local_move_file_or_dir_merge(conflict, ctx,
+ *options,
+ scratch_pool));
+ SVN_ERR(configure_option_sibling_move_merge(conflict, ctx, *options,
+ scratch_pool));
+ SVN_ERR(configure_option_both_moved_file_merge(conflict, ctx, *options,
scratch_pool));
+ SVN_ERR(configure_option_both_moved_dir_merge(conflict, ctx, *options,
+ scratch_pool));
return SVN_NO_ERROR;
}
@@ -10443,7 +12732,7 @@ svn_client_conflict_get_recommended_option_id(svn_client_conflict_t *conflict)
{
return conflict->recommended_option_id;
}
-
+
svn_error_t *
svn_client_conflict_text_resolve(svn_client_conflict_t *conflict,
svn_client_conflict_option_t *option,
@@ -10466,7 +12755,7 @@ svn_client_conflict_option_find_by_id(apr_array_header_t *options,
{
svn_client_conflict_option_t *this_option;
svn_client_conflict_option_id_t this_option_id;
-
+
this_option = APR_ARRAY_IDX(options, i, svn_client_conflict_option_t *);
this_option_id = svn_client_conflict_option_get_id(this_option);
@@ -10895,6 +13184,7 @@ conflict_type_specific_setup(svn_client_conflict_t *conflict,
apr_pool_t *scratch_pool)
{
svn_boolean_t tree_conflicted;
+ svn_wc_operation_t operation;
svn_wc_conflict_action_t incoming_change;
svn_wc_conflict_reason_t local_change;
@@ -10911,6 +13201,7 @@ conflict_type_specific_setup(svn_client_conflict_t *conflict,
conflict->tree_conflict_get_local_description_func =
conflict_tree_get_local_description_generic;
+ operation = svn_client_conflict_get_operation(conflict);
incoming_change = svn_client_conflict_get_incoming_change(conflict);
local_change = svn_client_conflict_get_local_change(conflict);
@@ -10945,6 +13236,12 @@ conflict_type_specific_setup(svn_client_conflict_t *conflict,
conflict->tree_conflict_get_local_details_func =
conflict_tree_get_details_local_missing;
}
+ else if (local_change == svn_wc_conflict_reason_moved_away &&
+ operation == svn_wc_operation_update /* ### what about switch? */)
+ {
+ conflict->tree_conflict_get_local_details_func =
+ conflict_tree_get_details_update_local_moved_away;
+ }
return SVN_NO_ERROR;
}
@@ -11019,7 +13316,7 @@ tree_conflict_collector(void *baton,
{
const char *tc_abspath;
apr_pool_t *hash_pool;
-
+
hash_pool = apr_hash_pool_get(cswb->unresolved_tree_conflicts);
tc_abspath = apr_pstrdup(hash_pool, notify->path);
svn_hash_sets(cswb->unresolved_tree_conflicts, tc_abspath, "");
@@ -11027,7 +13324,7 @@ tree_conflict_collector(void *baton,
}
}
-/*
+/*
* Record a tree conflict resolution failure due to error condition ERR
* in the RESOLVE_LATER hash table. If the hash table is not available
* (meaning the caller does not wish to retry resolution later), or if
@@ -11190,7 +13487,7 @@ svn_client_conflict_walk(const char *local_abspath,
if (err)
break;
}
-
+
if (!err && !cswb.resolved_a_tree_conflict && tc_abspath &&
apr_hash_count(cswb.unresolved_tree_conflicts))
{
diff --git a/subversion/libsvn_client/copy.c b/subversion/libsvn_client/copy.c
index b2e3a44d797b..b3f2bacc7c8d 100644
--- a/subversion/libsvn_client/copy.c
+++ b/subversion/libsvn_client/copy.c
@@ -578,7 +578,7 @@ pin_externals_prop(svn_string_t **pinned_externals,
static svn_error_t *
resolve_pinned_externals(apr_hash_t **pinned_externals,
const apr_hash_t *externals_to_pin,
- svn_client__copy_pair_t *pair,
+ const svn_client__copy_pair_t *pair,
svn_ra_session_t *ra_session,
const char *repos_root_url,
svn_client_ctx_t *ctx,
@@ -1099,14 +1099,13 @@ verify_wc_dsts(const apr_array_header_t *copy_pairs,
return SVN_NO_ERROR;
}
+/* Verify that the WC sources in COPY_PAIRS exist, and set pair->src_kind
+ for each.
+ */
static svn_error_t *
-verify_wc_srcs_and_dsts(const apr_array_header_t *copy_pairs,
- svn_boolean_t make_parents,
- svn_boolean_t is_move,
- svn_boolean_t metadata_only,
- svn_client_ctx_t *ctx,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
+verify_wc_srcs(const apr_array_header_t *copy_pairs,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
{
int i;
apr_pool_t *iterpool = svn_pool_create(scratch_pool);
@@ -1133,10 +1132,6 @@ verify_wc_srcs_and_dsts(const apr_array_header_t *copy_pairs,
pair->src_abspath_or_url,
scratch_pool));
}
-
- SVN_ERR(verify_wc_dsts(copy_pairs, make_parents, is_move, metadata_only, ctx,
- result_pool, iterpool));
-
svn_pool_destroy(iterpool);
return SVN_NO_ERROR;
@@ -1163,10 +1158,6 @@ typedef struct path_driver_info_t
or move operation. */
struct path_driver_cb_baton
{
- /* The editor (and its state) used to perform the operation. */
- const svn_delta_editor_t *editor;
- void *edit_baton;
-
/* A hash of path -> path_driver_info_t *'s. */
apr_hash_t *action_hash;
@@ -1176,6 +1167,8 @@ struct path_driver_cb_baton
static svn_error_t *
path_driver_cb_func(void **dir_baton,
+ const svn_delta_editor_t *editor,
+ void *edit_baton,
void *parent_baton,
void *callback_baton,
const char *path,
@@ -1196,9 +1189,9 @@ path_driver_cb_func(void **dir_baton,
/* Check to see if we need to add the path as a parent directory. */
if (path_info->dir_add)
{
- return cb_baton->editor->add_directory(path, parent_baton, NULL,
- SVN_INVALID_REVNUM, pool,
- dir_baton);
+ return editor->add_directory(path, parent_baton, NULL,
+ SVN_INVALID_REVNUM, pool,
+ dir_baton);
}
/* If this is a resurrection, we know the source and dest paths are
@@ -1230,8 +1223,8 @@ path_driver_cb_func(void **dir_baton,
if (do_delete)
{
- SVN_ERR(cb_baton->editor->delete_entry(path, SVN_INVALID_REVNUM,
- parent_baton, pool));
+ SVN_ERR(editor->delete_entry(path, SVN_INVALID_REVNUM,
+ parent_baton, pool));
}
if (do_add)
{
@@ -1240,40 +1233,40 @@ path_driver_cb_func(void **dir_baton,
if (path_info->src_kind == svn_node_file)
{
void *file_baton;
- SVN_ERR(cb_baton->editor->add_file(path, parent_baton,
- path_info->src_url,
- path_info->src_revnum,
- pool, &file_baton));
+ SVN_ERR(editor->add_file(path, parent_baton,
+ path_info->src_url,
+ path_info->src_revnum,
+ pool, &file_baton));
if (path_info->mergeinfo)
- SVN_ERR(cb_baton->editor->change_file_prop(file_baton,
- SVN_PROP_MERGEINFO,
- path_info->mergeinfo,
- pool));
- SVN_ERR(cb_baton->editor->close_file(file_baton, NULL, pool));
+ SVN_ERR(editor->change_file_prop(file_baton,
+ SVN_PROP_MERGEINFO,
+ path_info->mergeinfo,
+ pool));
+ SVN_ERR(editor->close_file(file_baton, NULL, pool));
}
else
{
- SVN_ERR(cb_baton->editor->add_directory(path, parent_baton,
- path_info->src_url,
- path_info->src_revnum,
- pool, dir_baton));
+ SVN_ERR(editor->add_directory(path, parent_baton,
+ path_info->src_url,
+ path_info->src_revnum,
+ pool, dir_baton));
if (path_info->mergeinfo)
- SVN_ERR(cb_baton->editor->change_dir_prop(*dir_baton,
- SVN_PROP_MERGEINFO,
- path_info->mergeinfo,
- pool));
+ SVN_ERR(editor->change_dir_prop(*dir_baton,
+ SVN_PROP_MERGEINFO,
+ path_info->mergeinfo,
+ pool));
}
}
if (path_info->externals)
{
if (*dir_baton == NULL)
- SVN_ERR(cb_baton->editor->open_directory(path, parent_baton,
- SVN_INVALID_REVNUM,
- pool, dir_baton));
+ SVN_ERR(editor->open_directory(path, parent_baton,
+ SVN_INVALID_REVNUM,
+ pool, dir_baton));
- SVN_ERR(cb_baton->editor->change_dir_prop(*dir_baton, SVN_PROP_EXTERNALS,
- path_info->externals, pool));
+ SVN_ERR(editor->change_dir_prop(*dir_baton, SVN_PROP_EXTERNALS,
+ path_info->externals, pool));
}
return SVN_NO_ERROR;
@@ -1857,13 +1850,11 @@ repos_to_repos_copy(const apr_array_header_t *copy_pairs,
pool));
/* Setup the callback baton. */
- cb_baton.editor = editor;
- cb_baton.edit_baton = edit_baton;
cb_baton.action_hash = action_hash;
cb_baton.is_move = is_move;
/* Call the path-based editor driver. */
- err = svn_delta_path_driver2(editor, edit_baton, paths, TRUE,
+ err = svn_delta_path_driver3(editor, edit_baton, paths, TRUE,
path_driver_cb_func, &cb_baton, pool);
if (err)
{
@@ -2318,9 +2309,15 @@ struct notification_adjust_baton
};
/* A svn_wc_notify_func2_t function that wraps BATON->inner_func (whose
- * baton is BATON->inner_baton) and adjusts the notification paths that
- * start with BATON->checkout_abspath to start instead with
- * BATON->final_abspath. */
+ * baton is BATON->inner_baton) to turn the result of a 'checkout' into
+ * what we want to see for a 'copy to WC' operation.
+ *
+ * - Adjust the notification paths that start with BATON->checkout_abspath
+ * to start instead with BATON->final_abspath.
+ * - Change start-of-update notification into a plain WC 'add' for the root.
+ * - Change checkout 'add' notifications into a plain WC 'add'.
+ * - Discard 'update_completed' notifications.
+ */
static void
notification_adjust_func(void *baton,
const svn_wc_notify_t *notify,
@@ -2333,18 +2330,372 @@ notification_adjust_func(void *baton,
relpath = svn_dirent_skip_ancestor(nb->checkout_abspath, notify->path);
inner_notify->path = svn_dirent_join(nb->final_abspath, relpath, pool);
+ /* Convert 'update' notifications to plain 'add' notifications; discard
+ notifications about checkout/update starting/finishing. */
+ if (notify->action == svn_wc_notify_update_started /* root */
+ || notify->action == svn_wc_notify_update_add) /* non-root */
+ {
+ inner_notify->action = svn_wc_notify_add;
+ }
+ else if (notify->action == svn_wc_notify_update_update
+ || notify->action == svn_wc_notify_update_completed)
+ {
+ /* update_update happens only for a prop mod on root; the root was
+ already notified so discard this */
+ return;
+ }
+
if (nb->inner_func)
nb->inner_func(nb->inner_baton, inner_notify, pool);
}
+/** Copy a directory tree from a remote repository.
+ *
+ * Copy from RA_SESSION:LOCATION to WC_CTX:DST_ABSPATH.
+ *
+ * Create the directory DST_ABSPATH, if not present. Its parent should be
+ * already under version control in the WC and in a suitable state for
+ * scheduling the addition of a child.
+ *
+ * Ignore any incoming non-regular properties (entry-props, DAV/WC-props).
+ * Remove any incoming 'svn:mergeinfo' properties.
+ */
+static svn_error_t *
+copy_foreign_dir(svn_ra_session_t *ra_session,
+ const svn_client__pathrev_t *location,
+ const char *dst_abspath,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ const svn_delta_editor_t *editor;
+ void *eb;
+ const svn_delta_editor_t *wrapped_editor;
+ void *wrapped_baton;
+ const svn_ra_reporter3_t *reporter;
+ void *reporter_baton;
+
+ /* Get a WC editor. It does not need an RA session because we will not
+ be sending it any 'copy from' requests, only 'add' requests. */
+ SVN_ERR(svn_client__wc_editor_internal(&editor, &eb,
+ dst_abspath,
+ TRUE /*root_dir_add*/,
+ TRUE /*ignore_mergeinfo_changes*/,
+ FALSE /*manage_wc_write_lock*/,
+ notify_func, notify_baton,
+ NULL /*ra_session*/,
+ ctx, scratch_pool));
+
+ SVN_ERR(svn_delta_get_cancellation_editor(cancel_func, cancel_baton,
+ editor, eb,
+ &wrapped_editor, &wrapped_baton,
+ scratch_pool));
+
+ SVN_ERR(svn_ra_do_update3(ra_session, &reporter, &reporter_baton,
+ location->rev, "", svn_depth_infinity,
+ FALSE, FALSE, wrapped_editor, wrapped_baton,
+ scratch_pool, scratch_pool));
+
+ SVN_ERR(reporter->set_path(reporter_baton, "", location->rev,
+ svn_depth_infinity /* irrelevant */,
+ TRUE /*start_empty*/,
+ NULL, scratch_pool));
+
+ SVN_ERR(reporter->finish_report(reporter_baton, scratch_pool));
+
+ return SVN_NO_ERROR;
+}
+
+/* Implementation of svn_client__repos_to_wc_copy() for a dir.
+ */
+static svn_error_t *
+svn_client__repos_to_wc_copy_dir(svn_boolean_t *timestamp_sleep,
+ const char *src_url,
+ svn_revnum_t src_revnum,
+ const char *dst_abspath,
+ svn_boolean_t same_repositories,
+ svn_ra_session_t *ra_session,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ const char *tmpdir_abspath, *tmp_abspath;
+
+ SVN_ERR_ASSERT(svn_dirent_is_absolute(dst_abspath));
+
+ if (!same_repositories)
+ {
+ svn_client__pathrev_t *location;
+
+ *timestamp_sleep = TRUE;
+
+ /* ### Reparenting "ra_session" can't be right, can it? As this is
+ a foreign repo, surely we need a new RA session? */
+ SVN_ERR(svn_client__pathrev_create_with_session(&location, ra_session,
+ src_revnum, src_url,
+ scratch_pool));
+ SVN_ERR(svn_ra_reparent(ra_session, src_url, scratch_pool));
+ SVN_ERR(copy_foreign_dir(ra_session, location,
+ dst_abspath,
+ ctx->notify_func2, ctx->notify_baton2,
+ ctx->cancel_func, ctx->cancel_baton,
+ ctx, scratch_pool));
+
+ return SVN_NO_ERROR;
+ }
+
+ /* Find a temporary location in which to check out the copy source. */
+ SVN_ERR(svn_wc__get_tmpdir(&tmpdir_abspath, ctx->wc_ctx, dst_abspath,
+ scratch_pool, scratch_pool));
+
+ /* Get a temporary path. The crude way we do this is to create a
+ temporary file, remember its name, and let it be deleted immediately. */
+ SVN_ERR(svn_io_open_unique_file3(NULL, &tmp_abspath, tmpdir_abspath,
+ svn_io_file_del_on_close,
+ scratch_pool, scratch_pool));
+
+ /* Make a new checkout of the requested source. While doing so,
+ * resolve copy_src_revnum to an actual revision number in case it
+ * was until now 'invalid' meaning 'head'. Ask this function not to
+ * sleep for timestamps, by passing a sleep_needed output param.
+ * Send notifications for all nodes except the root node, and adjust
+ * them to refer to the destination rather than this temporary path. */
+ {
+ svn_wc_notify_func2_t old_notify_func2 = ctx->notify_func2;
+ void *old_notify_baton2 = ctx->notify_baton2;
+ struct notification_adjust_baton nb;
+ svn_error_t *err;
+ svn_opt_revision_t copy_src_revision;
+
+ copy_src_revision.kind = svn_opt_revision_number;
+ copy_src_revision.value.number = src_revnum;
+
+ nb.inner_func = ctx->notify_func2;
+ nb.inner_baton = ctx->notify_baton2;
+ nb.checkout_abspath = tmp_abspath;
+ nb.final_abspath = dst_abspath;
+ ctx->notify_func2 = notification_adjust_func;
+ ctx->notify_baton2 = &nb;
+
+ err = svn_client__checkout_internal(NULL /*result_rev*/, timestamp_sleep,
+ src_url,
+ tmp_abspath,
+ &copy_src_revision,
+ &copy_src_revision,
+ svn_depth_infinity,
+ TRUE /*ignore_externals*/,
+ FALSE, /* we don't allow obstructions */
+ ra_session, ctx, scratch_pool);
+
+ ctx->notify_func2 = old_notify_func2;
+ ctx->notify_baton2 = old_notify_baton2;
+
+ SVN_ERR(err);
+ }
+
+ /* Schedule dst_path for addition in parent, with copy history.
+ Don't send any notification here.
+ Then remove the temporary checkout's .svn dir in preparation for
+ moving the rest of it into the final destination. */
+ SVN_ERR(svn_wc_copy3(ctx->wc_ctx, tmp_abspath, dst_abspath,
+ TRUE /* metadata_only */,
+ NULL, NULL, /* don't allow user to cancel here */
+ NULL, NULL, scratch_pool));
+ SVN_ERR(svn_wc__acquire_write_lock(NULL, ctx->wc_ctx, tmp_abspath,
+ FALSE, scratch_pool, scratch_pool));
+ SVN_ERR(svn_wc_remove_from_revision_control2(ctx->wc_ctx,
+ tmp_abspath,
+ FALSE, FALSE,
+ NULL, NULL, /* don't cancel */
+ scratch_pool));
+
+ /* Move the temporary disk tree into place. */
+ SVN_ERR(svn_io_file_rename2(tmp_abspath, dst_abspath, FALSE, scratch_pool));
+
+ return SVN_NO_ERROR;
+}
+
+/* Implementation of svn_client__repos_to_wc_copy() for a file.
+ *
+ * This has no 'ignore_externals' parameter because we don't support the
+ * 'svn:externals' property being set on a file.
+ */
+static svn_error_t *
+svn_client__repos_to_wc_copy_file(svn_boolean_t *timestamp_sleep,
+ const char *src_url,
+ svn_revnum_t src_rev,
+ const char *dst_abspath,
+ svn_boolean_t same_repositories,
+ svn_ra_session_t *ra_session,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ const char *src_rel;
+ apr_hash_t *new_props;
+ svn_stream_t *new_base_contents = svn_stream_buffered(scratch_pool);
+
+ SVN_ERR(svn_ra_get_path_relative_to_session(ra_session, &src_rel, src_url,
+ scratch_pool));
+ /* Fetch the file content. */
+ SVN_ERR(svn_ra_get_file(ra_session, src_rel, src_rev,
+ new_base_contents, NULL, &new_props,
+ scratch_pool));
+ if (!same_repositories)
+ svn_hash_sets(new_props, SVN_PROP_MERGEINFO, NULL);
+
+ *timestamp_sleep = TRUE;
+ SVN_ERR(svn_wc_add_repos_file4(
+ ctx->wc_ctx, dst_abspath,
+ new_base_contents, NULL, new_props, NULL,
+ same_repositories ? src_url : NULL,
+ same_repositories ? src_rev : SVN_INVALID_REVNUM,
+ ctx->cancel_func, ctx->cancel_baton,
+ scratch_pool));
+ /* Do our own notification for the root node, even if we could possibly
+ have delegated it. See also issue #2198. */
+ if (ctx->notify_func2)
+ {
+ svn_wc_notify_t *notify
+ = svn_wc_create_notify(dst_abspath, svn_wc_notify_add, scratch_pool);
+
+ notify->kind = svn_node_file;
+ ctx->notify_func2(ctx->notify_baton2, notify, scratch_pool);
+ }
+ return SVN_NO_ERROR;
+}
+
+/* Are RA_SESSION and the versioned *parent* dir of WC_TARGET_ABSPATH in
+ * the same repository?
+ */
+static svn_error_t *
+is_same_repository(svn_boolean_t *same_repository,
+ svn_ra_session_t *ra_session,
+ const char *wc_target_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ const char *src_uuid, *dst_uuid;
+
+ /* Get the repository UUIDs of copy source URL and WC parent path */
+ SVN_ERR(svn_ra_get_uuid2(ra_session, &src_uuid, scratch_pool));
+ SVN_ERR(svn_client_get_repos_root(NULL /*root_url*/, &dst_uuid,
+ svn_dirent_dirname(wc_target_abspath,
+ scratch_pool),
+ ctx, scratch_pool, scratch_pool));
+ *same_repository = (strcmp(src_uuid, dst_uuid) == 0);
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__repos_to_wc_copy_internal(svn_boolean_t *timestamp_sleep,
+ svn_node_kind_t kind,
+ const char *src_url,
+ svn_revnum_t src_rev,
+ const char *dst_abspath,
+ svn_ra_session_t *ra_session,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ const char *old_session_url;
+ svn_boolean_t timestamp_sleep_ignored;
+ svn_boolean_t same_repositories;
+
+ SVN_ERR(svn_client__ensure_ra_session_url(&old_session_url, ra_session,
+ src_url, scratch_pool));
+
+ SVN_ERR(is_same_repository(&same_repositories,
+ ra_session, dst_abspath, ctx, scratch_pool));
+
+ if (!timestamp_sleep)
+ timestamp_sleep = &timestamp_sleep_ignored;
+
+ if (kind == svn_node_dir)
+ {
+ SVN_ERR(svn_client__repos_to_wc_copy_dir(timestamp_sleep,
+ src_url, src_rev,
+ dst_abspath,
+ same_repositories,
+ ra_session,
+ ctx, scratch_pool));
+ }
+ else if (kind == svn_node_file)
+ {
+ SVN_ERR(svn_client__repos_to_wc_copy_file(timestamp_sleep,
+ src_url, src_rev,
+ dst_abspath,
+ same_repositories,
+ ra_session,
+ ctx, scratch_pool));
+ }
+
+ /* Reparent the session back to the original URL. */
+ SVN_ERR(svn_ra_reparent(ra_session, old_session_url, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__repos_to_wc_copy_by_editor(svn_boolean_t *timestamp_sleep,
+ svn_node_kind_t kind,
+ const char *src_url,
+ svn_revnum_t src_rev,
+ const char *dst_abspath,
+ svn_ra_session_t *ra_session,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ const svn_delta_editor_t *editor;
+ void *eb;
+ const char *src_anchor = svn_uri_dirname(src_url, scratch_pool);
+ const char *dst_target = svn_dirent_basename(dst_abspath, scratch_pool);
+ void *rb, *db;
+
+ SVN_ERR(svn_ra_reparent(ra_session, src_anchor, scratch_pool));
+
+ SVN_ERR(svn_client__wc_editor_internal(
+ &editor, &eb,
+ svn_dirent_dirname(dst_abspath, scratch_pool),
+ FALSE /*root_dir_add*/,
+ FALSE /*ignore_mergeinfo_changes*/,
+ FALSE /*manage_wc_write_lock*/,
+ ctx->notify_func2, ctx->notify_baton2,
+ ra_session,
+ ctx, scratch_pool));
+
+ SVN_ERR(editor->open_root(eb, SVN_INVALID_REVNUM, scratch_pool, &rb));
+ if (kind == svn_node_dir)
+ {
+ SVN_ERR(editor->add_directory(dst_target, rb,
+ src_url, src_rev,
+ scratch_pool,
+ &db));
+ SVN_ERR(editor->close_directory(db, scratch_pool));
+ }
+ else
+ {
+ SVN_ERR(editor->add_file(dst_target, rb,
+ src_url, src_rev,
+ scratch_pool,
+ &db));
+ SVN_ERR(editor->close_file(db, NULL, scratch_pool));
+ }
+ SVN_ERR(editor->close_edit(eb, scratch_pool));
+
+ if (timestamp_sleep)
+ *timestamp_sleep = TRUE;
+ return SVN_NO_ERROR;
+}
+
/* Peform each individual copy operation for a repos -> wc copy. A
helper for repos_to_wc_copy().
- Resolve PAIR->src_revnum to a real revision number if it isn't already. */
+ PAIR->src_revnum PAIR->src_abspath_or_url should already have been
+ resolved to the operative revision number and operative URL.
+ */
static svn_error_t *
repos_to_wc_copy_single(svn_boolean_t *timestamp_sleep,
- svn_client__copy_pair_t *pair,
- svn_boolean_t same_repositories,
+ const svn_client__copy_pair_t *pair,
svn_boolean_t ignore_externals,
svn_boolean_t pin_externals,
const apr_hash_t *externals_to_pin,
@@ -2354,9 +2705,14 @@ repos_to_wc_copy_single(svn_boolean_t *timestamp_sleep,
{
apr_hash_t *src_mergeinfo;
const char *dst_abspath = pair->dst_abspath_or_url;
+ svn_boolean_t same_repositories;
+ SVN_ERR_ASSERT(SVN_IS_VALID_REVNUM(pair->src_revnum));
+ SVN_ERR_ASSERT(svn_path_is_url(pair->src_abspath_or_url));
SVN_ERR_ASSERT(svn_dirent_is_absolute(dst_abspath));
+ SVN_ERR(is_same_repository(&same_repositories,
+ ra_session, dst_abspath, ctx, pool));
if (!same_repositories && ctx->notify_func2)
{
svn_wc_notify_t *notify;
@@ -2372,135 +2728,59 @@ repos_to_wc_copy_single(svn_boolean_t *timestamp_sleep,
SVN_ERR(ctx->cancel_func(ctx->cancel_baton));
}
- if (pair->src_kind == svn_node_dir)
+ SVN_ERR(svn_client__repos_to_wc_copy_by_editor(
+ timestamp_sleep,
+ pair->src_kind,
+ pair->src_abspath_or_url,
+ pair->src_revnum,
+ dst_abspath,
+ ra_session, ctx, pool));
+
+ /* Fetch externals, pinning them if requested */
+ if (!ignore_externals && pair->src_kind == svn_node_dir)
{
if (same_repositories)
{
- const char *tmpdir_abspath, *tmp_abspath;
-
- /* Find a temporary location in which to check out the copy source. */
- SVN_ERR(svn_wc__get_tmpdir(&tmpdir_abspath, ctx->wc_ctx, dst_abspath,
- pool, pool));
-
- SVN_ERR(svn_io_open_unique_file3(NULL, &tmp_abspath, tmpdir_abspath,
- svn_io_file_del_on_close, pool, pool));
-
- /* Make a new checkout of the requested source. While doing so,
- * resolve pair->src_revnum to an actual revision number in case it
- * was until now 'invalid' meaning 'head'. Ask this function not to
- * sleep for timestamps, by passing a sleep_needed output param.
- * Send notifications for all nodes except the root node, and adjust
- * them to refer to the destination rather than this temporary path. */
- {
- svn_wc_notify_func2_t old_notify_func2 = ctx->notify_func2;
- void *old_notify_baton2 = ctx->notify_baton2;
- struct notification_adjust_baton nb;
- svn_error_t *err;
-
- nb.inner_func = ctx->notify_func2;
- nb.inner_baton = ctx->notify_baton2;
- nb.checkout_abspath = tmp_abspath;
- nb.final_abspath = dst_abspath;
- ctx->notify_func2 = notification_adjust_func;
- ctx->notify_baton2 = &nb;
-
- /* Avoid a chicken-and-egg problem:
- * If pinning externals we'll need to adjust externals
- * properties before checking out any externals.
- * But copy needs to happen before pinning because else there
- * are no svn:externals properties to pin. */
- if (pin_externals)
- ignore_externals = TRUE;
-
- err = svn_client__checkout_internal(&pair->src_revnum, timestamp_sleep,
- pair->src_original,
- tmp_abspath,
- &pair->src_peg_revision,
- &pair->src_op_revision,
- svn_depth_infinity,
- ignore_externals, FALSE,
- ra_session, ctx, pool);
-
- ctx->notify_func2 = old_notify_func2;
- ctx->notify_baton2 = old_notify_baton2;
-
- SVN_ERR(err);
- }
-
- *timestamp_sleep = TRUE;
-
- /* Schedule dst_path for addition in parent, with copy history.
- Don't send any notification here.
- Then remove the temporary checkout's .svn dir in preparation for
- moving the rest of it into the final destination. */
- SVN_ERR(svn_wc_copy3(ctx->wc_ctx, tmp_abspath, dst_abspath,
- TRUE /* metadata_only */,
- ctx->cancel_func, ctx->cancel_baton,
- NULL, NULL, pool));
- SVN_ERR(svn_wc__acquire_write_lock(NULL, ctx->wc_ctx, tmp_abspath,
- FALSE, pool, pool));
- SVN_ERR(svn_wc_remove_from_revision_control2(ctx->wc_ctx,
- tmp_abspath,
- FALSE, FALSE,
- ctx->cancel_func,
- ctx->cancel_baton,
- pool));
-
- /* Move the temporary disk tree into place. */
- SVN_ERR(svn_io_file_rename2(tmp_abspath, dst_abspath, FALSE, pool));
- }
- else
- {
- *timestamp_sleep = TRUE;
-
- SVN_ERR(svn_client__copy_foreign(pair->src_abspath_or_url,
- dst_abspath,
- &pair->src_peg_revision,
- &pair->src_op_revision,
- svn_depth_infinity,
- FALSE /* make_parents */,
- TRUE /* already_locked */,
- ctx, pool));
-
- return SVN_NO_ERROR;
- }
-
- if (pin_externals)
- {
- apr_hash_t *pinned_externals;
- apr_hash_index_t *hi;
- apr_pool_t *iterpool;
const char *repos_root_url;
apr_hash_t *new_externals;
apr_hash_t *new_depths;
SVN_ERR(svn_ra_get_repos_root2(ra_session, &repos_root_url, pool));
- SVN_ERR(resolve_pinned_externals(&pinned_externals,
- externals_to_pin, pair,
- ra_session, repos_root_url,
- ctx, pool, pool));
- iterpool = svn_pool_create(pool);
- for (hi = apr_hash_first(pool, pinned_externals);
- hi;
- hi = apr_hash_next(hi))
+ if (pin_externals)
{
- const char *dst_relpath = apr_hash_this_key(hi);
- svn_string_t *externals_propval = apr_hash_this_val(hi);
- const char *local_abspath;
+ apr_hash_t *pinned_externals;
+ apr_hash_index_t *hi;
+ apr_pool_t *iterpool;
+
+ SVN_ERR(resolve_pinned_externals(&pinned_externals,
+ externals_to_pin, pair,
+ ra_session, repos_root_url,
+ ctx, pool, pool));
+
+ iterpool = svn_pool_create(pool);
+ for (hi = apr_hash_first(pool, pinned_externals);
+ hi;
+ hi = apr_hash_next(hi))
+ {
+ const char *dst_relpath = apr_hash_this_key(hi);
+ svn_string_t *externals_propval = apr_hash_this_val(hi);
+ const char *local_abspath;
- svn_pool_clear(iterpool);
+ svn_pool_clear(iterpool);
- local_abspath = svn_dirent_join(pair->dst_abspath_or_url,
- dst_relpath, iterpool);
- /* ### use a work queue? */
- SVN_ERR(svn_wc_prop_set4(ctx->wc_ctx, local_abspath,
- SVN_PROP_EXTERNALS, externals_propval,
- svn_depth_empty, TRUE /* skip_checks */,
- NULL /* changelist_filter */,
- ctx->cancel_func, ctx->cancel_baton,
- NULL, NULL, /* no extra notification */
- iterpool));
+ local_abspath = svn_dirent_join(pair->dst_abspath_or_url,
+ dst_relpath, iterpool);
+ /* ### use a work queue? */
+ SVN_ERR(svn_wc_prop_set4(ctx->wc_ctx, local_abspath,
+ SVN_PROP_EXTERNALS, externals_propval,
+ svn_depth_empty, TRUE /* skip_checks */,
+ NULL /* changelist_filter */,
+ ctx->cancel_func, ctx->cancel_baton,
+ NULL, NULL, /* no extra notification */
+ iterpool));
+ }
+ svn_pool_destroy(iterpool);
}
/* Now update all externals in the newly created copy. */
@@ -2509,65 +2789,30 @@ repos_to_wc_copy_single(svn_boolean_t *timestamp_sleep,
ctx->wc_ctx,
dst_abspath,
svn_depth_infinity,
- iterpool, iterpool));
+ pool, pool));
SVN_ERR(svn_client__handle_externals(new_externals,
new_depths,
repos_root_url, dst_abspath,
svn_depth_infinity,
timestamp_sleep,
ra_session,
- ctx, iterpool));
- svn_pool_destroy(iterpool);
+ ctx, pool));
}
- } /* end directory case */
-
- else if (pair->src_kind == svn_node_file)
- {
- apr_hash_t *new_props;
- const char *src_rel;
- svn_stream_t *new_base_contents = svn_stream_buffered(pool);
-
- SVN_ERR(svn_ra_get_path_relative_to_session(ra_session, &src_rel,
- pair->src_abspath_or_url,
- pool));
- /* Fetch the file content. While doing so, resolve pair->src_revnum
- * to an actual revision number if it's 'invalid' meaning 'head'. */
- SVN_ERR(svn_ra_get_file(ra_session, src_rel, pair->src_revnum,
- new_base_contents,
- &pair->src_revnum, &new_props, pool));
-
- if (new_props && ! same_repositories)
- svn_hash_sets(new_props, SVN_PROP_MERGEINFO, NULL);
-
- *timestamp_sleep = TRUE;
-
- SVN_ERR(svn_wc_add_repos_file4(
- ctx->wc_ctx, dst_abspath,
- new_base_contents, NULL, new_props, NULL,
- same_repositories ? pair->src_abspath_or_url : NULL,
- same_repositories ? pair->src_revnum : SVN_INVALID_REVNUM,
- ctx->cancel_func, ctx->cancel_baton,
- pool));
}
- /* Record the implied mergeinfo (before the notification callback
- is invoked for the root node). */
- SVN_ERR(svn_client__get_repos_mergeinfo(
- &src_mergeinfo, ra_session,
- pair->src_abspath_or_url, pair->src_revnum,
- svn_mergeinfo_inherited, TRUE /*squelch_incapable*/, pool));
- SVN_ERR(extend_wc_mergeinfo(dst_abspath, src_mergeinfo, ctx, pool));
-
- /* Do our own notification for the root node, even if we could possibly
- have delegated it. See also issue #1552.
-
- ### Maybe this notification should mention the mergeinfo change. */
- if (ctx->notify_func2)
+ if (same_repositories)
{
- svn_wc_notify_t *notify = svn_wc_create_notify(
- dst_abspath, svn_wc_notify_add, pool);
- notify->kind = pair->src_kind;
- ctx->notify_func2(ctx->notify_baton2, notify, pool);
+ /* Record the implied mergeinfo. */
+ SVN_ERR(svn_client__get_repos_mergeinfo(&src_mergeinfo, ra_session,
+ pair->src_abspath_or_url,
+ pair->src_revnum,
+ svn_mergeinfo_inherited,
+ TRUE /*squelch_incapable*/,
+ pool));
+ SVN_ERR(extend_wc_mergeinfo(dst_abspath, src_mergeinfo, ctx, pool));
+
+ /* ### Maybe the notification should mention this mergeinfo change. */
+ /* ### Maybe we should do this during rather than after the copy. */
}
return SVN_NO_ERROR;
@@ -2585,38 +2830,8 @@ repos_to_wc_copy_locked(svn_boolean_t *timestamp_sleep,
apr_pool_t *scratch_pool)
{
int i;
- svn_boolean_t same_repositories;
apr_pool_t *iterpool = svn_pool_create(scratch_pool);
- /* We've already checked for physical obstruction by a working file.
- But there could also be logical obstruction by an entry whose
- working file happens to be missing.*/
- SVN_ERR(verify_wc_dsts(copy_pairs, FALSE, FALSE, FALSE /* metadata_only */,
- ctx, scratch_pool, iterpool));
-
- /* Decide whether the two repositories are the same or not. */
- {
- const char *parent_abspath;
- const char *src_uuid, *dst_uuid;
-
- /* Get the repository uuid of SRC_URL */
- SVN_ERR(svn_ra_get_uuid2(ra_session, &src_uuid, iterpool));
-
- /* Get repository uuid of dst's parent directory, since dst may
- not exist. ### TODO: we should probably walk up the wc here,
- in case the parent dir has an imaginary URL. */
- if (copy_pairs->nelts == 1)
- parent_abspath = svn_dirent_dirname(top_dst_abspath, scratch_pool);
- else
- parent_abspath = top_dst_abspath;
-
- SVN_ERR(svn_client_get_repos_root(NULL /* root_url */, &dst_uuid,
- parent_abspath, ctx,
- iterpool, iterpool));
- /* ### Also check repos_root_url? */
- same_repositories = (strcmp(src_uuid, dst_uuid) == 0);
- }
-
/* Perform the move for each of the copy_pairs. */
for (i = 0; i < copy_pairs->nelts; i++)
{
@@ -2629,7 +2844,6 @@ repos_to_wc_copy_locked(svn_boolean_t *timestamp_sleep,
SVN_ERR(repos_to_wc_copy_single(timestamp_sleep,
APR_ARRAY_IDX(copy_pairs, i,
svn_client__copy_pair_t *),
- same_repositories,
ignore_externals,
pin_externals, externals_to_pin,
ra_session, ctx, iterpool));
@@ -2642,7 +2856,6 @@ repos_to_wc_copy_locked(svn_boolean_t *timestamp_sleep,
static svn_error_t *
repos_to_wc_copy(svn_boolean_t *timestamp_sleep,
const apr_array_header_t *copy_pairs,
- svn_boolean_t make_parents,
svn_boolean_t ignore_externals,
svn_boolean_t pin_externals,
const apr_hash_t *externals_to_pin,
@@ -2696,8 +2909,6 @@ repos_to_wc_copy(svn_boolean_t *timestamp_sleep,
{
svn_client__copy_pair_t *pair = APR_ARRAY_IDX(copy_pairs, i,
svn_client__copy_pair_t *);
- svn_node_kind_t dst_parent_kind, dst_kind;
- const char *dst_parent;
const char *src_rel;
svn_pool_clear(iterpool);
@@ -2721,33 +2932,6 @@ repos_to_wc_copy(svn_boolean_t *timestamp_sleep,
_("Path '%s' not found in head revision"),
pair->src_abspath_or_url);
}
-
- /* Figure out about dst. */
- SVN_ERR(svn_io_check_path(pair->dst_abspath_or_url, &dst_kind,
- iterpool));
- if (dst_kind != svn_node_none)
- {
- return svn_error_createf(
- SVN_ERR_ENTRY_EXISTS, NULL,
- _("Path '%s' already exists"),
- svn_dirent_local_style(pair->dst_abspath_or_url, pool));
- }
-
- /* Make sure the destination parent is a directory and produce a clear
- error message if it is not. */
- dst_parent = svn_dirent_dirname(pair->dst_abspath_or_url, iterpool);
- SVN_ERR(svn_io_check_path(dst_parent, &dst_parent_kind, iterpool));
- if (make_parents && dst_parent_kind == svn_node_none)
- {
- SVN_ERR(svn_client__make_local_parents(dst_parent, TRUE, ctx,
- iterpool));
- }
- else if (dst_parent_kind != svn_node_dir)
- {
- return svn_error_createf(SVN_ERR_WC_NOT_WORKING_COPY, NULL,
- _("Path '%s' is not a directory"),
- svn_dirent_local_style(dst_parent, pool));
- }
}
svn_pool_destroy(iterpool);
@@ -3070,8 +3254,9 @@ try_copy(svn_boolean_t *timestamp_sleep,
/* Now, call the right handler for the operation. */
if ((! srcs_are_urls) && (! dst_is_url))
{
- SVN_ERR(verify_wc_srcs_and_dsts(copy_pairs, make_parents, is_move,
- metadata_only, ctx, pool, pool));
+ SVN_ERR(verify_wc_srcs(copy_pairs, ctx, pool));
+ SVN_ERR(verify_wc_dsts(copy_pairs, make_parents, is_move, metadata_only,
+ ctx, pool, pool));
/* Copy or move all targets. */
if (is_move)
@@ -3101,9 +3286,13 @@ try_copy(svn_boolean_t *timestamp_sleep,
}
else if ((srcs_are_urls) && (! dst_is_url))
{
+ SVN_ERR(verify_wc_dsts(copy_pairs, make_parents,
+ FALSE, FALSE /* metadata_only */,
+ ctx, pool, pool));
+
return svn_error_trace(
repos_to_wc_copy(timestamp_sleep,
- copy_pairs, make_parents, ignore_externals,
+ copy_pairs, ignore_externals,
pin_externals, externals_to_pin, ctx, pool));
}
else
diff --git a/subversion/libsvn_client/copy_foreign.c b/subversion/libsvn_client/copy_foreign.c
deleted file mode 100644
index cfe6aea05846..000000000000
--- a/subversion/libsvn_client/copy_foreign.c
+++ /dev/null
@@ -1,575 +0,0 @@
-/*
- * copy_foreign.c: copy from other repository support.
- *
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- */
-
-/* ==================================================================== */
-
-/*** Includes. ***/
-
-#include <string.h>
-#include "svn_hash.h"
-#include "svn_client.h"
-#include "svn_delta.h"
-#include "svn_dirent_uri.h"
-#include "svn_error.h"
-#include "svn_error_codes.h"
-#include "svn_path.h"
-#include "svn_pools.h"
-#include "svn_props.h"
-#include "svn_ra.h"
-#include "svn_wc.h"
-
-#include <apr_md5.h>
-
-#include "client.h"
-#include "private/svn_subr_private.h"
-#include "private/svn_wc_private.h"
-#include "svn_private_config.h"
-
-struct edit_baton_t
-{
- apr_pool_t *pool;
- const char *anchor_abspath;
-
- svn_wc_context_t *wc_ctx;
- svn_wc_notify_func2_t notify_func;
- void *notify_baton;
-};
-
-struct dir_baton_t
-{
- apr_pool_t *pool;
-
- struct dir_baton_t *pb;
- struct edit_baton_t *eb;
-
- const char *local_abspath;
-
- svn_boolean_t created;
- apr_hash_t *properties;
-
- int users;
-};
-
-/* svn_delta_editor_t function */
-static svn_error_t *
-edit_open(void *edit_baton,
- svn_revnum_t base_revision,
- apr_pool_t *result_pool,
- void **root_baton)
-{
- struct edit_baton_t *eb = edit_baton;
- apr_pool_t *dir_pool = svn_pool_create(eb->pool);
- struct dir_baton_t *db = apr_pcalloc(dir_pool, sizeof(*db));
-
- db->pool = dir_pool;
- db->eb = eb;
- db->users = 1;
- db->local_abspath = eb->anchor_abspath;
-
- SVN_ERR(svn_io_make_dir_recursively(eb->anchor_abspath, dir_pool));
-
- *root_baton = db;
-
- return SVN_NO_ERROR;
-}
-
-/* svn_delta_editor_t function */
-static svn_error_t *
-edit_close(void *edit_baton,
- apr_pool_t *scratch_pool)
-{
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-dir_add(const char *path,
- void *parent_baton,
- const char *copyfrom_path,
- svn_revnum_t copyfrom_revision,
- apr_pool_t *result_pool,
- void **child_baton)
-{
- struct dir_baton_t *pb = parent_baton;
- struct edit_baton_t *eb = pb->eb;
- apr_pool_t *dir_pool = svn_pool_create(pb->pool);
- struct dir_baton_t *db = apr_pcalloc(dir_pool, sizeof(*db));
- svn_boolean_t under_root;
-
- pb->users++;
-
- db->pb = pb;
- db->eb = pb->eb;
- db->pool = dir_pool;
- db->users = 1;
-
- SVN_ERR(svn_dirent_is_under_root(&under_root, &db->local_abspath,
- eb->anchor_abspath, path, db->pool));
- if (! under_root)
- {
- return svn_error_createf(
- SVN_ERR_WC_OBSTRUCTED_UPDATE, NULL,
- _("Path '%s' is not in the working copy"),
- svn_dirent_local_style(path, db->pool));
- }
-
- SVN_ERR(svn_io_make_dir_recursively(db->local_abspath, db->pool));
-
- *child_baton = db;
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-dir_change_prop(void *dir_baton,
- const char *name,
- const svn_string_t *value,
- apr_pool_t *scratch_pool)
-{
- struct dir_baton_t *db = dir_baton;
- struct edit_baton_t *eb = db->eb;
- svn_prop_kind_t prop_kind;
-
- prop_kind = svn_property_kind2(name);
-
- if (prop_kind != svn_prop_regular_kind
- || ! strcmp(name, SVN_PROP_MERGEINFO))
- {
- /* We can't handle DAV, ENTRY and merge specific props here */
- return SVN_NO_ERROR;
- }
-
- if (! db->created)
- {
- /* We can still store them in the hash for immediate addition
- with the svn_wc_add_from_disk3() call */
- if (! db->properties)
- db->properties = apr_hash_make(db->pool);
-
- if (value != NULL)
- svn_hash_sets(db->properties, apr_pstrdup(db->pool, name),
- svn_string_dup(value, db->pool));
- }
- else
- {
- /* We have already notified for this directory, so don't do that again */
- SVN_ERR(svn_wc_prop_set4(eb->wc_ctx, db->local_abspath, name, value,
- svn_depth_empty, FALSE, NULL,
- NULL, NULL, /* Cancellation */
- NULL, NULL, /* Notification */
- scratch_pool));
- }
-
- return SVN_NO_ERROR;
-}
-
-/* Releases the directory baton if there are no more users */
-static svn_error_t *
-maybe_done(struct dir_baton_t *db)
-{
- db->users--;
-
- if (db->users == 0)
- {
- struct dir_baton_t *pb = db->pb;
-
- svn_pool_clear(db->pool);
-
- if (pb)
- SVN_ERR(maybe_done(pb));
- }
-
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-ensure_added(struct dir_baton_t *db,
- apr_pool_t *scratch_pool)
-{
- if (db->created)
- return SVN_NO_ERROR;
-
- if (db->pb)
- SVN_ERR(ensure_added(db->pb, scratch_pool));
-
- db->created = TRUE;
-
- /* Add the directory with all the already collected properties */
- SVN_ERR(svn_wc_add_from_disk3(db->eb->wc_ctx,
- db->local_abspath,
- db->properties,
- TRUE /* skip checks */,
- db->eb->notify_func,
- db->eb->notify_baton,
- scratch_pool));
-
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-dir_close(void *dir_baton,
- apr_pool_t *scratch_pool)
-{
- struct dir_baton_t *db = dir_baton;
- /*struct edit_baton_t *eb = db->eb;*/
-
- SVN_ERR(ensure_added(db, scratch_pool));
-
- SVN_ERR(maybe_done(db));
-
- return SVN_NO_ERROR;
-}
-
-struct file_baton_t
-{
- apr_pool_t *pool;
-
- struct dir_baton_t *pb;
- struct edit_baton_t *eb;
-
- const char *local_abspath;
- apr_hash_t *properties;
-
- svn_boolean_t writing;
- unsigned char digest[APR_MD5_DIGESTSIZE];
-
- const char *tmp_path;
-};
-
-static svn_error_t *
-file_add(const char *path,
- void *parent_baton,
- const char *copyfrom_path,
- svn_revnum_t copyfrom_revision,
- apr_pool_t *result_pool,
- void **file_baton)
-{
- struct dir_baton_t *pb = parent_baton;
- struct edit_baton_t *eb = pb->eb;
- apr_pool_t *file_pool = svn_pool_create(pb->pool);
- struct file_baton_t *fb = apr_pcalloc(file_pool, sizeof(*fb));
- svn_boolean_t under_root;
-
- pb->users++;
-
- fb->pool = file_pool;
- fb->eb = eb;
- fb->pb = pb;
-
- SVN_ERR(svn_dirent_is_under_root(&under_root, &fb->local_abspath,
- eb->anchor_abspath, path, fb->pool));
- if (! under_root)
- {
- return svn_error_createf(
- SVN_ERR_WC_OBSTRUCTED_UPDATE, NULL,
- _("Path '%s' is not in the working copy"),
- svn_dirent_local_style(path, fb->pool));
- }
-
- *file_baton = fb;
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-file_change_prop(void *file_baton,
- const char *name,
- const svn_string_t *value,
- apr_pool_t *scratch_pool)
-{
- struct file_baton_t *fb = file_baton;
- svn_prop_kind_t prop_kind;
-
- prop_kind = svn_property_kind2(name);
-
- if (prop_kind != svn_prop_regular_kind
- || ! strcmp(name, SVN_PROP_MERGEINFO))
- {
- /* We can't handle DAV, ENTRY and merge specific props here */
- return SVN_NO_ERROR;
- }
-
- /* We store all properties in the hash for immediate addition
- with the svn_wc_add_from_disk3() call */
- if (! fb->properties)
- fb->properties = apr_hash_make(fb->pool);
-
- if (value != NULL)
- svn_hash_sets(fb->properties, apr_pstrdup(fb->pool, name),
- svn_string_dup(value, fb->pool));
-
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-file_textdelta(void *file_baton,
- const char *base_checksum,
- apr_pool_t *result_pool,
- svn_txdelta_window_handler_t *handler,
- void **handler_baton)
-{
- struct file_baton_t *fb = file_baton;
- svn_stream_t *target;
-
- SVN_ERR_ASSERT(! fb->writing);
-
- SVN_ERR(svn_stream_open_writable(&target, fb->local_abspath, fb->pool,
- fb->pool));
-
- fb->writing = TRUE;
- svn_txdelta_apply(svn_stream_empty(fb->pool) /* source */,
- target,
- fb->digest,
- fb->local_abspath,
- fb->pool,
- /* Provide the handler directly */
- handler, handler_baton);
-
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-file_close(void *file_baton,
- const char *text_checksum,
- apr_pool_t *scratch_pool)
-{
- struct file_baton_t *fb = file_baton;
- struct edit_baton_t *eb = fb->eb;
- struct dir_baton_t *pb = fb->pb;
-
- SVN_ERR(ensure_added(pb, fb->pool));
-
- if (text_checksum)
- {
- svn_checksum_t *expected_checksum;
- svn_checksum_t *actual_checksum;
-
- SVN_ERR(svn_checksum_parse_hex(&expected_checksum, svn_checksum_md5,
- text_checksum, fb->pool));
- actual_checksum = svn_checksum__from_digest_md5(fb->digest, fb->pool);
-
- if (! svn_checksum_match(expected_checksum, actual_checksum))
- return svn_error_trace(
- svn_checksum_mismatch_err(expected_checksum,
- actual_checksum,
- fb->pool,
- _("Checksum mismatch for '%s'"),
- svn_dirent_local_style(
- fb->local_abspath,
- fb->pool)));
- }
-
- SVN_ERR(svn_wc_add_from_disk3(eb->wc_ctx, fb->local_abspath, fb->properties,
- TRUE /* skip checks */,
- eb->notify_func, eb->notify_baton,
- fb->pool));
-
- svn_pool_destroy(fb->pool);
- SVN_ERR(maybe_done(pb));
-
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-copy_foreign_dir(svn_ra_session_t *ra_session,
- svn_client__pathrev_t *location,
- svn_wc_context_t *wc_ctx,
- const char *dst_abspath,
- svn_depth_t depth,
- svn_wc_notify_func2_t notify_func,
- void *notify_baton,
- svn_cancel_func_t cancel_func,
- void *cancel_baton,
- apr_pool_t *scratch_pool)
-{
- struct edit_baton_t eb;
- svn_delta_editor_t *editor = svn_delta_default_editor(scratch_pool);
- const svn_delta_editor_t *wrapped_editor;
- void *wrapped_baton;
- const svn_ra_reporter3_t *reporter;
- void *reporter_baton;
-
- eb.pool = scratch_pool;
- eb.anchor_abspath = dst_abspath;
-
- eb.wc_ctx = wc_ctx;
- eb.notify_func = notify_func;
- eb.notify_baton = notify_baton;
-
- editor->open_root = edit_open;
- editor->close_edit = edit_close;
-
- editor->add_directory = dir_add;
- editor->change_dir_prop = dir_change_prop;
- editor->close_directory = dir_close;
-
- editor->add_file = file_add;
- editor->change_file_prop = file_change_prop;
- editor->apply_textdelta = file_textdelta;
- editor->close_file = file_close;
-
- SVN_ERR(svn_delta_get_cancellation_editor(cancel_func, cancel_baton,
- editor, &eb,
- &wrapped_editor, &wrapped_baton,
- scratch_pool));
-
- SVN_ERR(svn_ra_do_update3(ra_session, &reporter, &reporter_baton,
- location->rev, "", svn_depth_infinity,
- FALSE, FALSE, wrapped_editor, wrapped_baton,
- scratch_pool, scratch_pool));
-
- SVN_ERR(reporter->set_path(reporter_baton, "", location->rev, depth,
- TRUE /* incomplete */,
- NULL, scratch_pool));
-
- SVN_ERR(reporter->finish_report(reporter_baton, scratch_pool));
-
- return SVN_NO_ERROR;
-}
-
-
-svn_error_t *
-svn_client__copy_foreign(const char *url,
- const char *dst_abspath,
- svn_opt_revision_t *peg_revision,
- svn_opt_revision_t *revision,
- svn_depth_t depth,
- svn_boolean_t make_parents,
- svn_boolean_t already_locked,
- svn_client_ctx_t *ctx,
- apr_pool_t *scratch_pool)
-{
- svn_ra_session_t *ra_session;
- svn_client__pathrev_t *loc;
- svn_node_kind_t kind;
- svn_node_kind_t wc_kind;
- const char *dir_abspath;
-
- SVN_ERR_ASSERT(svn_path_is_url(url));
- SVN_ERR_ASSERT(svn_dirent_is_absolute(dst_abspath));
-
- /* Do we need to validate/update revisions? */
-
- SVN_ERR(svn_client__ra_session_from_path2(&ra_session, &loc,
- url, NULL,
- peg_revision,
- revision, ctx,
- scratch_pool));
-
- SVN_ERR(svn_ra_check_path(ra_session, "", loc->rev, &kind, scratch_pool));
-
- if (kind != svn_node_file && kind != svn_node_dir)
- return svn_error_createf(
- SVN_ERR_ILLEGAL_TARGET, NULL,
- _("'%s' is not a valid location inside a repository"),
- url);
-
- SVN_ERR(svn_wc_read_kind2(&wc_kind, ctx->wc_ctx, dst_abspath, FALSE, TRUE,
- scratch_pool));
-
- if (wc_kind != svn_node_none)
- {
- return svn_error_createf(
- SVN_ERR_ENTRY_EXISTS, NULL,
- _("'%s' is already under version control"),
- svn_dirent_local_style(dst_abspath, scratch_pool));
- }
-
- dir_abspath = svn_dirent_dirname(dst_abspath, scratch_pool);
- SVN_ERR(svn_wc_read_kind2(&wc_kind, ctx->wc_ctx, dir_abspath,
- FALSE, FALSE, scratch_pool));
-
- if (wc_kind == svn_node_none)
- {
- if (make_parents)
- SVN_ERR(svn_client__make_local_parents(dir_abspath, make_parents, ctx,
- scratch_pool));
-
- SVN_ERR(svn_wc_read_kind2(&wc_kind, ctx->wc_ctx, dir_abspath,
- FALSE, FALSE, scratch_pool));
- }
-
- if (wc_kind != svn_node_dir)
- return svn_error_createf(
- SVN_ERR_ENTRY_NOT_FOUND, NULL,
- _("Can't add '%s', because no parent directory is found"),
- svn_dirent_local_style(dst_abspath, scratch_pool));
-
-
- if (kind == svn_node_file)
- {
- svn_stream_t *target;
- apr_hash_t *props;
- apr_hash_index_t *hi;
- SVN_ERR(svn_stream_open_writable(&target, dst_abspath, scratch_pool,
- scratch_pool));
-
- SVN_ERR(svn_ra_get_file(ra_session, "", loc->rev, target, NULL, &props,
- scratch_pool));
-
- if (props != NULL)
- for (hi = apr_hash_first(scratch_pool, props); hi;
- hi = apr_hash_next(hi))
- {
- const char *name = apr_hash_this_key(hi);
-
- if (svn_property_kind2(name) != svn_prop_regular_kind
- || ! strcmp(name, SVN_PROP_MERGEINFO))
- {
- /* We can't handle DAV, ENTRY and merge specific props here */
- svn_hash_sets(props, name, NULL);
- }
- }
-
- if (!already_locked)
- SVN_WC__CALL_WITH_WRITE_LOCK(
- svn_wc_add_from_disk3(ctx->wc_ctx, dst_abspath, props,
- TRUE /* skip checks */,
- ctx->notify_func2, ctx->notify_baton2,
- scratch_pool),
- ctx->wc_ctx, dir_abspath, FALSE, scratch_pool);
- else
- SVN_ERR(svn_wc_add_from_disk3(ctx->wc_ctx, dst_abspath, props,
- TRUE /* skip checks */,
- ctx->notify_func2, ctx->notify_baton2,
- scratch_pool));
- }
- else
- {
- if (!already_locked)
- SVN_WC__CALL_WITH_WRITE_LOCK(
- copy_foreign_dir(ra_session, loc,
- ctx->wc_ctx, dst_abspath,
- depth,
- ctx->notify_func2, ctx->notify_baton2,
- ctx->cancel_func, ctx->cancel_baton,
- scratch_pool),
- ctx->wc_ctx, dir_abspath, FALSE, scratch_pool);
- else
- SVN_ERR(copy_foreign_dir(ra_session, loc,
- ctx->wc_ctx, dst_abspath,
- depth,
- ctx->notify_func2, ctx->notify_baton2,
- ctx->cancel_func, ctx->cancel_baton,
- scratch_pool));
- }
-
- return SVN_NO_ERROR;
-}
diff --git a/subversion/libsvn_client/delete.c b/subversion/libsvn_client/delete.c
index 943cdd9a4496..29a3395af2ea 100644
--- a/subversion/libsvn_client/delete.c
+++ b/subversion/libsvn_client/delete.c
@@ -181,12 +181,13 @@ can_delete_node(svn_boolean_t *target_missing,
static svn_error_t *
path_driver_cb_func(void **dir_baton,
+ const svn_delta_editor_t *editor,
+ void *edit_baton,
void *parent_baton,
void *callback_baton,
const char *path,
apr_pool_t *pool)
{
- const svn_delta_editor_t *editor = callback_baton;
*dir_baton = NULL;
return editor->delete_entry(path, SVN_INVALID_REVNUM, parent_baton, pool);
}
@@ -248,8 +249,8 @@ single_repos_delete(svn_ra_session_t *ra_session,
pool));
/* Call the path-based editor driver. */
- err = svn_delta_path_driver2(editor, edit_baton, relpaths, TRUE,
- path_driver_cb_func, (void *)editor, pool);
+ err = svn_delta_path_driver3(editor, edit_baton, relpaths, TRUE,
+ path_driver_cb_func, NULL, pool);
if (err)
{
diff --git a/subversion/libsvn_client/deprecated.c b/subversion/libsvn_client/deprecated.c
index dc20b2772286..b8e202609e74 100644
--- a/subversion/libsvn_client/deprecated.c
+++ b/subversion/libsvn_client/deprecated.c
@@ -166,6 +166,61 @@ svn_client_mkdir(svn_client_commit_info_t **commit_info_p,
}
/*** From blame.c ***/
+struct blame_receiver_wrapper_baton3 {
+ void *baton;
+ svn_client_blame_receiver3_t receiver;
+ svn_revnum_t start_revnum;
+ svn_revnum_t end_revnum;
+};
+
+static svn_error_t *
+blame_wrapper_receiver3(void *baton,
+ apr_int64_t line_no,
+ svn_revnum_t revision,
+ apr_hash_t *rev_props,
+ svn_revnum_t merged_revision,
+ apr_hash_t *merged_rev_props,
+ const char *merged_path,
+ const svn_string_t *line,
+ svn_boolean_t local_change,
+ apr_pool_t *pool)
+{
+ struct blame_receiver_wrapper_baton3 *brwb = baton;
+
+ if (brwb->receiver)
+ return brwb->receiver(brwb->baton, brwb->start_revnum, brwb->end_revnum,
+ line_no,
+ revision, rev_props, merged_revision,
+ merged_rev_props, merged_path, line->data,
+ local_change, pool);
+
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client_blame5(const char *target,
+ const svn_opt_revision_t *peg_revision,
+ const svn_opt_revision_t *start,
+ const svn_opt_revision_t *end,
+ const svn_diff_file_options_t *diff_options,
+ svn_boolean_t ignore_mime_type,
+ svn_boolean_t include_merged_revisions,
+ svn_client_blame_receiver3_t receiver,
+ void *receiver_baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool)
+{
+ struct blame_receiver_wrapper_baton3 baton;
+
+ baton.receiver = receiver;
+ baton.baton = receiver_baton;
+
+ return svn_client_blame6(&baton.start_revnum, &baton.end_revnum,
+ target, peg_revision, start, end,
+ diff_options,
+ ignore_mime_type, include_merged_revisions,
+ blame_wrapper_receiver3, &baton, ctx, pool);
+}
struct blame_receiver_wrapper_baton2 {
void *baton;
@@ -936,6 +991,42 @@ svn_client_delete(svn_client_commit_info_t **commit_info_p,
/*** From diff.c ***/
svn_error_t *
+svn_client_diff6(const apr_array_header_t *diff_options,
+ const char *path_or_url1,
+ const svn_opt_revision_t *revision1,
+ const char *path_or_url2,
+ const svn_opt_revision_t *revision2,
+ const char *relative_to_dir,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ svn_boolean_t no_diff_added,
+ svn_boolean_t no_diff_deleted,
+ svn_boolean_t show_copies_as_adds,
+ svn_boolean_t ignore_content_type,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
+ svn_boolean_t use_git_diff_format,
+ const char *header_encoding,
+ svn_stream_t *outstream,
+ svn_stream_t *errstream,
+ const apr_array_header_t *changelists,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool)
+{
+ return svn_client_diff7(diff_options,
+ path_or_url1, revision1,
+ path_or_url2, revision2,
+ relative_to_dir, depth,
+ ignore_ancestry, no_diff_added,
+ no_diff_deleted, show_copies_as_adds,
+ ignore_content_type, ignore_properties,
+ properties_only, use_git_diff_format,
+ TRUE /*pretty_print_mergeinfo*/,
+ header_encoding,
+ outstream, errstream, changelists, ctx, pool);
+}
+
+svn_error_t *
svn_client_diff5(const apr_array_header_t *diff_options,
const char *path1,
const svn_opt_revision_t *revision1,
@@ -1058,6 +1149,53 @@ svn_client_diff(const apr_array_header_t *options,
}
svn_error_t *
+svn_client_diff_peg6(const apr_array_header_t *options,
+ const char *path_or_url,
+ const svn_opt_revision_t *peg_revision,
+ const svn_opt_revision_t *start_revision,
+ const svn_opt_revision_t *end_revision,
+ const char *relative_to_dir,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ svn_boolean_t no_diff_added,
+ svn_boolean_t no_diff_deleted,
+ svn_boolean_t show_copies_as_adds,
+ svn_boolean_t ignore_content_type,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
+ svn_boolean_t use_git_diff_format,
+ const char *header_encoding,
+ svn_stream_t *outstream,
+ svn_stream_t *errstream,
+ const apr_array_header_t *changelists,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool)
+{
+ return svn_client_diff_peg7(options,
+ path_or_url,
+ peg_revision,
+ start_revision,
+ end_revision,
+ relative_to_dir,
+ depth,
+ ignore_ancestry,
+ no_diff_added,
+ no_diff_deleted,
+ show_copies_as_adds,
+ ignore_content_type,
+ ignore_properties,
+ properties_only,
+ use_git_diff_format,
+ TRUE /*pretty_print_mergeinfo*/,
+ header_encoding,
+ outstream,
+ errstream,
+ changelists,
+ ctx,
+ pool);
+}
+
+svn_error_t *
svn_client_diff_peg5(const apr_array_header_t *diff_options,
const char *path,
const svn_opt_revision_t *peg_revision,
@@ -1643,7 +1781,7 @@ svn_client_log(const apr_array_header_t *targets,
* we just invoke the receiver manually on a hand-constructed log
* message for revision 0.
*
- * See also http://subversion.tigris.org/issues/show_bug.cgi?id=692.
+ * See also https://issues.apache.org/jira/browse/SVN-692.
*/
if (err && (err->apr_err == SVN_ERR_FS_NO_SUCH_REVISION)
&& (start->kind == svn_opt_revision_head)
@@ -2853,6 +2991,22 @@ svn_client_resolved(const char *path,
}
/*** From revert.c ***/
svn_error_t *
+svn_client_revert3(const apr_array_header_t *paths,
+ svn_depth_t depth,
+ const apr_array_header_t *changelists,
+ svn_boolean_t clear_changelists,
+ svn_boolean_t metadata_only,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool)
+{
+ SVN_ERR(svn_client_revert4(paths, depth, changelists,
+ clear_changelists, metadata_only,
+ TRUE /*added_keep_local*/,
+ ctx, pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
svn_client_revert2(const apr_array_header_t *paths,
svn_depth_t depth,
const apr_array_header_t *changelists,
diff --git a/subversion/libsvn_client/diff.c b/subversion/libsvn_client/diff.c
index ba6e91eb2e7b..f019294f05c0 100644
--- a/subversion/libsvn_client/diff.c
+++ b/subversion/libsvn_client/diff.c
@@ -23,6 +23,9 @@
/* ==================================================================== */
+/* We define this here to remove any further warnings about the usage of
+ experimental functions in this file. */
+#define SVN_EXPERIMENTAL
/*** Includes. ***/
@@ -48,6 +51,7 @@
#include "svn_subst.h"
#include "client.h"
+#include "private/svn_client_shelf.h"
#include "private/svn_wc_private.h"
#include "private/svn_diff_private.h"
#include "private/svn_subr_private.h"
@@ -66,6 +70,31 @@
_("Path '%s' must be an immediate child of " \
"the directory '%s'"), path, relative_to_dir)
+/* State provided by the diff drivers; used by the diff writer */
+typedef struct diff_driver_info_t
+{
+ /* The anchor to prefix before wc paths */
+ const char *anchor;
+
+ /* Relative path of ra session from repos_root_url.
+
+ Used only in printing git diff headers. The repository-root-relative
+ path of ... ### what user-visible property of the diff? */
+ const char *session_relpath;
+
+ /* Used only in printing git diff headers. Used to find the
+ repository-root-relative path of a WC path. */
+ svn_wc_context_t *wc_ctx;
+
+ /* The original targets passed to the diff command. We may need
+ these to construct distinctive diff labels when comparing the
+ same relative path in the same revision, under different anchors
+ (for example, when comparing a trunk against a branch). */
+ const char *orig_path_1;
+ const char *orig_path_2;
+} diff_driver_info_t;
+
+
/* Calculate the repository relative path of DIFF_RELPATH, using
* SESSION_RELPATH and WC_CTX, and return the result in *REPOS_RELPATH.
* ORIG_TARGET is the related original target passed to the diff command,
@@ -120,25 +149,47 @@ make_repos_relpath(const char **repos_relpath,
return SVN_NO_ERROR;
}
-/* Adjust *INDEX_PATH, *ORIG_PATH_1 and *ORIG_PATH_2, representing the changed
- * node and the two original targets passed to the diff command, to handle the
- * case when we're dealing with different anchors. RELATIVE_TO_DIR is the
- * directory the diff target should be considered relative to.
- * ANCHOR is the local path where the diff editor is anchored. The resulting
- * values are allocated in RESULT_POOL and temporary allocations are performed
- * in SCRATCH_POOL. */
+/* Adjust paths to handle the case when we're dealing with different anchors.
+ *
+ * Set *INDEX_PATH to the new relative path. Set *LABEL_PATH1 and
+ * *LABEL_PATH2 to that path annotated with the unique parts of ORIG_PATH_1
+ * and ORIG_PATH_2 respectively, like this:
+ *
+ * INDEX_PATH: "path"
+ * LABEL_PATH1: "path\t(.../branches/branch1)"
+ * LABEL_PATH2: "path\t(.../trunk)"
+ *
+ * Make the output paths relative to RELATIVE_TO_DIR (if not null) by
+ * removing it from the beginning of (ANCHOR + RELPATH).
+ *
+ * ANCHOR (if not null) is the local path where the diff editor is anchored.
+ * RELPATH is the path to the changed node within the diff editor, so
+ * relative to ANCHOR.
+ *
+ * RELATIVE_TO_DIR and ANCHOR are of the same form -- either absolute local
+ * paths or relative paths relative to the same base.
+ *
+ * ORIG_PATH_1 and ORIG_PATH_2 represent the two original target paths or
+ * URLs passed to the diff command.
+ *
+ * Allocate results in RESULT_POOL (or as a pointer to RELPATH) and
+ * temporary data in SCRATCH_POOL.
+ */
static svn_error_t *
adjust_paths_for_diff_labels(const char **index_path,
- const char **orig_path_1,
- const char **orig_path_2,
+ const char **label_path1,
+ const char **label_path2,
const char *relative_to_dir,
const char *anchor,
+ const char *relpath,
+ const char *orig_path_1,
+ const char *orig_path_2,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
- const char *new_path = *index_path;
- const char *new_path1 = *orig_path_1;
- const char *new_path2 = *orig_path_2;
+ const char *new_path = relpath;
+ const char *new_path1 = orig_path_1;
+ const char *new_path2 = orig_path_2;
if (anchor)
new_path = svn_dirent_join(anchor, new_path, result_pool);
@@ -177,6 +228,7 @@ adjust_paths_for_diff_labels(const char **index_path,
/* ### BH: We can now just construct the repos_relpath, etc. as the
anchor is available. See also make_repos_relpath() */
+ /* Remove the common prefix of NEW_PATH1 and NEW_PATH2. */
is_url1 = svn_path_is_url(new_path1);
is_url2 = svn_path_is_url(new_path2);
@@ -220,8 +272,8 @@ adjust_paths_for_diff_labels(const char **index_path,
new_path2 = apr_psprintf(result_pool, "%s\t(.../%s)", new_path, new_path2);
*index_path = new_path;
- *orig_path_1 = new_path1;
- *orig_path_2 = new_path2;
+ *label_path1 = new_path1;
+ *label_path2 = new_path2;
return SVN_NO_ERROR;
}
@@ -383,28 +435,33 @@ maybe_print_mode_change(svn_stream_t *os,
}
/* Print a git diff header showing the OPERATION to the stream OS using
- * HEADER_ENCODING. Return suitable diff labels for the git diff in *LABEL1
- * and *LABEL2. REPOS_RELPATH1 and REPOS_RELPATH2 are relative to reposroot.
- * are the paths passed to the original diff command. REV1 and REV2 are
- * revisions being diffed. COPYFROM_PATH and COPYFROM_REV indicate where the
+ * HEADER_ENCODING.
+ *
+ * Return suitable diff labels for the git diff in *LABEL1 and *LABEL2.
+ *
+ * REV1 and REV2 are the revisions being diffed.
+ * COPYFROM_PATH and COPYFROM_REV indicate where the
* diffed item was copied from.
* Use SCRATCH_POOL for temporary allocations. */
static svn_error_t *
print_git_diff_header(svn_stream_t *os,
const char **label1, const char **label2,
svn_diff_operation_kind_t operation,
- const char *repos_relpath1,
- const char *repos_relpath2,
svn_revnum_t rev1,
svn_revnum_t rev2,
+ const char *diff_relpath,
const char *copyfrom_path,
svn_revnum_t copyfrom_rev,
apr_hash_t *left_props,
apr_hash_t *right_props,
const char *git_index_shas,
const char *header_encoding,
+ const diff_driver_info_t *ddi,
apr_pool_t *scratch_pool)
{
+ const char *repos_relpath1;
+ const char *repos_relpath2;
+ const char *copyfrom_repos_relpath = NULL;
svn_boolean_t exec_bit1 = (svn_prop_get_value(left_props,
SVN_PROP_EXECUTABLE) != NULL);
svn_boolean_t exec_bit2 = (svn_prop_get_value(right_props,
@@ -414,6 +471,26 @@ print_git_diff_header(svn_stream_t *os,
svn_boolean_t symlink_bit2 = (svn_prop_get_value(right_props,
SVN_PROP_SPECIAL) != NULL);
+ SVN_ERR(make_repos_relpath(&repos_relpath1, diff_relpath,
+ ddi->orig_path_1,
+ ddi->session_relpath,
+ ddi->wc_ctx,
+ ddi->anchor,
+ scratch_pool, scratch_pool));
+ SVN_ERR(make_repos_relpath(&repos_relpath2, diff_relpath,
+ ddi->orig_path_2,
+ ddi->session_relpath,
+ ddi->wc_ctx,
+ ddi->anchor,
+ scratch_pool, scratch_pool));
+ if (copyfrom_path)
+ SVN_ERR(make_repos_relpath(&copyfrom_repos_relpath, copyfrom_path,
+ ddi->orig_path_2,
+ ddi->session_relpath,
+ ddi->wc_ctx,
+ ddi->anchor,
+ scratch_pool, scratch_pool));
+
if (operation == svn_diff_op_deleted)
{
SVN_ERR(print_git_diff_header_deleted(os, header_encoding,
@@ -487,26 +564,45 @@ print_git_diff_header(svn_stream_t *os,
return SVN_NO_ERROR;
}
+/* Print the "Index:" and "=====" lines.
+ * Show the paths in platform-independent format ('/' separators)
+ */
+static svn_error_t *
+print_diff_index_header(svn_stream_t *outstream,
+ const char *header_encoding,
+ const char *index_path,
+ const char *suffix,
+ apr_pool_t *scratch_pool)
+{
+ SVN_ERR(svn_stream_printf_from_utf8(outstream,
+ header_encoding, scratch_pool,
+ "Index: %s%s" APR_EOL_STR
+ SVN_DIFF__EQUAL_STRING APR_EOL_STR,
+ index_path, suffix));
+ return SVN_NO_ERROR;
+}
+
/* A helper func that writes out verbal descriptions of property diffs
to OUTSTREAM. Of course, OUTSTREAM will probably be whatever was
- passed to svn_client_diff6(), which is probably stdout.
+ passed to svn_client_diff7(), which is probably stdout.
### FIXME needs proper docstring
If USE_GIT_DIFF_FORMAT is TRUE, pring git diff headers, which always
- show paths relative to the repository root. RA_SESSION and WC_CTX are
- needed to normalize paths relative the repository root, and are ignored
- if USE_GIT_DIFF_FORMAT is FALSE.
-
- ANCHOR is the local path where the diff editor is anchored. */
+ show paths relative to the repository root. DDI->session_relpath and
+ DDI->wc_ctx are needed to normalize paths relative the repository root,
+ and are ignored if USE_GIT_DIFF_FORMAT is FALSE.
+
+ If @a pretty_print_mergeinfo is true, then describe 'svn:mergeinfo'
+ property changes in a human-readable form that says what changes were
+ merged or reverse merged; otherwise (or if the mergeinfo property values
+ don't parse correctly) display them just like any other property.
+ */
static svn_error_t *
display_prop_diffs(const apr_array_header_t *propchanges,
apr_hash_t *left_props,
apr_hash_t *right_props,
const char *diff_relpath,
- const char *anchor,
- const char *orig_path1,
- const char *orig_path2,
svn_revnum_t rev1,
svn_revnum_t rev2,
const char *encoding,
@@ -514,32 +610,29 @@ display_prop_diffs(const apr_array_header_t *propchanges,
const char *relative_to_dir,
svn_boolean_t show_diff_header,
svn_boolean_t use_git_diff_format,
- const char *ra_session_relpath,
+ svn_boolean_t pretty_print_mergeinfo,
+ const diff_driver_info_t *ddi,
svn_cancel_func_t cancel_func,
void *cancel_baton,
- svn_wc_context_t *wc_ctx,
apr_pool_t *scratch_pool)
{
const char *repos_relpath1 = NULL;
- const char *repos_relpath2 = NULL;
- const char *index_path = diff_relpath;
- const char *adjusted_path1 = orig_path1;
- const char *adjusted_path2 = orig_path2;
+ const char *index_path;
+ const char *label_path1, *label_path2;
if (use_git_diff_format)
{
- SVN_ERR(make_repos_relpath(&repos_relpath1, diff_relpath, orig_path1,
- ra_session_relpath, wc_ctx, anchor,
- scratch_pool, scratch_pool));
- SVN_ERR(make_repos_relpath(&repos_relpath2, diff_relpath, orig_path2,
- ra_session_relpath, wc_ctx, anchor,
+ SVN_ERR(make_repos_relpath(&repos_relpath1, diff_relpath, ddi->orig_path_1,
+ ddi->session_relpath, ddi->wc_ctx, ddi->anchor,
scratch_pool, scratch_pool));
}
/* If we're creating a diff on the wc root, path would be empty. */
- SVN_ERR(adjust_paths_for_diff_labels(&index_path, &adjusted_path1,
- &adjusted_path2,
- relative_to_dir, anchor,
+ SVN_ERR(adjust_paths_for_diff_labels(&index_path,
+ &label_path1, &label_path2,
+ relative_to_dir, ddi->anchor,
+ diff_relpath,
+ ddi->orig_path_1, ddi->orig_path_2,
scratch_pool, scratch_pool));
if (show_diff_header)
@@ -547,27 +640,21 @@ display_prop_diffs(const apr_array_header_t *propchanges,
const char *label1;
const char *label2;
- label1 = diff_label(adjusted_path1, rev1, scratch_pool);
- label2 = diff_label(adjusted_path2, rev2, scratch_pool);
-
- /* ### Should we show the paths in platform specific format,
- * ### diff_content_changed() does not! */
+ label1 = diff_label(label_path1, rev1, scratch_pool);
+ label2 = diff_label(label_path2, rev2, scratch_pool);
- SVN_ERR(svn_stream_printf_from_utf8(outstream, encoding, scratch_pool,
- "Index: %s" APR_EOL_STR
- SVN_DIFF__EQUAL_STRING APR_EOL_STR,
- index_path));
+ SVN_ERR(print_diff_index_header(outstream, encoding,
+ index_path, "", scratch_pool));
if (use_git_diff_format)
SVN_ERR(print_git_diff_header(outstream, &label1, &label2,
svn_diff_op_modified,
- repos_relpath1, repos_relpath2,
- rev1, rev2, NULL,
- SVN_INVALID_REVNUM,
- left_props,
- right_props,
+ rev1, rev2,
+ diff_relpath,
+ NULL, SVN_INVALID_REVNUM,
+ left_props, right_props,
NULL,
- encoding, scratch_pool));
+ encoding, ddi, scratch_pool));
/* --- label1
* +++ label2 */
@@ -588,7 +675,7 @@ display_prop_diffs(const apr_array_header_t *propchanges,
SVN_ERR(svn_diff__display_prop_diffs(
outstream, encoding, propchanges, left_props,
- TRUE /* pretty_print_mergeinfo */,
+ pretty_print_mergeinfo,
-1 /* context_size */,
cancel_func, cancel_baton, scratch_pool));
@@ -599,24 +686,6 @@ display_prop_diffs(const apr_array_header_t *propchanges,
/*** Callbacks for 'svn diff', invoked by the repos-diff editor. ***/
-/* State provided by the diff drivers; used by the diff writer */
-typedef struct diff_driver_info_t
-{
- /* The anchor to prefix before wc paths */
- const char *anchor;
-
- /* Relative path of ra session from repos_root_url */
- const char *session_relpath;
-
- /* The original targets passed to the diff command. We may need
- these to construct distinctive diff labels when comparing the
- same relative path in the same revision, under different anchors
- (for example, when comparing a trunk against a branch). */
- const char *orig_path_1;
- const char *orig_path_2;
-} diff_driver_info_t;
-
-
/* Diff writer state */
typedef struct diff_writer_info_t
{
@@ -668,11 +737,12 @@ typedef struct diff_writer_info_t
/* Whether to ignore copyfrom information when showing adds */
svn_boolean_t show_copies_as_adds;
+ /* Whether to show mergeinfo prop changes in human-readable form */
+ svn_boolean_t pretty_print_mergeinfo;
+
/* Empty files for creating diffs or NULL if not used yet */
const char *empty_file;
- svn_wc_context_t *wc_ctx;
-
svn_cancel_func_t cancel_func;
void *cancel_baton;
@@ -708,9 +778,6 @@ diff_props_changed(const char *diff_relpath,
* dir_props_changed(). */
SVN_ERR(display_prop_diffs(props, left_props, right_props,
diff_relpath,
- dwi->ddi.anchor,
- dwi->ddi.orig_path_1,
- dwi->ddi.orig_path_2,
rev1,
rev2,
dwi->header_encoding,
@@ -718,10 +785,10 @@ diff_props_changed(const char *diff_relpath,
dwi->relative_to_dir,
show_diff_header,
dwi->use_git_diff_format,
- dwi->ddi.session_relpath,
+ dwi->pretty_print_mergeinfo,
+ &dwi->ddi,
dwi->cancel_func,
dwi->cancel_baton,
- dwi->wc_ctx,
scratch_pool));
}
@@ -785,9 +852,12 @@ transform_link_to_git(const char **new_tmpfile,
}
/* Show differences between TMPFILE1 and TMPFILE2. DIFF_RELPATH, REV1, and
- REV2 are used in the headers to indicate the file and revisions. If either
- MIMETYPE1 or MIMETYPE2 indicate binary content, don't show a diff,
- but instead print a warning message.
+ REV2 are used in the headers to indicate the file and revisions.
+
+ If either side has an svn:mime-type property that indicates 'binary'
+ content, then if DWI->force_binary is set, attempt to produce the
+ diff in the usual way, otherwise produce a 'GIT binary diff' in git mode
+ or print a warning message in non-git mode.
If FORCE_DIFF is TRUE, always write a diff, even for empty diffs.
@@ -812,9 +882,8 @@ diff_content_changed(svn_boolean_t *wrote_header,
svn_stream_t *outstream = dwi->outstream;
const char *label1, *label2;
svn_boolean_t mt1_binary = FALSE, mt2_binary = FALSE;
- const char *index_path = diff_relpath;
- const char *path1 = dwi->ddi.orig_path_1;
- const char *path2 = dwi->ddi.orig_path_2;
+ const char *index_path;
+ const char *label_path1, *label_path2;
const char *mimetype1 = svn_prop_get_value(left_props, SVN_PROP_MIME_TYPE);
const char *mimetype2 = svn_prop_get_value(right_props, SVN_PROP_MIME_TYPE);
const char *index_shas = NULL;
@@ -824,12 +893,15 @@ diff_content_changed(svn_boolean_t *wrote_header,
return SVN_NO_ERROR;
/* Generate the diff headers. */
- SVN_ERR(adjust_paths_for_diff_labels(&index_path, &path1, &path2,
+ SVN_ERR(adjust_paths_for_diff_labels(&index_path,
+ &label_path1, &label_path2,
rel_to_dir, dwi->ddi.anchor,
+ diff_relpath,
+ dwi->ddi.orig_path_1, dwi->ddi.orig_path_2,
scratch_pool, scratch_pool));
- label1 = diff_label(path1, rev1, scratch_pool);
- label2 = diff_label(path2, rev2, scratch_pool);
+ label1 = diff_label(label_path1, rev1, scratch_pool);
+ label2 = diff_label(label_path2, rev2, scratch_pool);
/* Possible easy-out: if either mime-type is binary and force was not
specified, don't attempt to generate a viewable diff at all.
@@ -869,12 +941,8 @@ diff_content_changed(svn_boolean_t *wrote_header,
if (! dwi->force_binary && (mt1_binary || mt2_binary))
{
/* Print out the diff header. */
- SVN_ERR(svn_stream_printf_from_utf8(outstream,
- dwi->header_encoding, scratch_pool,
- "Index: %s" APR_EOL_STR
- SVN_DIFF__EQUAL_STRING APR_EOL_STR,
- index_path));
-
+ SVN_ERR(print_diff_index_header(outstream, dwi->header_encoding,
+ index_path, "", scratch_pool));
*wrote_header = TRUE;
/* ### Print git diff headers. */
@@ -883,40 +951,17 @@ diff_content_changed(svn_boolean_t *wrote_header,
{
svn_stream_t *left_stream;
svn_stream_t *right_stream;
- const char *repos_relpath1;
- const char *repos_relpath2;
- const char *copyfrom_repos_relpath = NULL;
-
- SVN_ERR(make_repos_relpath(&repos_relpath1, diff_relpath,
- dwi->ddi.orig_path_1,
- dwi->ddi.session_relpath,
- dwi->wc_ctx,
- dwi->ddi.anchor,
- scratch_pool, scratch_pool));
- SVN_ERR(make_repos_relpath(&repos_relpath2, diff_relpath,
- dwi->ddi.orig_path_2,
- dwi->ddi.session_relpath,
- dwi->wc_ctx,
- dwi->ddi.anchor,
- scratch_pool, scratch_pool));
- if (copyfrom_path)
- SVN_ERR(make_repos_relpath(&copyfrom_repos_relpath, copyfrom_path,
- dwi->ddi.orig_path_2,
- dwi->ddi.session_relpath,
- dwi->wc_ctx,
- dwi->ddi.anchor,
- scratch_pool, scratch_pool));
- SVN_ERR(print_git_diff_header(outstream, &label1, &label2,
+
+ SVN_ERR(print_git_diff_header(outstream,
+ &label1, &label2,
operation,
- repos_relpath1, repos_relpath2,
rev1, rev2,
- copyfrom_repos_relpath,
- copyfrom_rev,
- left_props,
- right_props,
+ diff_relpath,
+ copyfrom_path, copyfrom_rev,
+ left_props, right_props,
index_shas,
dwi->header_encoding,
- scratch_pool));
+ &dwi->ddi, scratch_pool));
SVN_ERR(svn_stream_open_readonly(&left_stream, tmpfile1,
scratch_pool, scratch_pool));
@@ -973,11 +1018,9 @@ diff_content_changed(svn_boolean_t *wrote_header,
int exitcode;
/* Print out the diff header. */
- SVN_ERR(svn_stream_printf_from_utf8(outstream,
- dwi->header_encoding, scratch_pool,
- "Index: %s" APR_EOL_STR
- SVN_DIFF__EQUAL_STRING APR_EOL_STR,
- index_path));
+ SVN_ERR(print_diff_index_header(outstream, dwi->header_encoding,
+ index_path, "", scratch_pool));
+ *wrote_header = TRUE;
/* ### Do we want to add git diff headers here too? I'd say no. The
* ### 'Index' and '===' line is something subversion has added. The rest
@@ -1030,10 +1073,6 @@ diff_content_changed(svn_boolean_t *wrote_header,
scratch_pool),
NULL, NULL, scratch_pool));
}
-
- /* If we have printed a diff for this path, mark it as visited. */
- if (exitcode == 1)
- *wrote_header = TRUE;
}
else /* use libsvn_diff to generate the diff */
{
@@ -1048,49 +1087,22 @@ diff_content_changed(svn_boolean_t *wrote_header,
|| svn_diff_contains_diffs(diff))
{
/* Print out the diff header. */
- SVN_ERR(svn_stream_printf_from_utf8(outstream,
- dwi->header_encoding, scratch_pool,
- "Index: %s" APR_EOL_STR
- SVN_DIFF__EQUAL_STRING APR_EOL_STR,
- index_path));
+ SVN_ERR(print_diff_index_header(outstream, dwi->header_encoding,
+ index_path, "", scratch_pool));
+ *wrote_header = TRUE;
if (dwi->use_git_diff_format)
{
- const char *repos_relpath1;
- const char *repos_relpath2;
- const char *copyfrom_repos_relpath = NULL;
-
- SVN_ERR(make_repos_relpath(&repos_relpath1, diff_relpath,
- dwi->ddi.orig_path_1,
- dwi->ddi.session_relpath,
- dwi->wc_ctx,
- dwi->ddi.anchor,
- scratch_pool, scratch_pool));
- SVN_ERR(make_repos_relpath(&repos_relpath2, diff_relpath,
- dwi->ddi.orig_path_2,
- dwi->ddi.session_relpath,
- dwi->wc_ctx,
- dwi->ddi.anchor,
- scratch_pool, scratch_pool));
- if (copyfrom_path)
- SVN_ERR(make_repos_relpath(&copyfrom_repos_relpath,
- copyfrom_path,
- dwi->ddi.orig_path_2,
- dwi->ddi.session_relpath,
- dwi->wc_ctx,
- dwi->ddi.anchor,
- scratch_pool, scratch_pool));
- SVN_ERR(print_git_diff_header(outstream, &label1, &label2,
+ SVN_ERR(print_git_diff_header(outstream,
+ &label1, &label2,
operation,
- repos_relpath1, repos_relpath2,
rev1, rev2,
- copyfrom_repos_relpath,
- copyfrom_rev,
- left_props,
- right_props,
+ diff_relpath,
+ copyfrom_path, copyfrom_rev,
+ left_props, right_props,
index_shas,
dwi->header_encoding,
- scratch_pool));
+ &dwi->ddi, scratch_pool));
}
/* Output the actual diff */
@@ -1102,10 +1114,6 @@ diff_content_changed(svn_boolean_t *wrote_header,
dwi->options.for_internal->context_size,
dwi->cancel_func, dwi->cancel_baton,
scratch_pool));
-
- /* If we have printed a diff for this path, mark it as visited. */
- if (dwi->use_git_diff_format || svn_diff_contains_diffs(diff))
- *wrote_header = TRUE;
}
}
@@ -1180,11 +1188,9 @@ diff_file_added(const char *relpath,
index_path = svn_dirent_join(dwi->ddi.anchor, relpath,
scratch_pool);
- SVN_ERR(svn_stream_printf_from_utf8(dwi->outstream,
- dwi->header_encoding, scratch_pool,
- "Index: %s (added)" APR_EOL_STR
- SVN_DIFF__EQUAL_STRING APR_EOL_STR,
- index_path));
+ SVN_ERR(print_diff_index_header(dwi->outstream, dwi->header_encoding,
+ index_path, " (added)",
+ scratch_pool));
wrote_header = TRUE;
return SVN_NO_ERROR;
}
@@ -1270,11 +1276,9 @@ diff_file_deleted(const char *relpath,
index_path = svn_dirent_join(dwi->ddi.anchor, relpath,
scratch_pool);
- SVN_ERR(svn_stream_printf_from_utf8(dwi->outstream,
- dwi->header_encoding, scratch_pool,
- "Index: %s (deleted)" APR_EOL_STR
- SVN_DIFF__EQUAL_STRING APR_EOL_STR,
- index_path));
+ SVN_ERR(print_diff_index_header(dwi->outstream, dwi->header_encoding,
+ index_path, " (deleted)",
+ scratch_pool));
}
else
{
@@ -1537,11 +1541,22 @@ check_diff_target_exists(const char *url,
/** Prepare a repos repos diff between PATH_OR_URL1 and
* PATH_OR_URL2@PEG_REVISION, in the revision range REVISION1:REVISION2.
- * Return URLs and peg revisions in *URL1, *REV1 and in *URL2, *REV2.
- * Return suitable anchors in *ANCHOR1 and *ANCHOR2, and targets in
- * *TARGET1 and *TARGET2, based on *URL1 and *URL2.
- * Indicate the corresponding node kinds in *KIND1 and *KIND2, and verify
+ *
+ * Return the resolved URL and peg revision pairs in *URL1, *REV1 and in
+ * *URL2, *REV2.
+ *
+ * Return suitable anchor URL and target pairs in *ANCHOR1, *TARGET1 and
+ * in *ANCHOR2, *TARGET2, corresponding to *URL1 and *URL2.
+ *
+ * (The choice of anchor URLs here appears to be: start with *URL1, *URL2;
+ * then take the parent dir on both sides, unless either of *URL1 or *URL2
+ * is the repository root or the parent dir of *URL1 is unreadable.)
+ *
+ * Set *KIND1 and *KIND2 to the node kinds of *URL1 and *URL2, and verify
* that at least one of the diff targets exists.
+ *
+ * Set *RA_SESSION to an RA session parented at the URL *ANCHOR1.
+ *
* Use client context CTX. Do all allocations in POOL. */
static svn_error_t *
diff_prepare_repos_repos(const char **url1,
@@ -1766,8 +1781,8 @@ diff_prepare_repos_repos(const char **url1,
/* A Theoretical Note From Ben, regarding do_diff().
- This function is really svn_client_diff6(). If you read the public
- API description for svn_client_diff6(), it sounds quite Grand. It
+ This function is really svn_client_diff7(). If you read the public
+ API description for svn_client_diff7(), it sounds quite Grand. It
sounds really generalized and abstract and beautiful: that it will
diff any two paths, be they working-copy paths or URLs, at any two
revisions.
@@ -1791,7 +1806,7 @@ diff_prepare_repos_repos(const char **url1,
pigeonholed into one of these use-cases, we currently bail with a
friendly apology.
- Perhaps someday a brave soul will truly make svn_client_diff6()
+ Perhaps someday a brave soul will truly make svn_client_diff7()
perfectly general. For now, we live with the 90% case. Certainly,
the commandline client only calls this function in legal ways.
When there are other users of svn_client.h, maybe this will become
@@ -1804,7 +1819,7 @@ static svn_error_t *
unsupported_diff_error(svn_error_t *child_err)
{
return svn_error_create(SVN_ERR_INCORRECT_PARAMS, child_err,
- _("Sorry, svn_client_diff6 was called in a way "
+ _("Sorry, svn_client_diff7 was called in a way "
"that is not yet supported"));
}
@@ -1813,12 +1828,14 @@ unsupported_diff_error(svn_error_t *child_err)
PATH1 and PATH2 are both working copy paths. REVISION1 and
REVISION2 are their respective revisions.
- All other options are the same as those passed to svn_client_diff6(). */
+ For now, require PATH1=PATH2, REVISION1='base', REVISION2='working',
+ otherwise return an error.
+
+ Anchor DIFF_PROCESSOR at the requested diff targets.
+
+ All other options are the same as those passed to svn_client_diff7(). */
static svn_error_t *
-diff_wc_wc(const char **root_relpath,
- svn_boolean_t *root_is_dir,
- struct diff_driver_info_t *ddi,
- const char *path1,
+diff_wc_wc(const char *path1,
const svn_opt_revision_t *revision1,
const char *path2,
const svn_opt_revision_t *revision2,
@@ -1844,24 +1861,12 @@ diff_wc_wc(const char **root_relpath,
&& (revision2->kind == svn_opt_revision_working))))
return unsupported_diff_error(
svn_error_create(SVN_ERR_INCORRECT_PARAMS, NULL,
- _("Only diffs between a path's text-base "
- "and its working files are supported at this time"
+ _("A non-URL diff at this time must be either from "
+ "a path's base to the same path's working version "
+ "or between the working versions of two paths"
)));
- if (ddi)
- {
- svn_node_kind_t kind;
-
- SVN_ERR(svn_wc_read_kind2(&kind, ctx->wc_ctx, abspath1,
- TRUE, FALSE, scratch_pool));
-
- if (kind != svn_node_dir)
- ddi->anchor = svn_dirent_dirname(path1, scratch_pool);
- else
- ddi->anchor = path1;
- }
-
- SVN_ERR(svn_wc__diff7(root_relpath, root_is_dir,
+ SVN_ERR(svn_wc__diff7(TRUE,
ctx->wc_ctx, abspath1, depth,
ignore_ancestry, changelists,
diff_processor,
@@ -1878,11 +1883,31 @@ diff_wc_wc(const char **root_relpath,
and the actual two paths compared are determined by following copy
history from PATH_OR_URL2.
- All other options are the same as those passed to svn_client_diff6(). */
+ If DDI is null, anchor the DIFF_PROCESSOR at the requested diff
+ targets. (This case is used by diff-summarize.)
+
+ If DDI is non-null: Set DDI->orig_path_* to the two diff target URLs as
+ resolved at the given revisions; set DDI->anchor to an anchor WC path
+ if either of PATH_OR_URL* is given as a WC path, else to null; set
+ DDI->session_relpath to the repository-relpath of the anchor URL for
+ DDI->orig_path_1. Anchor the DIFF_PROCESSOR at the anchor chosen
+ for the underlying diff implementation if the target on either side
+ is a file, else at the actual requested targets.
+
+ (The choice of WC anchor implementated here for DDI->anchor appears to
+ be: choose PATH_OR_URL2 (if it's a WC path) or else PATH_OR_URL1 (if
+ it's a WC path); then take its parent dir unless both resolved URLs
+ refer to directories.)
+
+ (For the choice of URL anchor for DDI->session_relpath, see
+ diff_prepare_repos_repos().)
+
+ ### Bizarre anchoring. TODO: always anchor DIFF_PROCESSOR at the
+ requested targets.
+
+ All other options are the same as those passed to svn_client_diff7(). */
static svn_error_t *
-diff_repos_repos(const char **root_relpath,
- svn_boolean_t *root_is_dir,
- struct diff_driver_info_t *ddi,
+diff_repos_repos(struct diff_driver_info_t *ddi,
const char *path_or_url1,
const char *path_or_url2,
const svn_opt_revision_t *revision1,
@@ -1974,14 +1999,16 @@ diff_repos_repos(const char **root_relpath,
target1 = str_tmp;
diff_processor = svn_diff__tree_processor_reverse_create(diff_processor,
- NULL,
scratch_pool);
}
/* Filter the first path component using a filter processor, until we fixed
the diff processing to handle this directly */
- if (root_relpath)
- *root_relpath = apr_pstrdup(result_pool, target1);
+ if (!ddi)
+ {
+ diff_processor = svn_diff__tree_processor_filter_create(
+ diff_processor, target1, scratch_pool);
+ }
else if ((kind1 != svn_node_file && kind2 != svn_node_file)
&& target1[0] != '\0')
{
@@ -2048,11 +2075,17 @@ diff_repos_repos(const char **root_relpath,
If REVERSE is TRUE, the diff will be reported in reverse.
- All other options are the same as those passed to svn_client_diff6(). */
+ If DDI is null, anchor the DIFF_PROCESSOR at the requested diff
+ targets. (This case is used by diff-summarize.)
+
+ If DDI is non-null: Set DDI->orig_path_* to the URLs of the two diff
+ targets as resolved at the given revisions; set DDI->anchor to a WC path
+ anchor for PATH2; set DDI->session_relpath to the repository-relpath of
+ the URL of that same anchor WC path.
+
+ All other options are the same as those passed to svn_client_diff7(). */
static svn_error_t *
-diff_repos_wc(const char **root_relpath,
- svn_boolean_t *root_is_dir,
- struct diff_driver_info_t *ddi,
+diff_repos_wc(struct diff_driver_info_t *ddi,
const char *path_or_url1,
const svn_opt_revision_t *revision1,
const svn_opt_revision_t *peg_revision1,
@@ -2130,11 +2163,6 @@ diff_repos_wc(const char **root_relpath,
target = "";
}
- if (root_relpath)
- *root_relpath = apr_pstrdup(result_pool, target);
- if (root_is_dir)
- *root_is_dir = (*target == '\0');
-
/* Fetch the URL of the anchor directory. */
SVN_ERR(svn_dirent_get_absolute(&anchor_abspath, anchor, scratch_pool));
SVN_ERR(svn_wc__node_get_url(&anchor_url, ctx->wc_ctx, anchor_abspath,
@@ -2143,7 +2171,7 @@ diff_repos_wc(const char **root_relpath,
target_url = NULL;
}
- else /* is_copy && revision2->kind == svn_opt_revision_base */
+ else /* is_copy && revision2->kind != svn_opt_revision_base */
{
#if 0
svn_node_kind_t kind;
@@ -2232,10 +2260,14 @@ diff_repos_wc(const char **root_relpath,
anchor_url,
result_pool);
}
+ else
+ {
+ diff_processor = svn_diff__tree_processor_filter_create(
+ diff_processor, target, scratch_pool);
+ }
if (reverse)
- diff_processor = svn_diff__tree_processor_reverse_create(
- diff_processor, NULL, scratch_pool);
+ diff_processor = svn_diff__tree_processor_reverse_create(diff_processor, scratch_pool);
/* Use the diff editor to generate the diff. */
SVN_ERR(svn_ra_has_capability(ra_session, &server_supports_depth,
@@ -2311,12 +2343,84 @@ diff_repos_wc(const char **root_relpath,
return SVN_NO_ERROR;
}
+/* Run diff on shelf SHELF_NAME, if it exists.
+ */
+static svn_error_t *
+diff_shelf(const char *shelf_name,
+ const char *target_abspath,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ const svn_diff_tree_processor_t *diff_processor,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ svn_error_t *err;
+ svn_client__shelf_t *shelf;
+ svn_client__shelf_version_t *shelf_version;
+ const char *wc_relpath;
+
+ err = svn_client__shelf_open_existing(&shelf,
+ shelf_name, target_abspath,
+ ctx, scratch_pool);
+ if (err && err->apr_err == SVN_ERR_ILLEGAL_TARGET)
+ {
+ svn_error_clear(err);
+ return SVN_NO_ERROR;
+ }
+ else
+ SVN_ERR(err);
+
+ SVN_ERR(svn_client__shelf_version_open(&shelf_version,
+ shelf, shelf->max_version,
+ scratch_pool, scratch_pool));
+ wc_relpath = svn_dirent_skip_ancestor(shelf->wc_root_abspath, target_abspath);
+ SVN_ERR(svn_client__shelf_diff(shelf_version, wc_relpath,
+ depth, ignore_ancestry,
+ diff_processor, scratch_pool));
+ SVN_ERR(svn_client__shelf_close(shelf, scratch_pool));
+
+ return SVN_NO_ERROR;
+}
+
+/* Run diff on all shelves named in CHANGELISTS by a changelist name
+ * of the form "svn:shelf:SHELF_NAME", if they exist.
+ */
+static svn_error_t *
+diff_shelves(const apr_array_header_t *changelists,
+ const char *target_abspath,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ const svn_diff_tree_processor_t *diff_processor,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ static const char PREFIX[] = "svn:shelf:";
+ static const int PREFIX_LEN = 10;
+ int i;
+
+ if (! changelists)
+ return SVN_NO_ERROR;
+ for (i = 0; i < changelists->nelts; i++)
+ {
+ const char *cl = APR_ARRAY_IDX(changelists, i, const char *);
+
+ if (strncmp(cl, PREFIX, PREFIX_LEN) == 0)
+ {
+ const char *shelf_name = cl + PREFIX_LEN;
+
+ SVN_ERR(diff_shelf(shelf_name, target_abspath,
+ depth, ignore_ancestry,
+ diff_processor, ctx, scratch_pool));
+ }
+ }
+
+ return SVN_NO_ERROR;
+}
+
/* This is basically just the guts of svn_client_diff[_summarize][_peg]6(). */
static svn_error_t *
-do_diff(const char **root_relpath,
- svn_boolean_t *root_is_dir,
- diff_driver_info_t *ddi,
+do_diff(diff_driver_info_t *ddi,
const char *path_or_url1,
const char *path_or_url2,
const svn_opt_revision_t *revision1,
@@ -2344,8 +2448,7 @@ do_diff(const char **root_relpath,
if (is_repos2)
{
/* Ignores changelists. */
- SVN_ERR(diff_repos_repos(root_relpath, root_is_dir,
- ddi,
+ SVN_ERR(diff_repos_repos(ddi,
path_or_url1, path_or_url2,
revision1, revision2,
peg_revision, depth, ignore_ancestry,
@@ -2355,7 +2458,7 @@ do_diff(const char **root_relpath,
}
else /* path_or_url2 is a working copy path */
{
- SVN_ERR(diff_repos_wc(root_relpath, root_is_dir, ddi,
+ SVN_ERR(diff_repos_wc(ddi,
path_or_url1, revision1,
no_peg_revision ? revision1
: peg_revision,
@@ -2370,7 +2473,7 @@ do_diff(const char **root_relpath,
{
if (is_repos2)
{
- SVN_ERR(diff_repos_wc(root_relpath, root_is_dir, ddi,
+ SVN_ERR(diff_repos_wc(ddi,
path_or_url2, revision2,
no_peg_revision ? revision2
: peg_revision,
@@ -2394,19 +2497,51 @@ do_diff(const char **root_relpath,
SVN_ERR(svn_dirent_get_absolute(&abspath2, path_or_url2,
scratch_pool));
- /* ### What about ddi? */
+ if (ddi)
+ {
+ svn_node_kind_t kind1, kind2;
+
+ SVN_ERR(svn_io_check_resolved_path(abspath1, &kind1,
+ scratch_pool));
+ SVN_ERR(svn_io_check_resolved_path(abspath2, &kind2,
+ scratch_pool));
+ if (kind1 == svn_node_dir && kind2 == svn_node_dir)
+ {
+ ddi->anchor = "";
+ }
+ else
+ {
+ ddi->anchor = svn_dirent_basename(abspath1, NULL);
+ }
+ ddi->orig_path_1 = path_or_url1;
+ ddi->orig_path_2 = path_or_url2;
+ }
+
/* Ignores changelists, ignore_ancestry */
- SVN_ERR(svn_client__arbitrary_nodes_diff(root_relpath, root_is_dir,
- abspath1, abspath2,
+ SVN_ERR(svn_client__arbitrary_nodes_diff(abspath1, abspath2,
depth,
diff_processor,
- ctx,
- result_pool, scratch_pool));
+ ctx, scratch_pool));
}
else
{
- SVN_ERR(diff_wc_wc(root_relpath, root_is_dir, ddi,
- path_or_url1, revision1,
+ if (ddi)
+ {
+ ddi->anchor = path_or_url1;
+ ddi->orig_path_1 = path_or_url1;
+ ddi->orig_path_2 = path_or_url2;
+ }
+
+ {
+ const char *abspath1;
+
+ SVN_ERR(svn_dirent_get_absolute(&abspath1, path_or_url1,
+ scratch_pool));
+ SVN_ERR(diff_shelves(changelists, abspath1,
+ depth, ignore_ancestry,
+ diff_processor, ctx, scratch_pool));
+ }
+ SVN_ERR(diff_wc_wc(path_or_url1, revision1,
path_or_url2, revision2,
depth, ignore_ancestry, changelists,
diff_processor, ctx,
@@ -2482,6 +2617,115 @@ create_diff_writer_info(diff_writer_info_t *dwi,
return SVN_NO_ERROR;
}
+/* Set up *DIFF_PROCESSOR and *DDI for normal and git-style diffs (but not
+ * summary diffs).
+ */
+static svn_error_t *
+get_diff_processor(svn_diff_tree_processor_t **diff_processor,
+ struct diff_driver_info_t **ddi,
+ const apr_array_header_t *options,
+ const char *relative_to_dir,
+ svn_boolean_t no_diff_added,
+ svn_boolean_t no_diff_deleted,
+ svn_boolean_t show_copies_as_adds,
+ svn_boolean_t ignore_content_type,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
+ svn_boolean_t use_git_diff_format,
+ svn_boolean_t pretty_print_mergeinfo,
+ const char *header_encoding,
+ svn_stream_t *outstream,
+ svn_stream_t *errstream,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool)
+{
+ diff_writer_info_t *dwi = apr_pcalloc(pool, sizeof(*dwi));
+ svn_diff_tree_processor_t *processor;
+
+ /* setup callback and baton */
+
+ SVN_ERR(create_diff_writer_info(dwi, options,
+ ctx->config, pool));
+ dwi->pool = pool;
+ dwi->outstream = outstream;
+ dwi->errstream = errstream;
+ dwi->header_encoding = header_encoding;
+
+ dwi->force_binary = ignore_content_type;
+ dwi->ignore_properties = ignore_properties;
+ dwi->properties_only = properties_only;
+ dwi->relative_to_dir = relative_to_dir;
+ dwi->use_git_diff_format = use_git_diff_format;
+ dwi->no_diff_added = no_diff_added;
+ dwi->no_diff_deleted = no_diff_deleted;
+ dwi->show_copies_as_adds = show_copies_as_adds;
+ dwi->pretty_print_mergeinfo = pretty_print_mergeinfo;
+
+ dwi->cancel_func = ctx->cancel_func;
+ dwi->cancel_baton = ctx->cancel_baton;
+
+ dwi->ddi.wc_ctx = ctx->wc_ctx;
+ dwi->ddi.session_relpath = NULL;
+ dwi->ddi.anchor = NULL;
+
+ processor = svn_diff__tree_processor_create(dwi, pool);
+
+ processor->dir_added = diff_dir_added;
+ processor->dir_changed = diff_dir_changed;
+ processor->dir_deleted = diff_dir_deleted;
+
+ processor->file_added = diff_file_added;
+ processor->file_changed = diff_file_changed;
+ processor->file_deleted = diff_file_deleted;
+
+ *diff_processor = processor;
+ *ddi = &dwi->ddi;
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__get_diff_writer_svn(
+ svn_diff_tree_processor_t **diff_processor,
+ const char *anchor,
+ const char *orig_path_1,
+ const char *orig_path_2,
+ const apr_array_header_t *options,
+ const char *relative_to_dir,
+ svn_boolean_t no_diff_added,
+ svn_boolean_t no_diff_deleted,
+ svn_boolean_t show_copies_as_adds,
+ svn_boolean_t ignore_content_type,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
+ svn_boolean_t pretty_print_mergeinfo,
+ const char *header_encoding,
+ svn_stream_t *outstream,
+ svn_stream_t *errstream,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool)
+{
+ struct diff_driver_info_t *ddi;
+
+ SVN_ERR(get_diff_processor(diff_processor, &ddi,
+ options,
+ relative_to_dir,
+ no_diff_added,
+ no_diff_deleted,
+ show_copies_as_adds,
+ ignore_content_type,
+ ignore_properties,
+ properties_only,
+ FALSE /*use_git_diff_format*/,
+ pretty_print_mergeinfo,
+ header_encoding,
+ outstream, errstream,
+ ctx, pool));
+ ddi->anchor = anchor;
+ ddi->orig_path_1 = orig_path_1;
+ ddi->orig_path_2 = orig_path_2;
+ return SVN_NO_ERROR;
+}
+
/*----------------------------------------------------------------------- */
/*** Public Interfaces. ***/
@@ -2519,7 +2763,7 @@ create_diff_writer_info(diff_writer_info_t *dwi,
* These cases require server communication.
*/
svn_error_t *
-svn_client_diff6(const apr_array_header_t *options,
+svn_client_diff7(const apr_array_header_t *options,
const char *path_or_url1,
const svn_opt_revision_t *revision1,
const char *path_or_url2,
@@ -2534,6 +2778,7 @@ svn_client_diff6(const apr_array_header_t *options,
svn_boolean_t ignore_properties,
svn_boolean_t properties_only,
svn_boolean_t use_git_diff_format,
+ svn_boolean_t pretty_print_mergeinfo,
const char *header_encoding,
svn_stream_t *outstream,
svn_stream_t *errstream,
@@ -2541,10 +2786,9 @@ svn_client_diff6(const apr_array_header_t *options,
svn_client_ctx_t *ctx,
apr_pool_t *pool)
{
- diff_writer_info_t dwi = { 0 };
svn_opt_revision_t peg_revision;
- const svn_diff_tree_processor_t *diff_processor;
- svn_diff_tree_processor_t *processor;
+ svn_diff_tree_processor_t *diff_processor;
+ struct diff_driver_info_t *ddi;
if (ignore_properties && properties_only)
return svn_error_create(SVN_ERR_INCORRECT_PARAMS, NULL,
@@ -2554,50 +2798,26 @@ svn_client_diff6(const apr_array_header_t *options,
/* We will never do a pegged diff from here. */
peg_revision.kind = svn_opt_revision_unspecified;
- /* setup callback and baton */
- dwi.ddi.orig_path_1 = path_or_url1;
- dwi.ddi.orig_path_2 = path_or_url2;
-
- SVN_ERR(create_diff_writer_info(&dwi, options,
- ctx->config, pool));
- dwi.pool = pool;
- dwi.outstream = outstream;
- dwi.errstream = errstream;
- dwi.header_encoding = header_encoding;
-
- dwi.force_binary = ignore_content_type;
- dwi.ignore_properties = ignore_properties;
- dwi.properties_only = properties_only;
- dwi.relative_to_dir = relative_to_dir;
- dwi.use_git_diff_format = use_git_diff_format;
- dwi.no_diff_added = no_diff_added;
- dwi.no_diff_deleted = no_diff_deleted;
- dwi.show_copies_as_adds = show_copies_as_adds;
-
- dwi.cancel_func = ctx->cancel_func;
- dwi.cancel_baton = ctx->cancel_baton;
-
- dwi.wc_ctx = ctx->wc_ctx;
- dwi.ddi.session_relpath = NULL;
- dwi.ddi.anchor = NULL;
-
- processor = svn_diff__tree_processor_create(&dwi, pool);
-
- processor->dir_added = diff_dir_added;
- processor->dir_changed = diff_dir_changed;
- processor->dir_deleted = diff_dir_deleted;
-
- processor->file_added = diff_file_added;
- processor->file_changed = diff_file_changed;
- processor->file_deleted = diff_file_deleted;
-
- diff_processor = processor;
-
/* --show-copies-as-adds and --git imply --notice-ancestry */
if (show_copies_as_adds || use_git_diff_format)
ignore_ancestry = FALSE;
- return svn_error_trace(do_diff(NULL, NULL, &dwi.ddi,
+ SVN_ERR(get_diff_processor(&diff_processor, &ddi,
+ options,
+ relative_to_dir,
+ no_diff_added,
+ no_diff_deleted,
+ show_copies_as_adds,
+ ignore_content_type,
+ ignore_properties,
+ properties_only,
+ use_git_diff_format,
+ pretty_print_mergeinfo,
+ header_encoding,
+ outstream, errstream,
+ ctx, pool));
+
+ return svn_error_trace(do_diff(ddi,
path_or_url1, path_or_url2,
revision1, revision2,
&peg_revision, TRUE /* no_peg_revision */,
@@ -2607,7 +2827,7 @@ svn_client_diff6(const apr_array_header_t *options,
}
svn_error_t *
-svn_client_diff_peg6(const apr_array_header_t *options,
+svn_client_diff_peg7(const apr_array_header_t *options,
const char *path_or_url,
const svn_opt_revision_t *peg_revision,
const svn_opt_revision_t *start_revision,
@@ -2622,6 +2842,7 @@ svn_client_diff_peg6(const apr_array_header_t *options,
svn_boolean_t ignore_properties,
svn_boolean_t properties_only,
svn_boolean_t use_git_diff_format,
+ svn_boolean_t pretty_print_mergeinfo,
const char *header_encoding,
svn_stream_t *outstream,
svn_stream_t *errstream,
@@ -2629,59 +2850,34 @@ svn_client_diff_peg6(const apr_array_header_t *options,
svn_client_ctx_t *ctx,
apr_pool_t *pool)
{
- diff_writer_info_t dwi = { 0 };
- const svn_diff_tree_processor_t *diff_processor;
- svn_diff_tree_processor_t *processor;
+ svn_diff_tree_processor_t *diff_processor;
+ struct diff_driver_info_t *ddi;
if (ignore_properties && properties_only)
return svn_error_create(SVN_ERR_INCORRECT_PARAMS, NULL,
_("Cannot ignore properties and show only "
"properties at the same time"));
- /* setup callback and baton */
- dwi.ddi.orig_path_1 = path_or_url;
- dwi.ddi.orig_path_2 = path_or_url;
-
- SVN_ERR(create_diff_writer_info(&dwi, options,
- ctx->config, pool));
- dwi.pool = pool;
- dwi.outstream = outstream;
- dwi.errstream = errstream;
- dwi.header_encoding = header_encoding;
-
- dwi.force_binary = ignore_content_type;
- dwi.ignore_properties = ignore_properties;
- dwi.properties_only = properties_only;
- dwi.relative_to_dir = relative_to_dir;
- dwi.use_git_diff_format = use_git_diff_format;
- dwi.no_diff_added = no_diff_added;
- dwi.no_diff_deleted = no_diff_deleted;
- dwi.show_copies_as_adds = show_copies_as_adds;
-
- dwi.cancel_func = ctx->cancel_func;
- dwi.cancel_baton = ctx->cancel_baton;
-
- dwi.wc_ctx = ctx->wc_ctx;
- dwi.ddi.session_relpath = NULL;
- dwi.ddi.anchor = NULL;
-
- processor = svn_diff__tree_processor_create(&dwi, pool);
-
- processor->dir_added = diff_dir_added;
- processor->dir_changed = diff_dir_changed;
- processor->dir_deleted = diff_dir_deleted;
-
- processor->file_added = diff_file_added;
- processor->file_changed = diff_file_changed;
- processor->file_deleted = diff_file_deleted;
-
- diff_processor = processor;
-
/* --show-copies-as-adds and --git imply --notice-ancestry */
if (show_copies_as_adds || use_git_diff_format)
ignore_ancestry = FALSE;
- return svn_error_trace(do_diff(NULL, NULL, &dwi.ddi,
+ SVN_ERR(get_diff_processor(&diff_processor, &ddi,
+ options,
+ relative_to_dir,
+ no_diff_added,
+ no_diff_deleted,
+ show_copies_as_adds,
+ ignore_content_type,
+ ignore_properties,
+ properties_only,
+ use_git_diff_format,
+ pretty_print_mergeinfo,
+ header_encoding,
+ outstream, errstream,
+ ctx, pool));
+
+ return svn_error_trace(do_diff(ddi,
path_or_url, path_or_url,
start_revision, end_revision,
peg_revision, FALSE /* no_peg_revision */,
@@ -2703,19 +2899,17 @@ svn_client_diff_summarize2(const char *path_or_url1,
svn_client_ctx_t *ctx,
apr_pool_t *pool)
{
- const svn_diff_tree_processor_t *diff_processor;
+ svn_diff_tree_processor_t *diff_processor;
svn_opt_revision_t peg_revision;
- const char **p_root_relpath;
/* We will never do a pegged diff from here. */
peg_revision.kind = svn_opt_revision_unspecified;
- SVN_ERR(svn_client__get_diff_summarize_callbacks(
- &diff_processor, &p_root_relpath,
+ SVN_ERR(svn_client__get_diff_summarize_callbacks(&diff_processor,
summarize_func, summarize_baton,
- path_or_url1, pool, pool));
+ pool, pool));
- return svn_error_trace(do_diff(p_root_relpath, NULL, NULL,
+ return svn_error_trace(do_diff(NULL,
path_or_url1, path_or_url2,
revision1, revision2,
&peg_revision, TRUE /* no_peg_revision */,
@@ -2737,15 +2931,13 @@ svn_client_diff_summarize_peg2(const char *path_or_url,
svn_client_ctx_t *ctx,
apr_pool_t *pool)
{
- const svn_diff_tree_processor_t *diff_processor;
- const char **p_root_relpath;
+ svn_diff_tree_processor_t *diff_processor;
- SVN_ERR(svn_client__get_diff_summarize_callbacks(
- &diff_processor, &p_root_relpath,
+ SVN_ERR(svn_client__get_diff_summarize_callbacks(&diff_processor,
summarize_func, summarize_baton,
- path_or_url, pool, pool));
+ pool, pool));
- return svn_error_trace(do_diff(p_root_relpath, NULL, NULL,
+ return svn_error_trace(do_diff(NULL,
path_or_url, path_or_url,
start_revision, end_revision,
peg_revision, FALSE /* no_peg_revision */,
diff --git a/subversion/libsvn_client/diff_local.c b/subversion/libsvn_client/diff_local.c
index 056ee53e8f28..feac90d788bd 100644
--- a/subversion/libsvn_client/diff_local.c
+++ b/subversion/libsvn_client/diff_local.c
@@ -647,20 +647,17 @@ do_dir_diff(const char *left_abspath,
}
svn_error_t *
-svn_client__arbitrary_nodes_diff(const char **root_relpath,
- svn_boolean_t *root_is_dir,
- const char *left_abspath,
+svn_client__arbitrary_nodes_diff(const char *left_abspath,
const char *right_abspath,
svn_depth_t depth,
const svn_diff_tree_processor_t *diff_processor,
svn_client_ctx_t *ctx,
- apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
svn_node_kind_t left_kind;
svn_node_kind_t right_kind;
- const char *left_root_abspath;
- const char *right_root_abspath;
+ const char *left_root_abspath = left_abspath;
+ const char *right_root_abspath = right_abspath;
svn_boolean_t left_before_right = TRUE; /* Future argument? */
if (depth == svn_depth_unknown)
@@ -671,28 +668,6 @@ svn_client__arbitrary_nodes_diff(const char **root_relpath,
if (left_kind == svn_node_dir && right_kind == svn_node_dir)
{
- left_root_abspath = left_abspath;
- right_root_abspath = right_abspath;
-
- if (root_relpath)
- *root_relpath = "";
- if (root_is_dir)
- *root_is_dir = TRUE;
- }
- else
- {
- svn_dirent_split(&left_root_abspath, root_relpath, left_abspath,
- scratch_pool);
- right_root_abspath = svn_dirent_dirname(right_abspath, scratch_pool);
-
- if (root_relpath)
- *root_relpath = apr_pstrdup(result_pool, *root_relpath);
- if (root_is_dir)
- *root_is_dir = FALSE;
- }
-
- if (left_kind == svn_node_dir && right_kind == svn_node_dir)
- {
SVN_ERR(do_dir_diff(left_abspath, right_abspath,
left_root_abspath, right_root_abspath,
FALSE, FALSE, left_before_right,
@@ -710,79 +685,48 @@ svn_client__arbitrary_nodes_diff(const char **root_relpath,
else if (left_kind == svn_node_file || left_kind == svn_node_dir
|| right_kind == svn_node_file || right_kind == svn_node_dir)
{
- void *dir_baton;
- svn_boolean_t skip = FALSE;
- svn_boolean_t skip_children = FALSE;
- svn_diff_source_t *left_src;
- svn_diff_source_t *right_src;
-
- left_src = svn_diff__source_create(SVN_INVALID_REVNUM, scratch_pool);
- right_src = svn_diff__source_create(SVN_INVALID_REVNUM, scratch_pool);
-
- /* The root is replaced... */
- /* Report delete and/or add */
-
- SVN_ERR(diff_processor->dir_opened(&dir_baton, &skip, &skip_children, "",
- left_src,
- right_src,
- NULL /* copyfrom_src */,
- NULL,
- diff_processor,
- scratch_pool, scratch_pool));
-
- if (skip)
- return SVN_NO_ERROR;
- else if (!skip_children)
+ /* The root is added/deleted/replaced. Report delete and/or add. */
+ if (left_before_right)
{
- if (left_before_right)
- {
- if (left_kind == svn_node_file)
- SVN_ERR(do_file_diff(left_abspath, right_abspath,
- left_root_abspath, right_root_abspath,
- TRUE, FALSE, NULL /* parent_baton */,
- diff_processor, ctx, scratch_pool));
- else if (left_kind == svn_node_dir)
- SVN_ERR(do_dir_diff(left_abspath, right_abspath,
- left_root_abspath, right_root_abspath,
- TRUE, FALSE, left_before_right,
- depth, NULL /* parent_baton */,
- diff_processor, ctx, scratch_pool));
- }
-
- if (right_kind == svn_node_file)
+ if (left_kind == svn_node_file)
SVN_ERR(do_file_diff(left_abspath, right_abspath,
left_root_abspath, right_root_abspath,
- FALSE, TRUE, NULL /* parent_baton */,
+ TRUE, FALSE, NULL /* parent_baton */,
diff_processor, ctx, scratch_pool));
- else if (right_kind == svn_node_dir)
+ else if (left_kind == svn_node_dir)
SVN_ERR(do_dir_diff(left_abspath, right_abspath,
left_root_abspath, right_root_abspath,
- FALSE, TRUE, left_before_right,
+ TRUE, FALSE, left_before_right,
depth, NULL /* parent_baton */,
diff_processor, ctx, scratch_pool));
-
- if (! left_before_right)
- {
- if (left_kind == svn_node_file)
- SVN_ERR(do_file_diff(left_abspath, right_abspath,
- left_root_abspath, right_root_abspath,
- TRUE, FALSE, NULL /* parent_baton */,
- diff_processor, ctx, scratch_pool));
- else if (left_kind == svn_node_dir)
- SVN_ERR(do_dir_diff(left_abspath, right_abspath,
- left_root_abspath, right_root_abspath,
- TRUE, FALSE, left_before_right,
- depth, NULL /* parent_baton */,
- diff_processor, ctx, scratch_pool));
- }
}
- SVN_ERR(diff_processor->dir_closed("",
- left_src,
- right_src,
- dir_baton,
- diff_processor,
- scratch_pool));
+ if (right_kind == svn_node_file)
+ SVN_ERR(do_file_diff(left_abspath, right_abspath,
+ left_root_abspath, right_root_abspath,
+ FALSE, TRUE, NULL /* parent_baton */,
+ diff_processor, ctx, scratch_pool));
+ else if (right_kind == svn_node_dir)
+ SVN_ERR(do_dir_diff(left_abspath, right_abspath,
+ left_root_abspath, right_root_abspath,
+ FALSE, TRUE, left_before_right,
+ depth, NULL /* parent_baton */,
+ diff_processor, ctx, scratch_pool));
+
+ if (! left_before_right)
+ {
+ if (left_kind == svn_node_file)
+ SVN_ERR(do_file_diff(left_abspath, right_abspath,
+ left_root_abspath, right_root_abspath,
+ TRUE, FALSE, NULL /* parent_baton */,
+ diff_processor, ctx, scratch_pool));
+ else if (left_kind == svn_node_dir)
+ SVN_ERR(do_dir_diff(left_abspath, right_abspath,
+ left_root_abspath, right_root_abspath,
+ TRUE, FALSE, left_before_right,
+ depth, NULL /* parent_baton */,
+ diff_processor, ctx, scratch_pool));
+ }
}
else
return svn_error_createf(SVN_ERR_NODE_UNEXPECTED_KIND, NULL,
diff --git a/subversion/libsvn_client/diff_summarize.c b/subversion/libsvn_client/diff_summarize.c
index 9e258cdfcbcb..f4972a39e194 100644
--- a/subversion/libsvn_client/diff_summarize.c
+++ b/subversion/libsvn_client/diff_summarize.c
@@ -36,11 +36,6 @@
/* Diff callbacks baton. */
struct summarize_baton_t {
- apr_pool_t *baton_pool; /* For allocating skip_path */
-
- /* The target path of the diff, relative to the anchor; "" if target == anchor. */
- const char *skip_relpath;
-
/* The summarize callback passed down from the API */
svn_client_diff_summarize_func_t summarize_func;
@@ -49,9 +44,8 @@ struct summarize_baton_t {
};
/* Call B->summarize_func with B->summarize_func_baton, passing it a
- * summary object composed from PATH (but made to be relative to the target
- * of the diff), SUMMARIZE_KIND, PROP_CHANGED (or FALSE if the action is an
- * add or delete) and NODE_KIND. */
+ * summary object composed from PATH, SUMMARIZE_KIND, PROP_CHANGED (or
+ * FALSE if the action is an add or delete) and NODE_KIND. */
static svn_error_t *
send_summary(struct summarize_baton_t *b,
const char *path,
@@ -65,9 +59,7 @@ send_summary(struct summarize_baton_t *b,
SVN_ERR_ASSERT(summarize_kind != svn_client_diff_summarize_kind_normal
|| prop_changed);
- /* PATH is relative to the anchor of the diff, but SUM->path needs to be
- relative to the target of the diff. */
- sum->path = svn_relpath_skip_ancestor(b->skip_relpath, path);
+ sum->path = path;
sum->summarize_kind = summarize_kind;
if (summarize_kind == svn_client_diff_summarize_kind_modified
|| summarize_kind == svn_client_diff_summarize_kind_normal)
@@ -265,18 +257,15 @@ diff_file_deleted(const char *relpath,
svn_error_t *
svn_client__get_diff_summarize_callbacks(
- const svn_diff_tree_processor_t **diff_processor,
- const char ***p_root_relpath,
+ svn_diff_tree_processor_t **diff_processor,
svn_client_diff_summarize_func_t summarize_func,
void *summarize_baton,
- const char *original_target,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
svn_diff_tree_processor_t *dp;
struct summarize_baton_t *b = apr_pcalloc(result_pool, sizeof(*b));
- b->baton_pool = result_pool;
b->summarize_func = summarize_func;
b->summarize_func_baton = summarize_baton;
@@ -293,7 +282,6 @@ svn_client__get_diff_summarize_callbacks(
dp->dir_added = diff_dir_added;
*diff_processor = dp;
- *p_root_relpath = &b->skip_relpath;
return SVN_NO_ERROR;
}
diff --git a/subversion/libsvn_client/export.c b/subversion/libsvn_client/export.c
index 2fc2dc8ffd53..b335f2a69eca 100644
--- a/subversion/libsvn_client/export.c
+++ b/subversion/libsvn_client/export.c
@@ -453,12 +453,12 @@ export_node(void *baton,
* If PATH exists but is a file, then error with SVN_ERR_WC_NOT_WORKING_COPY.
*
* If PATH is a already a directory, then error with
- * SVN_ERR_WC_OBSTRUCTED_UPDATE, unless FORCE, in which case just
+ * SVN_ERR_WC_OBSTRUCTED_UPDATE, unless OVERWRITE, in which case just
* export into PATH with no error.
*/
static svn_error_t *
open_root_internal(const char *path,
- svn_boolean_t force,
+ svn_boolean_t overwrite,
svn_wc_notify_func2_t notify_func,
void *notify_baton,
apr_pool_t *pool)
@@ -472,7 +472,7 @@ open_root_internal(const char *path,
return svn_error_createf(SVN_ERR_WC_NOT_WORKING_COPY, NULL,
_("'%s' exists and is not a directory"),
svn_dirent_local_style(path, pool));
- else if ((kind != svn_node_dir) || (! force))
+ else if ((kind != svn_node_dir) || (! overwrite))
return svn_error_createf(SVN_ERR_WC_OBSTRUCTED_UPDATE, NULL,
_("'%s' already exists"),
svn_dirent_local_style(path, pool));
@@ -501,7 +501,7 @@ struct edit_baton
const char *repos_root_url;
const char *root_path;
const char *root_url;
- svn_boolean_t force;
+ svn_boolean_t overwrite;
svn_revnum_t *target_revision;
apr_hash_t *externals;
const char *native_eol;
@@ -587,7 +587,7 @@ open_root(void *edit_baton,
struct edit_baton *eb = edit_baton;
struct dir_baton *db = apr_pcalloc(pool, sizeof(*db));
- SVN_ERR(open_root_internal(eb->root_path, eb->force,
+ SVN_ERR(open_root_internal(eb->root_path, eb->overwrite,
eb->notify_func, eb->notify_baton, pool));
/* Build our dir baton. */
@@ -621,7 +621,7 @@ add_directory(const char *path,
return svn_error_createf(SVN_ERR_WC_NOT_WORKING_COPY, NULL,
_("'%s' exists and is not a directory"),
svn_dirent_local_style(full_path, pool));
- else if (! (kind == svn_node_dir && eb->force))
+ else if (! (kind == svn_node_dir && eb->overwrite))
return svn_error_createf(SVN_ERR_WC_OBSTRUCTED_UPDATE, NULL,
_("'%s' already exists"),
svn_dirent_local_style(full_path, pool));
@@ -1077,7 +1077,7 @@ add_directory_ev2(void *baton,
return svn_error_createf(SVN_ERR_WC_NOT_WORKING_COPY, NULL,
_("'%s' exists and is not a directory"),
svn_dirent_local_style(full_path, scratch_pool));
- else if (! (kind == svn_node_dir && eb->force))
+ else if (! (kind == svn_node_dir && eb->overwrite))
return svn_error_createf(SVN_ERR_WC_OBSTRUCTED_UPDATE, NULL,
_("'%s' already exists"),
svn_dirent_local_style(full_path, scratch_pool));
@@ -1141,7 +1141,7 @@ get_editor_ev2(const svn_delta_editor_t **export_editor,
exb, result_pool));
/* Create the root of the export. */
- SVN_ERR(open_root_internal(eb->root_path, eb->force, eb->notify_func,
+ SVN_ERR(open_root_internal(eb->root_path, eb->overwrite, eb->notify_func,
eb->notify_baton, scratch_pool));
return SVN_NO_ERROR;
@@ -1153,7 +1153,6 @@ export_file_ev2(const char *from_url,
struct edit_baton *eb,
svn_client__pathrev_t *loc,
svn_ra_session_t *ra_session,
- svn_boolean_t overwrite,
apr_pool_t *scratch_pool)
{
apr_hash_t *props;
@@ -1177,7 +1176,7 @@ export_file_ev2(const char *from_url,
SVN_ERR(svn_io_check_path(to_path, &to_kind, scratch_pool));
if ((to_kind == svn_node_file || to_kind == svn_node_unknown) &&
- ! overwrite)
+ ! eb->overwrite)
return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
_("Destination file '%s' exists, and "
"will not be overwritten unless forced"),
@@ -1207,7 +1206,6 @@ export_file(const char *from_url,
struct edit_baton *eb,
svn_client__pathrev_t *loc,
svn_ra_session_t *ra_session,
- svn_boolean_t overwrite,
apr_pool_t *scratch_pool)
{
apr_hash_t *props;
@@ -1232,7 +1230,7 @@ export_file(const char *from_url,
SVN_ERR(svn_io_check_path(to_path, &to_kind, scratch_pool));
if ((to_kind == svn_node_file || to_kind == svn_node_unknown) &&
- ! overwrite)
+ ! eb->overwrite)
return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
_("Destination file '%s' exists, and "
"will not be overwritten unless forced"),
@@ -1289,7 +1287,6 @@ export_directory(const char *from_url,
struct edit_baton *eb,
svn_client__pathrev_t *loc,
svn_ra_session_t *ra_session,
- svn_boolean_t overwrite,
svn_boolean_t ignore_externals,
svn_boolean_t ignore_keywords,
svn_depth_t depth,
@@ -1344,7 +1341,7 @@ export_directory(const char *from_url,
SVN_ERR(svn_io_check_path(to_path, &kind, scratch_pool));
if (kind == svn_node_none)
SVN_ERR(open_root_internal
- (to_path, overwrite, ctx->notify_func2,
+ (to_path, eb->overwrite, ctx->notify_func2,
ctx->notify_baton2, scratch_pool));
if (! ignore_externals && depth == svn_depth_infinity)
@@ -1415,7 +1412,7 @@ svn_client_export5(svn_revnum_t *result_rev,
SVN_ERR(svn_ra_get_repos_root2(ra_session, &eb->repos_root_url, pool));
eb->root_path = to_path;
eb->root_url = loc->url;
- eb->force = overwrite;
+ eb->overwrite = overwrite;
eb->target_revision = &edit_revision;
eb->externals = apr_hash_make(pool);
eb->native_eol = native_eol;
@@ -1431,15 +1428,15 @@ svn_client_export5(svn_revnum_t *result_rev,
{
if (!ENABLE_EV2_IMPL)
SVN_ERR(export_file(from_url, to_path, eb, loc, ra_session,
- overwrite, pool));
+ pool));
else
SVN_ERR(export_file_ev2(from_url, to_path, eb, loc,
- ra_session, overwrite, pool));
+ ra_session, pool));
}
else if (kind == svn_node_dir)
{
SVN_ERR(export_directory(from_url, to_path,
- eb, loc, ra_session, overwrite,
+ eb, loc, ra_session,
ignore_externals, ignore_keywords, depth,
native_eol, ctx, pool));
}
diff --git a/subversion/libsvn_client/info.c b/subversion/libsvn_client/info.c
index 3331647c9587..2aa4c916cd8e 100644
--- a/subversion/libsvn_client/info.c
+++ b/subversion/libsvn_client/info.c
@@ -167,7 +167,8 @@ build_info_from_dirent(svn_client_info2_t **info,
#define DIRENT_FIELDS (SVN_DIRENT_KIND | \
SVN_DIRENT_CREATED_REV | \
SVN_DIRENT_TIME | \
- SVN_DIRENT_LAST_AUTHOR)
+ SVN_DIRENT_LAST_AUTHOR | \
+ SVN_DIRENT_SIZE)
/* Helper func for recursively fetching svn_dirent_t's from a remote
@@ -267,6 +268,7 @@ same_resource_in_head(svn_boolean_t *same_p,
ctx, pool);
if (err &&
((err->apr_err == SVN_ERR_CLIENT_UNRELATED_RESOURCES) ||
+ (err->apr_err == SVN_ERR_FS_NOT_DIRECTORY) ||
(err->apr_err == SVN_ERR_FS_NOT_FOUND)))
{
svn_error_clear(err);
diff --git a/subversion/libsvn_client/layout.c b/subversion/libsvn_client/layout.c
new file mode 100644
index 000000000000..bfa7ec1039f1
--- /dev/null
+++ b/subversion/libsvn_client/layout.c
@@ -0,0 +1,289 @@
+/*
+* layout.c: code to list and update the working copy layout
+*
+* ====================================================================
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied. See the License for the
+* specific language governing permissions and limitations
+* under the License.
+* ====================================================================
+*/
+
+/* ==================================================================== */
+
+
+
+/*** Includes. ***/
+
+#include "svn_hash.h"
+#include "svn_dirent_uri.h"
+#include "svn_path.h"
+#include "svn_wc.h"
+#include "svn_client.h"
+#include "svn_error.h"
+#include "svn_pools.h"
+#include "client.h"
+
+#include "svn_private_config.h"
+#include "private/svn_wc_private.h"
+
+struct layout_item_t
+{
+ const char *local_abspath;
+ const char *url;
+ svn_revnum_t revision;
+ svn_depth_t depth;
+ struct layout_item_t *ancestor;
+ apr_pool_t *pool;
+};
+
+struct client_layout_baton_t
+{
+ const char *root_abspath;
+ svn_wc_context_t *wc_ctx;
+ const char *repos_root_url;
+
+ struct layout_item_t *stack;
+ apr_pool_t *root_pool;
+
+ svn_client__layout_func_t layout;
+ void *layout_baton;
+};
+
+
+static svn_error_t *
+layout_set_path(void *report_baton,
+ const char *path,
+ svn_revnum_t revision,
+ svn_depth_t depth,
+ svn_boolean_t start_empty,
+ const char *lock_token,
+ apr_pool_t *pool)
+{
+ struct client_layout_baton_t *lb = report_baton;
+ const char *local_abspath = svn_dirent_join(lb->root_abspath, path, pool);
+ struct layout_item_t *it;
+ apr_pool_t *item_pool;
+ svn_depth_t expected_depth;
+
+ while (lb->stack
+ && !svn_dirent_is_ancestor(lb->stack->local_abspath, local_abspath))
+ {
+ it = lb->stack;
+ lb->stack = it->ancestor;
+ svn_pool_destroy(it->pool);
+ }
+
+ item_pool = svn_pool_create(lb->stack ? lb->stack->pool
+ : lb->root_pool);
+
+ it = apr_pcalloc(item_pool, sizeof(*it));
+ it->pool = item_pool;
+ it->local_abspath = apr_pstrdup(item_pool, local_abspath);
+ it->depth = depth;
+ it->revision = revision;
+ if (lb->stack)
+ {
+ it->url = svn_path_url_add_component2(
+ lb->stack->url,
+ svn_dirent_skip_ancestor(lb->stack->local_abspath,
+ local_abspath),
+ item_pool);
+ }
+ else
+ {
+ const char *repos_relpath, *repos_root_url;
+
+ SVN_ERR(svn_wc__node_get_base(NULL, NULL, &repos_relpath,
+ &repos_root_url, NULL, NULL,
+ lb->wc_ctx, local_abspath,
+ FALSE /* ignore_enoent */,
+ pool, pool));
+
+ lb->repos_root_url = apr_pstrdup(lb->root_pool, repos_root_url);
+ it->url = svn_path_url_add_component2(repos_root_url, repos_relpath,
+ item_pool);
+ }
+ it->ancestor = lb->stack;
+ lb->stack = it;
+
+ if (!it->ancestor)
+ expected_depth = depth;
+ else if (it->ancestor->depth == svn_depth_infinity)
+ expected_depth = svn_depth_infinity;
+ else
+ expected_depth = svn_depth_empty;
+
+ return svn_error_trace(lb->layout(lb->layout_baton,
+ it->local_abspath,
+ lb->repos_root_url,
+ FALSE /* not-present */,
+ FALSE /* url changed */,
+ it->url,
+ it->ancestor
+ ? it->ancestor->revision != it->revision
+ : FALSE,
+ it->revision,
+ (depth != expected_depth),
+ it->depth,
+ pool));
+ }
+
+static svn_error_t *
+layout_link_path(void *report_baton,
+ const char *path,
+ const char *url,
+ svn_revnum_t revision,
+ svn_depth_t depth,
+ svn_boolean_t start_empty,
+ const char *lock_token,
+ apr_pool_t *pool)
+{
+ struct client_layout_baton_t *lb = report_baton;
+ const char *local_abspath = svn_dirent_join(lb->root_abspath, path, pool);
+ struct layout_item_t *it;
+ apr_pool_t *item_pool;
+ svn_depth_t expected_depth;
+
+ SVN_ERR_ASSERT(lb->stack); /* Always below root entry */
+
+ while (!svn_dirent_is_ancestor(lb->stack->local_abspath, local_abspath))
+ {
+ it = lb->stack;
+ lb->stack = it->ancestor;
+ svn_pool_destroy(it->pool);
+ }
+
+ item_pool = svn_pool_create(lb->stack ? lb->stack->pool
+ : lb->root_pool);
+
+ it = apr_pcalloc(item_pool, sizeof(*it));
+ it->pool = item_pool;
+ it->local_abspath = apr_pstrdup(item_pool, local_abspath);
+ it->depth = depth;
+ it->revision = revision;
+ it->url = apr_pstrdup(item_pool, url);
+
+ it->ancestor = lb->stack;
+ lb->stack = it;
+
+ if (it->ancestor->depth == svn_depth_infinity)
+ expected_depth = svn_depth_infinity;
+ else
+ expected_depth = svn_depth_empty;
+
+ return svn_error_trace(lb->layout(lb->layout_baton,
+ it->local_abspath,
+ lb->repos_root_url,
+ FALSE /* not-present */,
+ TRUE /* url changed */,
+ it->url,
+ it->ancestor
+ ? it->ancestor->revision != it->revision
+ : FALSE,
+ it->revision,
+ (depth != expected_depth),
+ it->depth,
+ pool));
+}
+
+static svn_error_t *
+layout_delete_path(void *report_baton,
+ const char *path,
+ apr_pool_t *pool)
+{
+ struct client_layout_baton_t *lb = report_baton;
+ const char *local_abspath = svn_dirent_join(lb->root_abspath, path, pool);
+ struct layout_item_t *it;
+
+ SVN_ERR_ASSERT(lb->stack); /* Always below root entry */
+
+ while (!svn_dirent_is_ancestor(lb->stack->local_abspath, local_abspath))
+ {
+ it = lb->stack;
+ lb->stack = it->ancestor;
+ svn_pool_destroy(it->pool);
+ }
+
+ return svn_error_trace(lb->layout(lb->layout_baton,
+ local_abspath,
+ lb->repos_root_url,
+ TRUE /* not-present */,
+ FALSE /* url changed */,
+ NULL /* no-url */,
+ FALSE /* revision changed */,
+ SVN_INVALID_REVNUM,
+ FALSE /* depth changed */,
+ svn_depth_unknown,
+ pool));
+}
+
+static svn_error_t *
+layout_finish_report(void *report_baton,
+ apr_pool_t *pool)
+{
+ /*struct client_layout_baton_t *lb = report_baton;*/
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+layout_abort_report(void *report_baton,
+ apr_pool_t *pool)
+{
+ /*struct client_layout_baton_t *lb = report_baton;*/
+ return SVN_NO_ERROR;
+}
+
+static const svn_ra_reporter3_t layout_reporter =
+{
+ layout_set_path,
+ layout_delete_path,
+ layout_link_path,
+ layout_finish_report,
+ layout_abort_report
+};
+
+svn_error_t *
+svn_client__layout_list(const char *local_abspath,
+ svn_client__layout_func_t layout,
+ void *layout_baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ struct client_layout_baton_t lb;
+
+ lb.root_abspath = local_abspath;
+ lb.root_pool = scratch_pool;
+ lb.wc_ctx = ctx->wc_ctx;
+ lb.repos_root_url = NULL; /* Filled in later */
+ lb.stack = NULL;
+
+ lb.layout = layout;
+ lb.layout_baton = layout_baton;
+
+ /* Drive the reporter structure, describing the revisions within
+ LOCAL_ABSPATH. */
+ SVN_ERR(svn_wc_crawl_revisions5(ctx->wc_ctx, local_abspath,
+ &layout_reporter, &lb,
+ FALSE /* restore_files */,
+ svn_depth_infinity,
+ TRUE /* honor_depth_exclude */,
+ FALSE /* depth_compatibility_trick */,
+ FALSE /* use_commit_times */,
+ ctx->cancel_func, ctx->cancel_baton,
+ ctx->notify_func2, ctx->notify_baton2,
+ scratch_pool));
+ return SVN_NO_ERROR;
+}
diff --git a/subversion/libsvn_client/libsvn_client.pc.in b/subversion/libsvn_client/libsvn_client.pc.in
index 7cc7865643a9..4e475d895adf 100644
--- a/subversion/libsvn_client/libsvn_client.pc.in
+++ b/subversion/libsvn_client/libsvn_client.pc.in
@@ -6,7 +6,7 @@ includedir=@includedir@
Name: libsvn_client
Description: Subversion Client Library
Version: @PACKAGE_VERSION@
-Requires: apr-@SVN_APR_MAJOR_VERSION@
-Requires.private: libsvn_wc libsvn_ra libsvn_delta libsvn_diff libsvn_subr
-Libs: -L${libdir} -lsvn_client
-Cflags: -I${includedir}
+Requires: apr-@SVN_APR_MAJOR_VERSION@
+Requires.private: libsvn_wc, libsvn_ra, libsvn_delta, libsvn_diff, libsvn_subr
+Libs: -L${libdir} -lsvn_client-1
+Cflags: -I${includedir}/subversion-1
diff --git a/subversion/libsvn_client/list.c b/subversion/libsvn_client/list.c
index 78433c337e58..d52de6d10ac3 100644
--- a/subversion/libsvn_client/list.c
+++ b/subversion/libsvn_client/list.c
@@ -394,7 +394,7 @@ list_internal(const char *path_or_url,
svn_membuf__create(&scratch_buffer, 256, pool);
/* Report the dirent for the target. */
- if (match_patterns(svn_dirent_dirname(fs_path, pool), patterns,
+ if (match_patterns(svn_dirent_basename(fs_path, pool), patterns,
&scratch_buffer))
SVN_ERR(list_func(baton, "", dirent, locks
? (svn_hash_gets(locks, fs_path))
diff --git a/subversion/libsvn_client/merge.c b/subversion/libsvn_client/merge.c
index 21341b9b0a7b..9d9a1c300a10 100644
--- a/subversion/libsvn_client/merge.c
+++ b/subversion/libsvn_client/merge.c
@@ -215,6 +215,21 @@
/*** Repos-Diff Editor Callbacks ***/
+struct merge_cmd_baton_t;
+
+struct notify_begin_state_t
+{
+ /* Cache of which abspath was last notified. */
+ const char *last_abspath;
+
+ /* Reference to the main merge baton */
+ struct merge_cmd_baton_t *merge_b;
+
+ /* the wrapped notification callback */
+ svn_wc_notify_func2_t notify_func2;
+ void *notify_baton2;
+};
+
typedef struct merge_cmd_baton_t {
svn_boolean_t force_delete; /* Delete a file/dir even if modified */
svn_boolean_t dry_run;
@@ -242,11 +257,15 @@ typedef struct merge_cmd_baton_t {
/* Rangelist containing single range which describes the gap, if any,
in the natural history of the merge source currently being processed.
- See http://subversion.tigris.org/issues/show_bug.cgi?id=3432.
+ See https://issues.apache.org/jira/browse/SVN-3432.
Updated during each call to do_directory_merge(). May be NULL if there
is no gap. */
svn_rangelist_t *implicit_src_gap;
+ /* Reference to the one-and-only CHILDREN_WITH_MERGEINFO (see global
+ comment) or a similar list for single-file-merges */
+ const apr_array_header_t *children_with_mergeinfo;
+
svn_client_ctx_t *ctx; /* Client context for callbacks, etc. */
/* The list of any paths which remained in conflict after a
@@ -319,17 +338,10 @@ typedef struct merge_cmd_baton_t {
or do_file_merge() in do_merge(). */
apr_pool_t *pool;
-
- /* State for notify_merge_begin() */
- struct notify_begin_state_t
- {
- /* Cache of which abspath was last notified. */
- const char *last_abspath;
-
- /* Reference to the one-and-only CHILDREN_WITH_MERGEINFO (see global
- comment) or a similar list for single-file-merges */
- const apr_array_header_t *nodes_with_mergeinfo;
- } notify_begin;
+ /* Our notification callback, that adds a 'begin' notification */
+ svn_wc_notify_func2_t notify_func;
+ void *notify_baton;
+ struct notify_begin_state_t notify_begin;
} merge_cmd_baton_t;
@@ -340,17 +352,25 @@ typedef struct merge_cmd_baton_t {
merge source is an ancestor of the right-side (or vice-versa), the merge
source is in the same repository as the merge target, and we are not
ignoring mergeinfo. */
-#define HONOR_MERGEINFO(merge_b) ((merge_b)->mergeinfo_capable \
- && (merge_b)->merge_source.ancestral \
- && (merge_b)->same_repos \
- && (! (merge_b)->ignore_mergeinfo))
+static svn_boolean_t
+HONOR_MERGEINFO(const merge_cmd_baton_t *merge_b)
+{
+ return (merge_b->mergeinfo_capable
+ && merge_b->merge_source.ancestral
+ && merge_b->same_repos
+ && (!merge_b->ignore_mergeinfo));
+}
/* Return TRUE iff we should be recording mergeinfo for the merge described
by MERGE_B. Specifically, that is if we are honoring mergeinfo and the
merge is not a dry run. */
-#define RECORD_MERGEINFO(merge_b) (HONOR_MERGEINFO(merge_b) \
- && !(merge_b)->dry_run)
+static svn_boolean_t
+RECORD_MERGEINFO(const merge_cmd_baton_t *merge_b)
+{
+ return (HONOR_MERGEINFO(merge_b)
+ && !merge_b->dry_run);
+}
/*-----------------------------------------------------------------------*/
@@ -1226,13 +1246,6 @@ struct merge_file_baton_t
svn_boolean_t add_is_replace; /* Add is second part of replace */
};
-/* Forward declaration */
-static svn_error_t *
-notify_merge_begin(merge_cmd_baton_t *merge_b,
- const char *local_abspath,
- svn_boolean_t delete_action,
- apr_pool_t *scratch_pool);
-
/* Record the skip for future processing and (later) produce the
skip notification */
static svn_error_t *
@@ -1253,18 +1266,16 @@ record_skip(merge_cmd_baton_t *merge_b,
store_path(merge_b->skipped_abspaths, local_abspath);
}
- if (merge_b->ctx->notify_func2)
+ if (merge_b->notify_func)
{
svn_wc_notify_t *notify;
- SVN_ERR(notify_merge_begin(merge_b, local_abspath, FALSE, scratch_pool));
-
notify = svn_wc_create_notify(local_abspath, action, scratch_pool);
notify->kind = kind;
notify->content_state = notify->prop_state = state;
- merge_b->ctx->notify_func2(merge_b->ctx->notify_baton2, notify,
- scratch_pool);
+ merge_b->notify_func(merge_b->notify_baton, notify,
+ scratch_pool);
}
return SVN_NO_ERROR;
}
@@ -1364,7 +1375,7 @@ record_tree_conflict(merge_cmd_baton_t *merge_b,
* but figure out the actual revision range merged. */
(void)find_nearest_ancestor_with_intersecting_ranges(
&(range.start), &(range.end),
- merge_b->notify_begin.nodes_with_mergeinfo,
+ merge_b->children_with_mergeinfo,
action != svn_wc_conflict_action_delete,
local_abspath);
loc1 = svn_client__pathrev_dup(merge_b->merge_source.loc1,
@@ -1423,18 +1434,16 @@ record_tree_conflict(merge_cmd_baton_t *merge_b,
}
/* On a replacement we currently get two tree conflicts */
- if (merge_b->ctx->notify_func2 && notify_tc)
+ if (merge_b->notify_func && notify_tc)
{
svn_wc_notify_t *notify;
- SVN_ERR(notify_merge_begin(merge_b, local_abspath, FALSE, scratch_pool));
-
notify = svn_wc_create_notify(local_abspath, svn_wc_notify_tree_conflict,
scratch_pool);
notify->kind = local_node_kind;
- merge_b->ctx->notify_func2(merge_b->ctx->notify_baton2, notify,
- scratch_pool);
+ merge_b->notify_func(merge_b->notify_baton, notify,
+ scratch_pool);
}
return SVN_NO_ERROR;
@@ -1455,21 +1464,19 @@ record_update_add(merge_cmd_baton_t *merge_b,
store_path(merge_b->merged_abspaths, local_abspath);
}
- if (merge_b->ctx->notify_func2)
+ if (merge_b->notify_func)
{
svn_wc_notify_t *notify;
svn_wc_notify_action_t action = svn_wc_notify_update_add;
- SVN_ERR(notify_merge_begin(merge_b, local_abspath, FALSE, scratch_pool));
-
if (notify_replaced)
action = svn_wc_notify_update_replace;
notify = svn_wc_create_notify(local_abspath, action, scratch_pool);
notify->kind = kind;
- merge_b->ctx->notify_func2(merge_b->ctx->notify_baton2, notify,
- scratch_pool);
+ merge_b->notify_func(merge_b->notify_baton, notify,
+ scratch_pool);
}
return SVN_NO_ERROR;
@@ -1490,20 +1497,18 @@ record_update_update(merge_cmd_baton_t *merge_b,
store_path(merge_b->merged_abspaths, local_abspath);
}
- if (merge_b->ctx->notify_func2)
+ if (merge_b->notify_func)
{
svn_wc_notify_t *notify;
- SVN_ERR(notify_merge_begin(merge_b, local_abspath, FALSE, scratch_pool));
-
notify = svn_wc_create_notify(local_abspath, svn_wc_notify_update_update,
scratch_pool);
notify->kind = kind;
notify->content_state = content_state;
notify->prop_state = prop_state;
- merge_b->ctx->notify_func2(merge_b->ctx->notify_baton2, notify,
- scratch_pool);
+ merge_b->notify_func(merge_b->notify_baton, notify,
+ scratch_pool);
}
return SVN_NO_ERROR;
@@ -1529,8 +1534,6 @@ record_update_delete(merge_cmd_baton_t *merge_b,
store_path(merge_b->merged_abspaths, local_abspath);
}
- SVN_ERR(notify_merge_begin(merge_b, local_abspath, TRUE, scratch_pool));
-
if (parent_db)
{
const char *dup_abspath = apr_pstrdup(parent_db->pool, local_abspath);
@@ -1552,7 +1555,7 @@ handle_pending_notifications(merge_cmd_baton_t *merge_b,
struct merge_dir_baton_t *db,
apr_pool_t *scratch_pool)
{
- if (merge_b->ctx->notify_func2 && db->pending_deletes)
+ if (merge_b->notify_func && db->pending_deletes)
{
apr_hash_index_t *hi;
@@ -1569,8 +1572,8 @@ handle_pending_notifications(merge_cmd_baton_t *merge_b,
notify->kind = svn_node_kind_from_word(
apr_hash_this_val(hi));
- merge_b->ctx->notify_func2(merge_b->ctx->notify_baton2,
- notify, scratch_pool);
+ merge_b->notify_func(merge_b->notify_baton,
+ notify, scratch_pool);
}
db->pending_deletes = NULL;
@@ -1620,13 +1623,10 @@ mark_dir_edited(merge_cmd_baton_t *merge_b,
for clarity we produce a skip for this node that
most likely isn't touched by the merge itself */
- if (merge_b->ctx->notify_func2)
+ if (merge_b->notify_func)
{
svn_wc_notify_t *notify;
- SVN_ERR(notify_merge_begin(merge_b, local_abspath, FALSE,
- scratch_pool));
-
notify = svn_wc_create_notify(
local_abspath,
(db->tree_conflict_reason == CONFLICT_REASON_SKIP)
@@ -1636,9 +1636,9 @@ mark_dir_edited(merge_cmd_baton_t *merge_b,
notify->kind = svn_node_dir;
notify->content_state = notify->prop_state = db->skip_reason;
- merge_b->ctx->notify_func2(merge_b->ctx->notify_baton2,
- notify,
- scratch_pool);
+ merge_b->notify_func(merge_b->notify_baton,
+ notify,
+ scratch_pool);
}
if (merge_b->merge_source.ancestral
@@ -1706,21 +1706,18 @@ mark_file_edited(merge_cmd_baton_t *merge_b,
for clarity we produce a skip for this node that
most likely isn't touched by the merge itself */
- if (merge_b->ctx->notify_func2)
+ if (merge_b->notify_func)
{
svn_wc_notify_t *notify;
- SVN_ERR(notify_merge_begin(merge_b, local_abspath, FALSE,
- scratch_pool));
-
notify = svn_wc_create_notify(local_abspath, svn_wc_notify_skip,
scratch_pool);
notify->kind = svn_node_file;
notify->content_state = notify->prop_state = fb->skip_reason;
- merge_b->ctx->notify_func2(merge_b->ctx->notify_baton2,
- notify,
- scratch_pool);
+ merge_b->notify_func(merge_b->notify_baton,
+ notify,
+ scratch_pool);
}
if (merge_b->merge_source.ancestral
@@ -3413,6 +3410,49 @@ merge_node_absent(const char *relpath,
return SVN_NO_ERROR;
}
+/* Return a diff processor that will apply the merge to the WC.
+ */
+static svn_diff_tree_processor_t *
+merge_apply_processor(merge_cmd_baton_t *merge_cmd_baton,
+ apr_pool_t *result_pool)
+{
+ svn_diff_tree_processor_t *merge_processor;
+
+ merge_processor = svn_diff__tree_processor_create(merge_cmd_baton,
+ result_pool);
+
+ merge_processor->dir_opened = merge_dir_opened;
+ merge_processor->dir_changed = merge_dir_changed;
+ merge_processor->dir_added = merge_dir_added;
+ merge_processor->dir_deleted = merge_dir_deleted;
+ merge_processor->dir_closed = merge_dir_closed;
+
+ merge_processor->file_opened = merge_file_opened;
+ merge_processor->file_changed = merge_file_changed;
+ merge_processor->file_added = merge_file_added;
+ merge_processor->file_deleted = merge_file_deleted;
+ /* Not interested in file_closed() */
+
+ merge_processor->node_absent = merge_node_absent;
+
+ return merge_processor;
+}
+
+/* Initialize minimal dir baton to allow calculating 'R'eplace
+ from 'D'elete + 'A'dd. */
+static void *
+open_dir_for_replace_single_file(apr_pool_t *result_pool)
+{
+ struct merge_dir_baton_t *dir_baton = apr_pcalloc(result_pool, sizeof(*dir_baton));
+
+ dir_baton->pool = result_pool;
+ dir_baton->tree_conflict_reason = CONFLICT_REASON_NONE;
+ dir_baton->tree_conflict_action = svn_wc_conflict_action_edit;
+ dir_baton->skip_reason = svn_wc_notify_state_unknown;
+
+ return dir_baton;
+}
+
/*-----------------------------------------------------------------------*/
/*** Merge Notification ***/
@@ -3608,20 +3648,9 @@ notify_merge_completed(const char *target_abspath,
}
}
-/* Is the notification the result of a real operative merge? */
-#define IS_OPERATIVE_NOTIFICATION(notify) \
- (notify->content_state == svn_wc_notify_state_conflicted \
- || notify->content_state == svn_wc_notify_state_merged \
- || notify->content_state == svn_wc_notify_state_changed \
- || notify->prop_state == svn_wc_notify_state_conflicted \
- || notify->prop_state == svn_wc_notify_state_merged \
- || notify->prop_state == svn_wc_notify_state_changed \
- || notify->action == svn_wc_notify_update_add \
- || notify->action == svn_wc_notify_tree_conflict)
-
/* Remove merge source gaps from range used for merge notifications.
- See http://subversion.tigris.org/issues/show_bug.cgi?id=4138
+ See https://issues.apache.org/jira/browse/SVN-4138
If IMPLICIT_SRC_GAP is not NULL then it is a rangelist containing a
single range (see the implicit_src_gap member of merge_cmd_baton_t).
@@ -3656,27 +3685,28 @@ remove_source_gap(svn_merge_range_t *range,
* This calls the client's notification receiver (as found in the client
* context), with a WC abspath.
*/
-static svn_error_t *
-notify_merge_begin(merge_cmd_baton_t *merge_b,
+static void
+notify_merge_begin(struct notify_begin_state_t *notify_begin_state,
const char *local_abspath,
svn_boolean_t delete_action,
apr_pool_t *scratch_pool)
{
+ merge_cmd_baton_t *merge_b = notify_begin_state->merge_b;
svn_wc_notify_t *notify;
svn_merge_range_t n_range =
{SVN_INVALID_REVNUM, SVN_INVALID_REVNUM, TRUE};
const char *notify_abspath;
- if (! merge_b->ctx->notify_func2)
- return SVN_NO_ERROR;
+ if (! notify_begin_state->notify_func2)
+ return;
/* If our merge sources are ancestors of one another... */
if (merge_b->merge_source.ancestral)
{
const svn_client__merge_path_t *child;
- /* Find NOTIFY->PATH's nearest ancestor in
- NOTIFY->CHILDREN_WITH_MERGEINFO. Normally we consider a child in
- NOTIFY->CHILDREN_WITH_MERGEINFO representing PATH to be an
+ /* Find LOCAL_ABSPATH's nearest ancestor in
+ CHILDREN_WITH_MERGEINFO. Normally we consider a child in
+ CHILDREN_WITH_MERGEINFO representing PATH to be an
ancestor of PATH, but if this is a deletion of PATH then the
notification must be for a proper ancestor of PATH. This ensures
we don't get notifications like:
@@ -3692,47 +3722,47 @@ notify_merge_begin(merge_cmd_baton_t *merge_b,
child = find_nearest_ancestor_with_intersecting_ranges(
&(n_range.start), &(n_range.end),
- merge_b->notify_begin.nodes_with_mergeinfo,
+ merge_b->children_with_mergeinfo,
! delete_action, local_abspath);
if (!child && delete_action)
{
/* Triggered by file replace in single-file-merge */
- child = find_nearest_ancestor(merge_b->notify_begin.nodes_with_mergeinfo,
+ child = find_nearest_ancestor(merge_b->children_with_mergeinfo,
TRUE, local_abspath);
}
assert(child != NULL); /* Should always find the merge anchor */
if (! child)
- return SVN_NO_ERROR;
+ return;
- if (merge_b->notify_begin.last_abspath != NULL
- && strcmp(child->abspath, merge_b->notify_begin.last_abspath) == 0)
+ if (notify_begin_state->last_abspath != NULL
+ && strcmp(child->abspath, notify_begin_state->last_abspath) == 0)
{
/* Don't notify the same merge again */
- return SVN_NO_ERROR;
+ return;
}
- merge_b->notify_begin.last_abspath = child->abspath;
+ notify_begin_state->last_abspath = child->abspath;
if (child->absent || child->remaining_ranges->nelts == 0
|| !SVN_IS_VALID_REVNUM(n_range.start))
{
/* No valid information for an header */
- return SVN_NO_ERROR;
+ return;
}
notify_abspath = child->abspath;
}
else
{
- if (merge_b->notify_begin.last_abspath)
- return SVN_NO_ERROR; /* already notified */
+ if (notify_begin_state->last_abspath)
+ return; /* already notified */
notify_abspath = merge_b->target->abspath;
/* Store something in last_abspath. Any value would do */
- merge_b->notify_begin.last_abspath = merge_b->target->abspath;
+ notify_begin_state->last_abspath = merge_b->target->abspath;
}
notify = svn_wc_create_notify(notify_abspath,
@@ -3753,10 +3783,23 @@ notify_merge_begin(merge_cmd_baton_t *merge_b,
notify->merge_range = NULL;
}
- merge_b->ctx->notify_func2(merge_b->ctx->notify_baton2, notify,
- scratch_pool);
+ notify_begin_state->notify_func2(notify_begin_state->notify_baton2, notify,
+ scratch_pool);
+}
+
+/* Our notification callback, that adds a 'begin' notification */
+static void
+notify_merging(void *baton,
+ const svn_wc_notify_t *notify,
+ apr_pool_t *pool)
+{
+ struct notify_begin_state_t *b = baton;
+
+ notify_merge_begin(b, notify->path,
+ notify->action == svn_wc_notify_update_delete,
+ pool);
- return SVN_NO_ERROR;
+ b->notify_func2(b->notify_baton2, notify, pool);
}
/* Set *OUT_RANGELIST to the intersection of IN_RANGELIST with the simple
@@ -5445,7 +5488,7 @@ record_skips_in_mergeinfo(const char *mergeinfo_path,
### TODO: An empty range is fine if the skipped path doesn't
### inherit any mergeinfo from a parent, but if it does
### we need to account for that. See issue #3440
- ### http://subversion.tigris.org/issues/show_bug.cgi?id=3440. */
+ ### https://issues.apache.org/jira/browse/SVN-3440. */
svn_hash_sets(merges, skipped_abspath,
apr_array_make(scratch_pool, 0,
sizeof(svn_merge_range_t *)));
@@ -5554,7 +5597,7 @@ svn_client__make_merge_conflict_error(svn_client__conflict_report_t *report,
defined in get_mergeinfo_paths(). Remove any paths absent from disk
or scheduled for deletion from CHILDREN_WITH_MERGEINFO which are equal to
or are descendants of TARGET_WCPATH by setting those children to NULL. */
-static void
+static svn_error_t *
remove_absent_children(const char *target_wcpath,
apr_array_header_t *children_with_mergeinfo)
{
@@ -5569,9 +5612,10 @@ remove_absent_children(const char *target_wcpath,
if ((child->absent || child->scheduled_for_deletion)
&& svn_dirent_is_ancestor(target_wcpath, child->abspath))
{
- svn_sort__array_delete(children_with_mergeinfo, i--, 1);
+ SVN_ERR(svn_sort__array_delete2(children_with_mergeinfo, i--, 1));
}
}
+ return SVN_NO_ERROR;
}
/* Helper for do_directory_merge() to handle the case where a merge editor
@@ -5586,14 +5630,14 @@ remove_absent_children(const char *target_wcpath,
MERGE_B->target->abspath, this must always be present in
CHILDREN_WITH_MERGEINFO so this is never removed by this
function. */
-static void
+static svn_error_t *
remove_children_with_deleted_mergeinfo(merge_cmd_baton_t *merge_b,
apr_array_header_t *children_with_mergeinfo)
{
int i;
if (!merge_b->paths_with_deleted_mergeinfo)
- return;
+ return SVN_NO_ERROR;
/* CHILDREN_WITH_MERGEINFO[0] is the always the merge target
so start at the first child. */
@@ -5604,9 +5648,10 @@ remove_children_with_deleted_mergeinfo(merge_cmd_baton_t *merge_b,
if (svn_hash_gets(merge_b->paths_with_deleted_mergeinfo, child->abspath))
{
- svn_sort__array_delete(children_with_mergeinfo, i--, 1);
+ SVN_ERR(svn_sort__array_delete2(children_with_mergeinfo, i--, 1));
}
}
+ return SVN_NO_ERROR;
}
/* Helper for do_directory_merge().
@@ -5932,7 +5977,7 @@ get_most_inclusive_rev(const apr_array_header_t *children_with_mergeinfo,
remaining_ranges is inclusive of END_REV, Slice the first range in
to two at END_REV. All the allocations are persistent and allocated
from POOL. */
-static void
+static svn_error_t *
slice_remaining_ranges(apr_array_header_t *children_with_mergeinfo,
svn_boolean_t is_rollback, svn_revnum_t end_rev,
apr_pool_t *pool)
@@ -5962,10 +6007,12 @@ slice_remaining_ranges(apr_array_header_t *children_with_mergeinfo,
split_range2->start = end_rev;
APR_ARRAY_IDX(child->remaining_ranges, 0,
svn_merge_range_t *) = split_range1;
- svn_sort__array_insert(child->remaining_ranges, &split_range2, 1);
+ SVN_ERR(svn_sort__array_insert2(child->remaining_ranges,
+ &split_range2, 1));
}
}
}
+ return SVN_NO_ERROR;
}
/* Helper for do_directory_merge().
@@ -5977,7 +6024,7 @@ slice_remaining_ranges(apr_array_header_t *children_with_mergeinfo,
If a range is removed from a child's remaining_ranges array, allocate the
new remaining_ranges array in POOL.
*/
-static void
+static svn_error_t *
remove_first_range_from_remaining_ranges(svn_revnum_t revision,
apr_array_header_t
*children_with_mergeinfo,
@@ -5998,10 +6045,11 @@ remove_first_range_from_remaining_ranges(svn_revnum_t revision,
APR_ARRAY_IDX(child->remaining_ranges, 0, svn_merge_range_t *);
if (first_range->end == revision)
{
- svn_sort__array_delete(child->remaining_ranges, 0, 1);
+ SVN_ERR(svn_sort__array_delete2(child->remaining_ranges, 0, 1));
}
}
}
+ return SVN_NO_ERROR;
}
/* Get a file's content and properties from the repository.
@@ -6087,7 +6135,7 @@ get_child_with_mergeinfo(const apr_array_header_t *children_with_mergeinfo,
out of order and then sort afterwards. (One caller is doing a qsort
after calling this anyway.)
*/
-static void
+static svn_error_t *
insert_child_to_merge(apr_array_header_t *children_with_mergeinfo,
const svn_client__merge_path_t *insert_element,
apr_pool_t *pool)
@@ -6101,7 +6149,9 @@ insert_child_to_merge(apr_array_header_t *children_with_mergeinfo,
compare_merge_path_t_as_paths);
new_element = svn_client__merge_path_dup(insert_element, pool);
- svn_sort__array_insert(children_with_mergeinfo, &new_element, insert_index);
+ SVN_ERR(svn_sort__array_insert2(children_with_mergeinfo,
+ &new_element, insert_index));
+ return SVN_NO_ERROR;
}
/* Helper for get_mergeinfo_paths().
@@ -6162,7 +6212,7 @@ insert_parent_and_sibs_of_sw_absent_del_subtree(
parent->missing_child = child->absent;
parent->switched_child = child->switched;
/* Insert PARENT into CHILDREN_WITH_MERGEINFO. */
- insert_child_to_merge(children_with_mergeinfo, parent, pool);
+ SVN_ERR(insert_child_to_merge(children_with_mergeinfo, parent, pool));
/* Increment for loop index so we don't process the inserted element. */
(*curr_index)++;
} /*(parent == NULL) */
@@ -6199,8 +6249,8 @@ insert_parent_and_sibs_of_sw_absent_del_subtree(
sibling_of_missing = svn_client__merge_path_create(child_abspath,
pool);
- insert_child_to_merge(children_with_mergeinfo, sibling_of_missing,
- pool);
+ SVN_ERR(insert_child_to_merge(children_with_mergeinfo,
+ sibling_of_missing, pool));
}
}
@@ -6541,8 +6591,8 @@ get_mergeinfo_paths(apr_array_header_t *children_with_mergeinfo,
svn_client__merge_path_t *switched_child =
svn_client__merge_path_create(wc_path, result_pool);
switched_child->switched = TRUE;
- insert_child_to_merge(children_with_mergeinfo, switched_child,
- result_pool);
+ SVN_ERR(insert_child_to_merge(children_with_mergeinfo,
+ switched_child, result_pool));
}
}
}
@@ -6594,8 +6644,8 @@ get_mergeinfo_paths(apr_array_header_t *children_with_mergeinfo,
}
if (new_shallow_child)
- insert_child_to_merge(children_with_mergeinfo, shallow_child,
- result_pool);
+ SVN_ERR(insert_child_to_merge(children_with_mergeinfo,
+ shallow_child, result_pool));
}
}
@@ -6624,8 +6674,8 @@ get_mergeinfo_paths(apr_array_header_t *children_with_mergeinfo,
svn_client__merge_path_t *absent_child =
svn_client__merge_path_create(wc_path, result_pool);
absent_child->absent = TRUE;
- insert_child_to_merge(children_with_mergeinfo, absent_child,
- result_pool);
+ SVN_ERR(insert_child_to_merge(children_with_mergeinfo,
+ absent_child, result_pool));
}
}
}
@@ -6638,8 +6688,8 @@ get_mergeinfo_paths(apr_array_header_t *children_with_mergeinfo,
svn_client__merge_path_t *target_child =
svn_client__merge_path_create(target->abspath,
result_pool);
- insert_child_to_merge(children_with_mergeinfo, target_child,
- result_pool);
+ SVN_ERR(insert_child_to_merge(children_with_mergeinfo, target_child,
+ result_pool));
}
/* Case 8: Path is an immediate *directory* child of
@@ -6682,8 +6732,8 @@ get_mergeinfo_paths(apr_array_header_t *children_with_mergeinfo,
&& depth == svn_depth_immediates)
immediate_child->immediate_child_dir = TRUE;
- insert_child_to_merge(children_with_mergeinfo,
- immediate_child, result_pool);
+ SVN_ERR(insert_child_to_merge(children_with_mergeinfo,
+ immediate_child, result_pool));
}
}
}
@@ -6775,9 +6825,9 @@ get_mergeinfo_paths(apr_array_header_t *children_with_mergeinfo,
child_of_noninheritable =
svn_client__merge_path_create(child_abspath, result_pool);
child_of_noninheritable->child_of_noninheritable = TRUE;
- insert_child_to_merge(children_with_mergeinfo,
- child_of_noninheritable,
- result_pool);
+ SVN_ERR(insert_child_to_merge(children_with_mergeinfo,
+ child_of_noninheritable,
+ result_pool));
if (!dry_run && same_repos)
{
svn_mergeinfo_t mergeinfo;
@@ -7201,7 +7251,7 @@ normalize_merge_sources_internal(apr_array_header_t **merge_sources_p,
new_segment->path = original_repos_relpath;
new_segment->range_start = original_revision;
new_segment->range_end = original_revision;
- svn_sort__array_insert(segments, &new_segment, 0);
+ SVN_ERR(svn_sort__array_insert2(segments, &new_segment, 0));
}
}
}
@@ -7596,16 +7646,15 @@ do_file_merge(svn_mergeinfo_catalog_t result_catalog,
/* ### Create a fake copy of merge_target as we don't keep
remaining_ranges in sync (yet). */
- target_info = apr_pcalloc(scratch_pool, sizeof(*target_info));
-
- target_info->abspath = merge_target->abspath;
+ target_info = svn_client__merge_path_create(merge_target->abspath,
+ scratch_pool);
target_info->remaining_ranges = ranges_to_merge;
APR_ARRAY_PUSH(child_with_mergeinfo, svn_client__merge_path_t *)
= target_info;
/* And store in baton to allow using it from notify_merge_begin() */
- merge_b->notify_begin.nodes_with_mergeinfo = child_with_mergeinfo;
+ merge_b->children_with_mergeinfo = child_with_mergeinfo;
}
while (ranges_to_merge->nelts > 0)
@@ -7648,19 +7697,10 @@ do_file_merge(svn_mergeinfo_catalog_t result_catalog,
do a text-n-props merge; otherwise, do a delete-n-add merge. */
if (! (merge_b->diff_ignore_ancestry || sources_related))
{
- struct merge_dir_baton_t dir_baton;
+ void *dir_baton = open_dir_for_replace_single_file(iterpool);
void *file_baton;
svn_boolean_t skip;
- /* Initialize minimal dir baton to allow calculating 'R'eplace
- from 'D'elete + 'A'dd. */
-
- memset(&dir_baton, 0, sizeof(dir_baton));
- dir_baton.pool = iterpool;
- dir_baton.tree_conflict_reason = CONFLICT_REASON_NONE;
- dir_baton.tree_conflict_action = svn_wc_conflict_action_edit;
- dir_baton.skip_reason = svn_wc_notify_state_unknown;
-
/* Delete... */
file_baton = NULL;
skip = FALSE;
@@ -7668,7 +7708,7 @@ do_file_merge(svn_mergeinfo_catalog_t result_catalog,
left_source,
NULL /* right_source */,
NULL /* copyfrom_source */,
- &dir_baton,
+ dir_baton,
processor,
iterpool, iterpool));
if (! skip)
@@ -7687,7 +7727,7 @@ do_file_merge(svn_mergeinfo_catalog_t result_catalog,
NULL /* left_source */,
right_source,
NULL /* copyfrom_source */,
- &dir_baton,
+ dir_baton,
processor,
iterpool, iterpool));
if (! skip)
@@ -7758,7 +7798,7 @@ do_file_merge(svn_mergeinfo_catalog_t result_catalog,
(This list is used from notify_merge_begin)
Directory merges use remove_first_range_from_remaining_ranges() */
- svn_sort__array_delete(ranges_to_merge, 0, 1);
+ SVN_ERR(svn_sort__array_delete2(ranges_to_merge, 0, 1));
}
merge_b->notify_begin.last_abspath = NULL;
} /* !merge_b->record_only */
@@ -7819,7 +7859,7 @@ do_file_merge(svn_mergeinfo_catalog_t result_catalog,
}
}
- merge_b->notify_begin.nodes_with_mergeinfo = NULL;
+ merge_b->children_with_mergeinfo = NULL;
svn_pool_destroy(iterpool);
@@ -7878,7 +7918,7 @@ process_children_with_new_mergeinfo(merge_cmd_baton_t *merge_b,
was added (with preexisting mergeinfo) by the merge. That's actually
more correct, since the inherited mergeinfo likely describes
non-existent or unrelated merge history, but it's not quite so simple
- as that, see http://subversion.tigris.org/issues/show_bug.cgi?id=4309
+ as that, see https://issues.apache.org/jira/browse/SVN-4309
*/
/* Get the path's new explicit mergeinfo... */
@@ -7945,7 +7985,8 @@ process_children_with_new_mergeinfo(merge_cmd_baton_t *merge_b,
/* Set the path's remaining_ranges equal to its parent's. */
new_child->remaining_ranges = svn_rangelist_dup(
parent->remaining_ranges, pool);
- insert_child_to_merge(children_with_mergeinfo, new_child, pool);
+ SVN_ERR(insert_child_to_merge(children_with_mergeinfo,
+ new_child, pool));
}
}
}
@@ -8269,7 +8310,7 @@ flag_subtrees_needing_mergeinfo(svn_boolean_t operative_merge,
merge_b->target->abspath, depth, merge_b->ctx->wc_ctx,
merge_b->ra_session1, scratch_pool, iterpool));
- /* Issue #4056: Walk NOTIFY_B->CHILDREN_WITH_MERGEINFO reverse depth-first
+ /* Issue #4056: Walk CHILDREN_WITH_MERGEINFO reverse depth-first
order. This way each child knows if it has operative missing/switched
children which necessitates non-inheritable mergeinfo. */
for (i = children_with_mergeinfo->nelts - 1; i >= 0; i--)
@@ -8432,7 +8473,7 @@ flag_subtrees_needing_mergeinfo(svn_boolean_t operative_merge,
}
else /* child->record_mergeinfo */
{
- /* If CHILD is in NOTIFY_B->CHILDREN_WITH_MERGEINFO simply
+ /* If CHILD is in CHILDREN_WITH_MERGEINFO simply
because it had no explicit mergeinfo of its own at the
start of the merge but is the child of of some path with
non-inheritable mergeinfo, then the explicit mergeinfo it
@@ -8457,7 +8498,7 @@ flag_subtrees_needing_mergeinfo(svn_boolean_t operative_merge,
If RESULT_CATALOG is NULL then record mergeinfo describing a merge of
MERGED_RANGE->START:MERGED_RANGE->END from the repository relative path
MERGEINFO_FSPATH to the merge target (and possibly its subtrees) described
- by NOTIFY_B->CHILDREN_WITH_MERGEINFO -- see the global comment
+ by CHILDREN_WITH_MERGEINFO -- see the global comment
'THE CHILDREN_WITH_MERGEINFO ARRAY'. Obviously this should only
be called if recording mergeinfo -- see doc string for RECORD_MERGEINFO().
@@ -8508,10 +8549,10 @@ record_mergeinfo_for_dir_merge(svn_mergeinfo_catalog_t result_catalog,
range.inheritable = TRUE;
/* Remove absent children at or under MERGE_B->target->abspath from
- NOTIFY_B->CHILDREN_WITH_MERGEINFO
+ CHILDREN_WITH_MERGEINFO
before we calculate the merges performed. */
- remove_absent_children(merge_b->target->abspath,
- children_with_mergeinfo);
+ SVN_ERR(remove_absent_children(merge_b->target->abspath,
+ children_with_mergeinfo));
/* Determine which subtrees of interest need mergeinfo recorded... */
SVN_ERR(flag_subtrees_needing_mergeinfo(operative_merge, &range,
@@ -9334,7 +9375,7 @@ do_mergeinfo_aware_dir_merge(svn_mergeinfo_catalog_t result_catalog,
/* Point our RA_SESSION to the URL of our youngest merge source side. */
ra_session = is_rollback ? merge_b->ra_session1 : merge_b->ra_session2;
- /* Fill NOTIFY_B->CHILDREN_WITH_MERGEINFO with child paths (const
+ /* Fill CHILDREN_WITH_MERGEINFO with child paths (const
svn_client__merge_path_t *) which might have intersecting merges
because they meet one or more of the criteria described in
get_mergeinfo_paths(). Here the paths are arranged in a depth
@@ -9344,13 +9385,13 @@ do_mergeinfo_aware_dir_merge(svn_mergeinfo_catalog_t result_catalog,
merge_b->dry_run, merge_b->same_repos,
merge_b->ctx, scratch_pool, scratch_pool));
- /* The first item from the NOTIFY_B->CHILDREN_WITH_MERGEINFO is always
+ /* The first item from the CHILDREN_WITH_MERGEINFO is always
the target thanks to depth-first ordering. */
target_merge_path = APR_ARRAY_IDX(children_with_mergeinfo, 0,
svn_client__merge_path_t *);
/* If we are honoring mergeinfo, then for each item in
- NOTIFY_B->CHILDREN_WITH_MERGEINFO, we need to calculate what needs to be
+ CHILDREN_WITH_MERGEINFO, we need to calculate what needs to be
merged, and then merge it. Otherwise, we just merge what we were asked
to merge across the whole tree. */
SVN_ERR(populate_remaining_ranges(children_with_mergeinfo,
@@ -9370,7 +9411,7 @@ do_mergeinfo_aware_dir_merge(svn_mergeinfo_catalog_t result_catalog,
/* The merge target TARGET_ABSPATH and/or its subtrees may not need all
of SOURCE->rev1:rev2 applied. So examine
- NOTIFY_B->CHILDREN_WITH_MERGEINFO to find the oldest starting
+ CHILDREN_WITH_MERGEINFO to find the oldest starting
revision that actually needs to be merged (for reverse merges this is
the youngest starting revision).
@@ -9408,7 +9449,7 @@ do_mergeinfo_aware_dir_merge(svn_mergeinfo_catalog_t result_catalog,
/* Is there anything to merge? */
if (SVN_IS_VALID_REVNUM(start_rev))
{
- /* Now examine NOTIFY_B->CHILDREN_WITH_MERGEINFO to find the oldest
+ /* Now examine CHILDREN_WITH_MERGEINFO to find the oldest
ending revision that actually needs to be merged (for reverse
merges this is the youngest ending revision). */
svn_revnum_t end_rev =
@@ -9417,7 +9458,7 @@ do_mergeinfo_aware_dir_merge(svn_mergeinfo_catalog_t result_catalog,
/* While END_REV is valid, do the following:
- 1. Tweak each NOTIFY_B->CHILDREN_WITH_MERGEINFO element so that
+ 1. Tweak each CHILDREN_WITH_MERGEINFO element so that
the element's remaining_ranges member has as its first element
a range that ends with end_rev.
@@ -9425,17 +9466,17 @@ do_mergeinfo_aware_dir_merge(svn_mergeinfo_catalog_t result_catalog,
on MERGE_B->target->abspath for start_rev:end_rev.
3. Remove the first element from each
- NOTIFY_B->CHILDREN_WITH_MERGEINFO element's remaining_ranges
+ CHILDREN_WITH_MERGEINFO element's remaining_ranges
member.
- 4. Again examine NOTIFY_B->CHILDREN_WITH_MERGEINFO to find the most
+ 4. Again examine CHILDREN_WITH_MERGEINFO to find the most
inclusive starting revision that actually needs to be merged and
update start_rev. This prevents us from needlessly contacting the
repository and doing a diff where we describe the entire target
tree as *not* needing any of the requested range. This can happen
whenever we have mergeinfo with gaps in it for the merge source.
- 5. Again examine NOTIFY_B->CHILDREN_WITH_MERGEINFO to find the most
+ 5. Again examine CHILDREN_WITH_MERGEINFO to find the most
inclusive ending revision that actually needs to be merged and
update end_rev.
@@ -9477,8 +9518,9 @@ do_mergeinfo_aware_dir_merge(svn_mergeinfo_catalog_t result_catalog,
svn_pool_clear(iterpool);
- slice_remaining_ranges(children_with_mergeinfo,
- is_rollback, end_rev, scratch_pool);
+ SVN_ERR(slice_remaining_ranges(children_with_mergeinfo,
+ is_rollback, end_rev,
+ scratch_pool));
/* Reset variables that must be reset for every drive */
merge_b->notify_begin.last_abspath = NULL;
@@ -9496,23 +9538,23 @@ do_mergeinfo_aware_dir_merge(svn_mergeinfo_catalog_t result_catalog,
/* If any paths picked up explicit mergeinfo as a result of
the merge we need to make sure any mergeinfo those paths
inherited is recorded and then add these paths to
- NOTIFY_B->CHILDREN_WITH_MERGEINFO.*/
+ CHILDREN_WITH_MERGEINFO.*/
SVN_ERR(process_children_with_new_mergeinfo(
merge_b, children_with_mergeinfo,
scratch_pool));
/* If any subtrees had their explicit mergeinfo deleted as a
result of the merge then remove these paths from
- NOTIFY_B->CHILDREN_WITH_MERGEINFO since there is no need
+ CHILDREN_WITH_MERGEINFO since there is no need
to consider these subtrees for subsequent editor drives
nor do we want to record mergeinfo on them describing
the merge itself. */
- remove_children_with_deleted_mergeinfo(
- merge_b, children_with_mergeinfo);
+ SVN_ERR(remove_children_with_deleted_mergeinfo(
+ merge_b, children_with_mergeinfo));
/* Prepare for the next iteration (if any). */
- remove_first_range_from_remaining_ranges(
- end_rev, children_with_mergeinfo, scratch_pool);
+ SVN_ERR(remove_first_range_from_remaining_ranges(
+ end_rev, children_with_mergeinfo, scratch_pool));
/* If we raised any conflicts, break out and report how much
we have merged. */
@@ -9634,7 +9676,7 @@ do_directory_merge(svn_mergeinfo_catalog_t result_catalog,
apr_array_make(scratch_pool, 16, sizeof(svn_client__merge_path_t *));
/* And make it read-only accessible from the baton */
- merge_b->notify_begin.nodes_with_mergeinfo = children_with_mergeinfo;
+ merge_b->children_with_mergeinfo = children_with_mergeinfo;
/* If we are not honoring mergeinfo we can skip right to the
business of merging changes! */
@@ -9652,7 +9694,7 @@ do_directory_merge(svn_mergeinfo_catalog_t result_catalog,
processor, depth,
merge_b, result_pool, scratch_pool));
- merge_b->notify_begin.nodes_with_mergeinfo = NULL;
+ merge_b->children_with_mergeinfo = NULL;
return SVN_NO_ERROR;
}
@@ -9889,28 +9931,13 @@ do_merge(apr_hash_t **modified_subtrees,
merge_cmd_baton.added_abspaths = apr_hash_make(result_pool);
merge_cmd_baton.tree_conflicted_abspaths = apr_hash_make(result_pool);
- {
- svn_diff_tree_processor_t *merge_processor;
-
- merge_processor = svn_diff__tree_processor_create(&merge_cmd_baton,
- scratch_pool);
-
- merge_processor->dir_opened = merge_dir_opened;
- merge_processor->dir_changed = merge_dir_changed;
- merge_processor->dir_added = merge_dir_added;
- merge_processor->dir_deleted = merge_dir_deleted;
- merge_processor->dir_closed = merge_dir_closed;
-
- merge_processor->file_opened = merge_file_opened;
- merge_processor->file_changed = merge_file_changed;
- merge_processor->file_added = merge_file_added;
- merge_processor->file_deleted = merge_file_deleted;
- /* Not interested in file_closed() */
-
- merge_processor->node_absent = merge_node_absent;
+ merge_cmd_baton.notify_func = notify_merging;
+ merge_cmd_baton.notify_baton = &merge_cmd_baton.notify_begin;
+ merge_cmd_baton.notify_begin.merge_b = &merge_cmd_baton;
+ merge_cmd_baton.notify_begin.notify_func2 = ctx->notify_func2;
+ merge_cmd_baton.notify_begin.notify_baton2 = ctx->notify_baton2;
- processor = merge_processor;
- }
+ processor = merge_apply_processor(&merge_cmd_baton, scratch_pool);
if (src_session)
{
diff --git a/subversion/libsvn_client/mtcc.c b/subversion/libsvn_client/mtcc.c
index 75889cad2746..48ddcccbc164 100644
--- a/subversion/libsvn_client/mtcc.c
+++ b/subversion/libsvn_client/mtcc.c
@@ -604,7 +604,7 @@ mtcc_op_contains_non_delete(const mtcc_op_t *op)
static svn_error_t *
mtcc_add_delete(const char *relpath,
svn_boolean_t for_move,
- svn_client__mtcc_t *mtcc,
+ svn_client__mtcc_t *mtcc,
apr_pool_t *scratch_pool)
{
mtcc_op_t *op;
@@ -636,7 +636,7 @@ mtcc_add_delete(const char *relpath,
{
/* Allow deleting directories, that are unmodified except for
one or more deleted descendants */
-
+
SVN_ERR(mtcc_op_find(&op, &created, relpath, mtcc->root_op, TRUE,
FALSE, FALSE, mtcc->pool, scratch_pool));
diff --git a/subversion/libsvn_client/patch.c b/subversion/libsvn_client/patch.c
index 1b2d86b1da94..549d20c11484 100644
--- a/subversion/libsvn_client/patch.c
+++ b/subversion/libsvn_client/patch.c
@@ -343,7 +343,9 @@ strip_path(const char **result, const char *path, int strip_count,
components = svn_path_decompose(path, scratch_pool);
if (strip_count > components->nelts)
return svn_error_createf(SVN_ERR_CLIENT_PATCH_BAD_STRIP_COUNT, NULL,
- _("Cannot strip %u components from '%s'"),
+ Q_("Cannot strip %u component from '%s'",
+ "Cannot strip %u components from '%s'",
+ strip_count),
strip_count,
svn_dirent_local_style(path, scratch_pool));
@@ -1018,6 +1020,7 @@ init_patch_target(patch_target_t **patch_target,
target_content_t *content;
svn_boolean_t has_text_changes = FALSE;
svn_boolean_t follow_moves;
+ const char *tempdir_abspath;
has_text_changes = ((patch->hunks && patch->hunks->nelts > 0)
|| patch->binary_patch);
@@ -1223,8 +1226,10 @@ init_patch_target(patch_target_t **patch_target,
}
/* Open a temporary file to write the patched result to. */
+ SVN_ERR(svn_wc__get_tmpdir(&tempdir_abspath, wc_ctx,
+ target->local_abspath, scratch_pool, scratch_pool));
SVN_ERR(svn_io_open_unique_file3(&target->patched_file,
- &target->patched_path, NULL,
+ &target->patched_path, tempdir_abspath,
remove_tempfiles ?
svn_io_file_del_on_pool_cleanup :
svn_io_file_del_none,
@@ -1236,7 +1241,7 @@ init_patch_target(patch_target_t **patch_target,
/* Open a temporary stream to write rejected hunks to. */
SVN_ERR(svn_stream_open_unique(&target->reject_stream,
- &target->reject_path, NULL,
+ &target->reject_path, tempdir_abspath,
remove_tempfiles ?
svn_io_file_del_on_pool_cleanup :
svn_io_file_del_none,
@@ -2145,8 +2150,8 @@ reject_hunk(patch_target_t *target, target_content_t *content,
if (prop_name)
{
/* ### Print 'Added', 'Deleted' or 'Modified' instead of 'Property'. */
- svn_stream_printf(target->reject_stream,
- pool, "Property: %s" APR_EOL_STR, prop_name);
+ SVN_ERR(svn_stream_printf(target->reject_stream,
+ pool, "Property: %s" APR_EOL_STR, prop_name));
atat = prop_atat;
}
else
diff --git a/subversion/libsvn_client/ra.c b/subversion/libsvn_client/ra.c
index d50e720bd0f1..c1b71e65fc61 100644
--- a/subversion/libsvn_client/ra.c
+++ b/subversion/libsvn_client/ra.c
@@ -402,8 +402,7 @@ svn_client__open_ra_session_internal(svn_ra_session_t **ra_session,
}
}
- /* If the caller allows for auto-following redirections, and the
- RA->open() call above reveals a CORRECTED_URL, try the new URL.
+ /* If the caller allows for auto-following redirections, try the new URL.
We'll do this in a loop up to some maximum number follow-and-retry
attempts. */
if (corrected_url)
@@ -414,12 +413,14 @@ svn_client__open_ra_session_internal(svn_ra_session_t **ra_session,
*corrected_url = NULL;
while (attempts_left--)
{
- const char *corrected = NULL;
+ const char *corrected = NULL; /* canonicalized version */
+ const char *redirect_url = NULL; /* non-canonicalized version */
/* Try to open the RA session. If this is our last attempt,
don't accept corrected URLs from the RA provider. */
- SVN_ERR(svn_ra_open4(ra_session,
+ SVN_ERR(svn_ra_open5(ra_session,
attempts_left == 0 ? NULL : &corrected,
+ attempts_left == 0 ? NULL : &redirect_url,
base_url, uuid, cbtable, cb, ctx->config,
result_pool));
@@ -441,19 +442,28 @@ svn_client__open_ra_session_internal(svn_ra_session_t **ra_session,
*corrected_url = corrected;
/* Make sure we've not attempted this URL before. */
- if (svn_hash_gets(attempted, corrected))
+ if (svn_hash_gets(attempted, redirect_url))
return svn_error_createf(SVN_ERR_CLIENT_CYCLE_DETECTED, NULL,
_("Redirect cycle detected for URL '%s'"),
- corrected);
+ redirect_url);
+
+ /*
+ * Remember this redirect URL so we don't wind up in a loop.
+ *
+ * Store the non-canonicalized version of the URL. The canonicalized
+ * version is insufficient for loop detection because we might not get
+ * an exact match against URLs used by the RA protocol-layer (the URL
+ * used by the protocol may contain trailing slashes, for example,
+ * which are stripped during canonicalization).
+ */
+ svn_hash_sets(attempted, redirect_url, (void *)1);
- /* Remember this CORRECTED_URL so we don't wind up in a loop. */
- svn_hash_sets(attempted, corrected, (void *)1);
base_url = corrected;
}
}
else
{
- SVN_ERR(svn_ra_open4(ra_session, NULL, base_url,
+ SVN_ERR(svn_ra_open5(ra_session, NULL, NULL, base_url,
uuid, cbtable, cb, ctx->config, result_pool));
}
diff --git a/subversion/libsvn_client/repos_diff.c b/subversion/libsvn_client/repos_diff.c
index 58fe8aaa1dae..885b5eba2bc0 100644
--- a/subversion/libsvn_client/repos_diff.c
+++ b/subversion/libsvn_client/repos_diff.c
@@ -51,6 +51,7 @@
#include "private/svn_subr_private.h"
#include "private/svn_wc_private.h"
#include "private/svn_editor.h"
+#include "private/svn_sorts_private.h"
/* Overall crawler editor baton. */
struct edit_baton {
@@ -380,10 +381,10 @@ get_file_from_ra(struct file_baton *fb,
way. Hence this little hack: We populate FILE_BATON->PROPCHANGES only
with *actual* property changes.
- See http://subversion.tigris.org/issues/show_bug.cgi?id=3657#desc9 and
+ See https://issues.apache.org/jira/browse/SVN-3657#desc9 and
http://svn.haxx.se/dev/archive-2010-08/0351.shtml for more details.
*/
-static void
+static svn_error_t *
remove_non_prop_changes(apr_hash_t *pristine_props,
apr_array_header_t *changes)
{
@@ -391,7 +392,7 @@ remove_non_prop_changes(apr_hash_t *pristine_props,
/* For added nodes, there is nothing to filter. */
if (apr_hash_count(pristine_props) == 0)
- return;
+ return SVN_NO_ERROR;
for (i = 0; i < changes->nelts; i++)
{
@@ -404,18 +405,13 @@ remove_non_prop_changes(apr_hash_t *pristine_props,
if (old_val && svn_string_compare(old_val, change->value))
{
- int j;
-
- /* Remove the matching change by shifting the rest */
- for (j = i; j < changes->nelts - 1; j++)
- {
- APR_ARRAY_IDX(changes, j, svn_prop_t)
- = APR_ARRAY_IDX(changes, j+1, svn_prop_t);
- }
- changes->nelts--;
+ /* Remove the matching change and re-check the current index */
+ SVN_ERR(svn_sort__array_delete2(changes, i, 1));
+ i--;
}
}
}
+ return SVN_NO_ERROR;
}
/* Get the empty file associated with the edit baton. This is cached so
@@ -1015,7 +1011,7 @@ close_file(void *file_baton,
}
if (fb->pristine_props)
- remove_non_prop_changes(fb->pristine_props, fb->propchanges);
+ SVN_ERR(remove_non_prop_changes(fb->pristine_props, fb->propchanges));
right_props = svn_prop__patch(fb->pristine_props, fb->propchanges,
fb->pool);
@@ -1088,7 +1084,7 @@ close_directory(void *dir_baton,
if (db->propchanges->nelts > 0)
{
- remove_non_prop_changes(pristine_props, db->propchanges);
+ SVN_ERR(remove_non_prop_changes(pristine_props, db->propchanges));
}
if (db->propchanges->nelts > 0 || db->added)
diff --git a/subversion/libsvn_client/revert.c b/subversion/libsvn_client/revert.c
index d827014ebe1e..96495f15d257 100644
--- a/subversion/libsvn_client/revert.c
+++ b/subversion/libsvn_client/revert.c
@@ -51,42 +51,32 @@ struct revert_with_write_lock_baton {
const apr_array_header_t *changelists;
svn_boolean_t clear_changelists;
svn_boolean_t metadata_only;
+ svn_boolean_t added_keep_local;
svn_client_ctx_t *ctx;
};
/* (Note: All arguments are in the baton above.)
- Attempt to revert LOCAL_ABSPATH.
+ Attempt to revert LOCAL_ABSPATH by calling svn_wc_revert6(), which
+ see for further details.
- If DEPTH is svn_depth_empty, revert just the properties on the
- directory; else if svn_depth_files, revert the properties and any
- files immediately under the directory; else if
- svn_depth_immediates, revert all of the preceding plus properties
- on immediate subdirectories; else if svn_depth_infinity, revert
- path and everything under it fully recursively.
-
- CHANGELISTS is an array of const char * changelist names, used as a
- restrictive filter on items reverted; that is, don't revert any
- item unless it's a member of one of those changelists. If
- CHANGELISTS is empty (or altogether NULL), no changelist filtering occurs.
-
- Consult CTX to determine whether or not to revert timestamp to the
- time of last commit ('use-commit-times = yes').
-
- If PATH is unversioned, return SVN_ERR_UNVERSIONED_RESOURCE. */
+ If the target isn't versioned, send a 'skip' notification and return
+ no error.
+ */
static svn_error_t *
revert(void *baton, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
{
struct revert_with_write_lock_baton *b = baton;
svn_error_t *err;
- err = svn_wc_revert5(b->ctx->wc_ctx,
+ err = svn_wc_revert6(b->ctx->wc_ctx,
b->local_abspath,
b->depth,
b->use_commit_times,
b->changelists,
b->clear_changelists,
b->metadata_only,
+ b->added_keep_local,
b->ctx->cancel_func, b->ctx->cancel_baton,
b->ctx->notify_func2, b->ctx->notify_baton2,
scratch_pool);
@@ -123,11 +113,12 @@ revert(void *baton, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
svn_error_t *
-svn_client_revert3(const apr_array_header_t *paths,
+svn_client_revert4(const apr_array_header_t *paths,
svn_depth_t depth,
const apr_array_header_t *changelists,
svn_boolean_t clear_changelists,
svn_boolean_t metadata_only,
+ svn_boolean_t added_keep_local,
svn_client_ctx_t *ctx,
apr_pool_t *pool)
{
@@ -183,6 +174,7 @@ svn_client_revert3(const apr_array_header_t *paths,
baton.changelists = changelists;
baton.clear_changelists = clear_changelists;
baton.metadata_only = metadata_only;
+ baton.added_keep_local = added_keep_local;
baton.ctx = ctx;
err = svn_wc__is_wcroot(&wc_root, ctx->wc_ctx, local_abspath, iterpool);
diff --git a/subversion/libsvn_client/revisions.c b/subversion/libsvn_client/revisions.c
index 4bfbfc3fc32a..c209c9ea385e 100644
--- a/subversion/libsvn_client/revisions.c
+++ b/subversion/libsvn_client/revisions.c
@@ -146,7 +146,14 @@ svn_client__get_revision_number(svn_revnum_t *revnum,
scratch_pool));
if (revision->kind == svn_opt_revision_previous)
- (*revnum)--;
+ {
+ if (*revnum == 0)
+ return svn_error_createf(
+ SVN_ERR_CLIENT_BAD_REVISION, NULL,
+ _("Path '%s' has no previous revision"),
+ svn_dirent_local_style(local_abspath, scratch_pool));
+ --(*revnum);
+ }
}
break;
diff --git a/subversion/libsvn_client/shelf.c b/subversion/libsvn_client/shelf.c
new file mode 100644
index 000000000000..2bba1935384a
--- /dev/null
+++ b/subversion/libsvn_client/shelf.c
@@ -0,0 +1,1274 @@
+/*
+ * shelf.c: implementation of shelving
+ *
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ */
+
+/* ==================================================================== */
+
+/* We define this here to remove any further warnings about the usage of
+ experimental functions in this file. */
+#define SVN_EXPERIMENTAL
+
+#include "svn_client.h"
+#include "svn_wc.h"
+#include "svn_pools.h"
+#include "svn_dirent_uri.h"
+#include "svn_path.h"
+#include "svn_hash.h"
+#include "svn_utf.h"
+#include "svn_ctype.h"
+#include "svn_props.h"
+
+#include "client.h"
+#include "private/svn_client_shelf.h"
+#include "private/svn_client_private.h"
+#include "private/svn_wc_private.h"
+#include "private/svn_sorts_private.h"
+#include "svn_private_config.h"
+
+
+static svn_error_t *
+shelf_name_encode(char **encoded_name_p,
+ const char *name,
+ apr_pool_t *result_pool)
+{
+ char *encoded_name
+ = apr_palloc(result_pool, strlen(name) * 2 + 1);
+ char *out_pos = encoded_name;
+
+ if (name[0] == '\0')
+ return svn_error_create(SVN_ERR_BAD_CHANGELIST_NAME, NULL,
+ _("Shelf name cannot be the empty string"));
+
+ while (*name)
+ {
+ apr_snprintf(out_pos, 3, "%02x", (unsigned char)(*name++));
+ out_pos += 2;
+ }
+ *encoded_name_p = encoded_name;
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+shelf_name_decode(char **decoded_name_p,
+ const char *codename,
+ apr_pool_t *result_pool)
+{
+ svn_stringbuf_t *sb
+ = svn_stringbuf_create_ensure(strlen(codename) / 2, result_pool);
+ const char *input = codename;
+
+ while (*input)
+ {
+ int c;
+ int nchars;
+ int nitems = sscanf(input, "%02x%n", &c, &nchars);
+
+ if (nitems != 1 || nchars != 2)
+ return svn_error_createf(SVN_ERR_BAD_CHANGELIST_NAME, NULL,
+ _("Shelve: Bad encoded name '%s'"), codename);
+ svn_stringbuf_appendbyte(sb, c);
+ input += 2;
+ }
+ *decoded_name_p = sb->data;
+ return SVN_NO_ERROR;
+}
+
+/* Set *NAME to the shelf name from FILENAME, if FILENAME names a '.current'
+ * file, else to NULL. */
+static svn_error_t *
+shelf_name_from_filename(char **name,
+ const char *filename,
+ apr_pool_t *result_pool)
+{
+ size_t len = strlen(filename);
+ static const char suffix[] = ".current";
+ size_t suffix_len = sizeof(suffix) - 1;
+
+ if (len > suffix_len && strcmp(filename + len - suffix_len, suffix) == 0)
+ {
+ char *codename = apr_pstrndup(result_pool, filename, len - suffix_len);
+ SVN_ERR(shelf_name_decode(name, codename, result_pool));
+ }
+ else
+ {
+ *name = NULL;
+ }
+ return SVN_NO_ERROR;
+}
+
+/* Set *DIR to the shelf storage directory inside the WC's administrative
+ * area. Ensure the directory exists. */
+static svn_error_t *
+get_shelves_dir(char **dir,
+ svn_wc_context_t *wc_ctx,
+ const char *local_abspath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ char *experimental_abspath;
+
+ SVN_ERR(svn_wc__get_experimental_dir(&experimental_abspath,
+ wc_ctx, local_abspath,
+ scratch_pool, scratch_pool));
+ *dir = svn_dirent_join(experimental_abspath, "shelves/v3", result_pool);
+
+ /* Ensure the directory exists. (Other versions of svn don't create it.) */
+ SVN_ERR(svn_io_make_dir_recursively(*dir, scratch_pool));
+
+ return SVN_NO_ERROR;
+}
+
+/* Set *ABSPATH to the abspath of the file storage dir for SHELF
+ * version VERSION, no matter whether it exists.
+ */
+static svn_error_t *
+shelf_version_files_dir_abspath(const char **abspath,
+ svn_client__shelf_t *shelf,
+ int version,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ char *codename;
+ char *filename;
+
+ SVN_ERR(shelf_name_encode(&codename, shelf->name, result_pool));
+ filename = apr_psprintf(scratch_pool, "%s-%03d.wc", codename, version);
+ *abspath = svn_dirent_join(shelf->shelves_dir, filename, result_pool);
+ return SVN_NO_ERROR;
+}
+
+/* Create a shelf-version object for a version that may or may not already
+ * exist on disk.
+ */
+static svn_error_t *
+shelf_version_create(svn_client__shelf_version_t **new_version_p,
+ svn_client__shelf_t *shelf,
+ int version_number,
+ apr_pool_t *result_pool)
+{
+ svn_client__shelf_version_t *shelf_version
+ = apr_pcalloc(result_pool, sizeof(*shelf_version));
+
+ shelf_version->shelf = shelf;
+ shelf_version->version_number = version_number;
+ SVN_ERR(shelf_version_files_dir_abspath(&shelf_version->files_dir_abspath,
+ shelf, version_number,
+ result_pool, result_pool));
+ *new_version_p = shelf_version;
+ return SVN_NO_ERROR;
+}
+
+/* Delete the storage for SHELF:VERSION. */
+static svn_error_t *
+shelf_version_delete(svn_client__shelf_t *shelf,
+ int version,
+ apr_pool_t *scratch_pool)
+{
+ const char *files_dir_abspath;
+
+ SVN_ERR(shelf_version_files_dir_abspath(&files_dir_abspath,
+ shelf, version,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_io_remove_dir2(files_dir_abspath, TRUE /*ignore_enoent*/,
+ NULL, NULL, /*cancel*/
+ scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* */
+static svn_error_t *
+get_log_abspath(char **log_abspath,
+ svn_client__shelf_t *shelf,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ char *codename;
+ const char *filename;
+
+ SVN_ERR(shelf_name_encode(&codename, shelf->name, result_pool));
+ filename = apr_pstrcat(scratch_pool, codename, ".log", SVN_VA_NULL);
+ *log_abspath = svn_dirent_join(shelf->shelves_dir, filename, result_pool);
+ return SVN_NO_ERROR;
+}
+
+/* Set SHELF->revprops by reading from its storage (the '.log' file).
+ * Set SHELF->revprops to empty if the storage file does not exist; this
+ * is not an error.
+ */
+static svn_error_t *
+shelf_read_revprops(svn_client__shelf_t *shelf,
+ apr_pool_t *scratch_pool)
+{
+ char *log_abspath;
+ svn_error_t *err;
+ svn_stream_t *stream;
+
+ SVN_ERR(get_log_abspath(&log_abspath, shelf, scratch_pool, scratch_pool));
+
+ shelf->revprops = apr_hash_make(shelf->pool);
+ err = svn_stream_open_readonly(&stream, log_abspath,
+ scratch_pool, scratch_pool);
+ if (err && APR_STATUS_IS_ENOENT(err->apr_err))
+ {
+ svn_error_clear(err);
+ return SVN_NO_ERROR;
+ }
+ else
+ SVN_ERR(err);
+ SVN_ERR(svn_hash_read2(shelf->revprops, stream, "PROPS-END", shelf->pool));
+ SVN_ERR(svn_stream_close(stream));
+ return SVN_NO_ERROR;
+}
+
+/* Write SHELF's revprops to its file storage.
+ */
+static svn_error_t *
+shelf_write_revprops(svn_client__shelf_t *shelf,
+ apr_pool_t *scratch_pool)
+{
+ char *log_abspath;
+ apr_file_t *file;
+ svn_stream_t *stream;
+
+ SVN_ERR(get_log_abspath(&log_abspath, shelf, scratch_pool, scratch_pool));
+
+ SVN_ERR(svn_io_file_open(&file, log_abspath,
+ APR_FOPEN_WRITE | APR_FOPEN_CREATE | APR_FOPEN_TRUNCATE,
+ APR_FPROT_OS_DEFAULT, scratch_pool));
+ stream = svn_stream_from_aprfile2(file, FALSE /*disown*/, scratch_pool);
+
+ SVN_ERR(svn_hash_write2(shelf->revprops, stream, "PROPS-END", scratch_pool));
+ SVN_ERR(svn_stream_close(stream));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_revprop_set(svn_client__shelf_t *shelf,
+ const char *prop_name,
+ const svn_string_t *prop_val,
+ apr_pool_t *scratch_pool)
+{
+ svn_hash_sets(shelf->revprops, apr_pstrdup(shelf->pool, prop_name),
+ svn_string_dup(prop_val, shelf->pool));
+ SVN_ERR(shelf_write_revprops(shelf, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_revprop_set_all(svn_client__shelf_t *shelf,
+ apr_hash_t *revprop_table,
+ apr_pool_t *scratch_pool)
+{
+ if (revprop_table)
+ shelf->revprops = svn_prop_hash_dup(revprop_table, shelf->pool);
+ else
+ shelf->revprops = apr_hash_make(shelf->pool);
+
+ SVN_ERR(shelf_write_revprops(shelf, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_revprop_get(svn_string_t **prop_val,
+ svn_client__shelf_t *shelf,
+ const char *prop_name,
+ apr_pool_t *result_pool)
+{
+ *prop_val = svn_hash_gets(shelf->revprops, prop_name);
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_revprop_list(apr_hash_t **props,
+ svn_client__shelf_t *shelf,
+ apr_pool_t *result_pool)
+{
+ *props = shelf->revprops;
+ return SVN_NO_ERROR;
+}
+
+/* */
+static svn_error_t *
+get_current_abspath(char **current_abspath,
+ svn_client__shelf_t *shelf,
+ apr_pool_t *result_pool)
+{
+ char *codename;
+ char *filename;
+
+ SVN_ERR(shelf_name_encode(&codename, shelf->name, result_pool));
+ filename = apr_psprintf(result_pool, "%s.current", codename);
+ *current_abspath = svn_dirent_join(shelf->shelves_dir, filename, result_pool);
+ return SVN_NO_ERROR;
+}
+
+/* Read SHELF->max_version from its storage (the '.current' file).
+ * Set SHELF->max_version to -1 if that file does not exist.
+ */
+static svn_error_t *
+shelf_read_current(svn_client__shelf_t *shelf,
+ apr_pool_t *scratch_pool)
+{
+ char *current_abspath;
+ svn_error_t *err;
+
+ SVN_ERR(get_current_abspath(&current_abspath, shelf, scratch_pool));
+ err = svn_io_read_version_file(&shelf->max_version,
+ current_abspath, scratch_pool);
+ if (err)
+ {
+ shelf->max_version = -1;
+ svn_error_clear(err);
+ return SVN_NO_ERROR;
+ }
+ return SVN_NO_ERROR;
+}
+
+/* */
+static svn_error_t *
+shelf_write_current(svn_client__shelf_t *shelf,
+ apr_pool_t *scratch_pool)
+{
+ char *current_abspath;
+
+ SVN_ERR(get_current_abspath(&current_abspath, shelf, scratch_pool));
+ SVN_ERR(svn_io_write_version_file(current_abspath, shelf->max_version,
+ scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/*-------------------------------------------------------------------------*/
+/* Status Reporting */
+
+/* Adjust a status STATUS_IN obtained from the shelf storage WC, to add
+ * shelf-related metadata:
+ * - changelist: 'svn:shelf:SHELFNAME'
+ */
+static svn_error_t *
+status_augment(svn_wc_status3_t **status_p,
+ const svn_wc_status3_t *status_in,
+ svn_client__shelf_version_t *shelf_version,
+ apr_pool_t *result_pool)
+{
+ *status_p = svn_wc_dup_status3(status_in, result_pool);
+ (*status_p)->changelist = apr_psprintf(result_pool, "svn:shelf:%s",
+ shelf_version->shelf->name);
+ return SVN_NO_ERROR;
+}
+
+/* Read status from shelf storage.
+ */
+static svn_error_t *
+status_read(svn_wc_status3_t **status,
+ svn_client__shelf_version_t *shelf_version,
+ const char *relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ svn_client_ctx_t *ctx = shelf_version->shelf->ctx;
+ char *abspath
+ = svn_dirent_join(shelf_version->files_dir_abspath, relpath,
+ scratch_pool);
+
+ SVN_ERR(svn_wc_status3(status, ctx->wc_ctx, abspath,
+ result_pool, scratch_pool));
+ SVN_ERR(status_augment(status, *status, shelf_version, result_pool));
+ return SVN_NO_ERROR;
+}
+
+/* A visitor function type for use with shelf_status_walk().
+ * The same as svn_wc_status_func4_t except relpath instead of abspath.
+ */
+typedef svn_error_t *(*shelf_status_visitor_t)(void *baton,
+ const char *relpath,
+ const svn_wc_status3_t *status,
+ apr_pool_t *scratch_pool);
+
+/* Baton for shelved_files_walk_visitor(). */
+struct shelf_status_baton_t
+{
+ svn_client__shelf_version_t *shelf_version;
+ shelf_status_visitor_t walk_func;
+ void *walk_baton;
+};
+
+/* Convert a svn_wc_status_func4_t callback invocation to call a
+ * shelf_status_visitor_t callback.
+ *
+ * Call BATON->walk_func(BATON->walk_baton, relpath, ...) for the shelved
+ * storage path ABSPATH, converting ABSPATH to a WC-relative path, and
+ * augmenting the STATUS.
+ *
+ * The opposite of wc_status_visitor().
+ *
+ * Implements svn_wc_status_func4_t. */
+static svn_error_t *
+shelf_status_visitor(void *baton,
+ const char *abspath,
+ const svn_wc_status3_t *status,
+ apr_pool_t *scratch_pool)
+{
+ struct shelf_status_baton_t *b = baton;
+ const char *relpath;
+ svn_wc_status3_t *new_status;
+
+ relpath = svn_dirent_skip_ancestor(b->shelf_version->files_dir_abspath,
+ abspath);
+ SVN_ERR(status_augment(&new_status, status, b->shelf_version, scratch_pool));
+ SVN_ERR(b->walk_func(b->walk_baton, relpath, new_status, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* Report the shelved status of the path SHELF_VERSION:WC_RELPATH
+ * via WALK_FUNC(WALK_BATON, ...).
+ */
+static svn_error_t *
+shelf_status_visit_path(svn_client__shelf_version_t *shelf_version,
+ const char *wc_relpath,
+ shelf_status_visitor_t walk_func,
+ void *walk_baton,
+ apr_pool_t *scratch_pool)
+{
+ svn_wc_status3_t *status;
+
+ SVN_ERR(status_read(&status, shelf_version, wc_relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(walk_func(walk_baton, wc_relpath, status, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* Report the shelved status of all the shelved paths in SHELF_VERSION
+ * at and under WC_RELPATH, via WALK_FUNC(WALK_BATON, ...).
+ */
+static svn_error_t *
+shelf_status_walk(svn_client__shelf_version_t *shelf_version,
+ const char *wc_relpath,
+ shelf_status_visitor_t walk_func,
+ void *walk_baton,
+ apr_pool_t *scratch_pool)
+{
+ svn_client_ctx_t *ctx = shelf_version->shelf->ctx;
+ char *walk_root_abspath
+ = svn_dirent_join(shelf_version->files_dir_abspath, wc_relpath,
+ scratch_pool);
+ struct shelf_status_baton_t baton;
+ svn_error_t *err;
+
+ baton.shelf_version = shelf_version;
+ baton.walk_func = walk_func;
+ baton.walk_baton = walk_baton;
+ err = svn_wc_walk_status(ctx->wc_ctx, walk_root_abspath,
+ svn_depth_infinity,
+ FALSE /*get_all*/,
+ TRUE /*no_ignore*/,
+ FALSE /*ignore_text_mods*/,
+ NULL /*ignore_patterns: use the defaults*/,
+ shelf_status_visitor, &baton,
+ NULL, NULL, /*cancellation*/
+ scratch_pool);
+ if (err && APR_STATUS_IS_ENOENT(err->apr_err))
+ svn_error_clear(err);
+ else
+ SVN_ERR(err);
+
+ return SVN_NO_ERROR;
+}
+
+/* Baton for wc_status_visitor(). */
+typedef struct wc_status_baton_t
+{
+ svn_client__shelf_version_t *shelf_version;
+ svn_wc_status_func4_t walk_func;
+ void *walk_baton;
+} wc_status_baton_t;
+
+/* Convert a shelf_status_visitor_t callback invocation to call a
+ * svn_wc_status_func4_t callback.
+ *
+ * Call BATON->walk_func(BATON->walk_baton, abspath, ...) for the WC-
+ * relative path RELPATH, converting RELPATH to an abspath in the user's WC.
+ *
+ * The opposite of shelf_status_visitor().
+ *
+ * Implements shelf_status_visitor_t. */
+static svn_error_t *
+wc_status_visitor(void *baton,
+ const char *relpath,
+ const svn_wc_status3_t *status,
+ apr_pool_t *scratch_pool)
+{
+ struct wc_status_baton_t *b = baton;
+ svn_client__shelf_t *shelf = b->shelf_version->shelf;
+ const char *abspath = svn_dirent_join(shelf->wc_root_abspath, relpath,
+ scratch_pool);
+ SVN_ERR(b->walk_func(b->walk_baton, abspath, status, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_version_status_walk(svn_client__shelf_version_t *shelf_version,
+ const char *wc_relpath,
+ svn_wc_status_func4_t walk_func,
+ void *walk_baton,
+ apr_pool_t *scratch_pool)
+{
+ wc_status_baton_t baton;
+
+ baton.shelf_version = shelf_version;
+ baton.walk_func = walk_func;
+ baton.walk_baton = walk_baton;
+ SVN_ERR(shelf_status_walk(shelf_version, wc_relpath,
+ wc_status_visitor, &baton,
+ scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/*-------------------------------------------------------------------------*/
+/* Shelf Storage */
+
+/* Construct a shelf object representing an empty shelf: no versions,
+ * no revprops, no looking to see if such a shelf exists on disk.
+ */
+static svn_error_t *
+shelf_construct(svn_client__shelf_t **shelf_p,
+ const char *name,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool)
+{
+ svn_client__shelf_t *shelf = apr_palloc(result_pool, sizeof(*shelf));
+ char *shelves_dir;
+
+ SVN_ERR(svn_client_get_wc_root(&shelf->wc_root_abspath,
+ local_abspath, ctx,
+ result_pool, result_pool));
+ SVN_ERR(get_shelves_dir(&shelves_dir, ctx->wc_ctx, local_abspath,
+ result_pool, result_pool));
+ shelf->shelves_dir = shelves_dir;
+ shelf->ctx = ctx;
+ shelf->pool = result_pool;
+
+ shelf->name = apr_pstrdup(result_pool, name);
+ shelf->revprops = apr_hash_make(result_pool);
+ shelf->max_version = 0;
+
+ *shelf_p = shelf;
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_open_existing(svn_client__shelf_t **shelf_p,
+ const char *name,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool)
+{
+ SVN_ERR(shelf_construct(shelf_p, name,
+ local_abspath, ctx, result_pool));
+ SVN_ERR(shelf_read_revprops(*shelf_p, result_pool));
+ SVN_ERR(shelf_read_current(*shelf_p, result_pool));
+ if ((*shelf_p)->max_version < 0)
+ {
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("Shelf '%s' not found"),
+ name);
+ }
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_open_or_create(svn_client__shelf_t **shelf_p,
+ const char *name,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool)
+{
+ svn_client__shelf_t *shelf;
+
+ SVN_ERR(shelf_construct(&shelf, name,
+ local_abspath, ctx, result_pool));
+ SVN_ERR(shelf_read_revprops(shelf, result_pool));
+ SVN_ERR(shelf_read_current(shelf, result_pool));
+ if (shelf->max_version < 0)
+ {
+ shelf->max_version = 0;
+ SVN_ERR(shelf_write_current(shelf, result_pool));
+ }
+ *shelf_p = shelf;
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_close(svn_client__shelf_t *shelf,
+ apr_pool_t *scratch_pool)
+{
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_delete(const char *name,
+ const char *local_abspath,
+ svn_boolean_t dry_run,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ svn_client__shelf_t *shelf;
+ int i;
+ char *abspath;
+
+ SVN_ERR(svn_client__shelf_open_existing(&shelf, name,
+ local_abspath, ctx, scratch_pool));
+
+ /* Remove the versions. */
+ for (i = shelf->max_version; i > 0; i--)
+ {
+ SVN_ERR(shelf_version_delete(shelf, i, scratch_pool));
+ }
+
+ /* Remove the other files */
+ SVN_ERR(get_log_abspath(&abspath, shelf, scratch_pool, scratch_pool));
+ SVN_ERR(svn_io_remove_file2(abspath, TRUE /*ignore_enoent*/, scratch_pool));
+ SVN_ERR(get_current_abspath(&abspath, shelf, scratch_pool));
+ SVN_ERR(svn_io_remove_file2(abspath, TRUE /*ignore_enoent*/, scratch_pool));
+
+ SVN_ERR(svn_client__shelf_close(shelf, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* Baton for paths_changed_visitor(). */
+struct paths_changed_walk_baton_t
+{
+ apr_hash_t *paths_hash;
+ const char *wc_root_abspath;
+ apr_pool_t *pool;
+};
+
+/* Add to the list(s) in BATON, the RELPATH of a shelved 'binary' file.
+ * Implements shelved_files_walk_func_t. */
+static svn_error_t *
+paths_changed_visitor(void *baton,
+ const char *relpath,
+ const svn_wc_status3_t *s,
+ apr_pool_t *scratch_pool)
+{
+ struct paths_changed_walk_baton_t *b = baton;
+
+ relpath = apr_pstrdup(b->pool, relpath);
+ svn_hash_sets(b->paths_hash, relpath, relpath);
+ return SVN_NO_ERROR;
+}
+
+/* Get the paths changed, relative to WC root or as abspaths, as a hash
+ * and/or an array (in no particular order).
+ */
+static svn_error_t *
+shelf_paths_changed(apr_hash_t **paths_hash_p,
+ apr_array_header_t **paths_array_p,
+ svn_client__shelf_version_t *shelf_version,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ svn_client__shelf_t *shelf = shelf_version->shelf;
+ apr_hash_t *paths_hash = apr_hash_make(result_pool);
+ struct paths_changed_walk_baton_t baton;
+
+ baton.paths_hash = paths_hash;
+ baton.wc_root_abspath = shelf->wc_root_abspath;
+ baton.pool = result_pool;
+ SVN_ERR(shelf_status_walk(shelf_version, "",
+ paths_changed_visitor, &baton,
+ scratch_pool));
+
+ if (paths_hash_p)
+ *paths_hash_p = paths_hash;
+ if (paths_array_p)
+ SVN_ERR(svn_hash_keys(paths_array_p, paths_hash, result_pool));
+
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_paths_changed(apr_hash_t **affected_paths,
+ svn_client__shelf_version_t *shelf_version,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ SVN_ERR(shelf_paths_changed(affected_paths, NULL, shelf_version,
+ result_pool, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_replay(svn_client__shelf_version_t *shelf_version,
+ const char *top_relpath,
+ const svn_delta_editor_t *editor,
+ void *edit_baton,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
+ apr_pool_t *scratch_pool)
+{
+ svn_client_ctx_t *ctx = shelf_version->shelf->ctx;
+ apr_array_header_t *src_targets = apr_array_make(scratch_pool, 1,
+ sizeof(char *));
+ const char *src_wc_abspath
+ = svn_dirent_join(shelf_version->files_dir_abspath, top_relpath, scratch_pool);
+
+ APR_ARRAY_PUSH(src_targets, const char *) = src_wc_abspath;
+ SVN_ERR(svn_client__wc_replay(src_wc_abspath,
+ src_targets, svn_depth_infinity, NULL,
+ editor, edit_baton,
+ notify_func, notify_baton,
+ ctx, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* Baton for test_apply_file_visitor(). */
+struct test_apply_files_baton_t
+{
+ svn_client__shelf_version_t *shelf_version;
+ svn_boolean_t conflict; /* would it conflict? */
+ svn_client_ctx_t *ctx;
+};
+
+/* Ideally, set BATON->conflict if we can't apply a change to WC
+ * at RELPATH without conflict. But in fact, just check
+ * if WC at RELPATH is locally modified.
+ *
+ * Implements shelved_files_walk_func_t. */
+static svn_error_t *
+test_apply_file_visitor(void *baton,
+ const char *relpath,
+ const svn_wc_status3_t *s,
+ apr_pool_t *scratch_pool)
+{
+ struct test_apply_files_baton_t *b = baton;
+ const char *wc_root_abspath = b->shelf_version->shelf->wc_root_abspath;
+ const char *to_wc_abspath = svn_dirent_join(wc_root_abspath, relpath,
+ scratch_pool);
+ svn_wc_status3_t *status;
+
+ SVN_ERR(svn_wc_status3(&status, b->ctx->wc_ctx, to_wc_abspath,
+ scratch_pool, scratch_pool));
+ switch (status->node_status)
+ {
+ case svn_wc_status_normal:
+ case svn_wc_status_none:
+ break;
+ default:
+ b->conflict = TRUE;
+ }
+
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_test_apply_file(svn_boolean_t *conflict_p,
+ svn_client__shelf_version_t *shelf_version,
+ const char *file_relpath,
+ apr_pool_t *scratch_pool)
+{
+ struct test_apply_files_baton_t baton = {0};
+
+ baton.shelf_version = shelf_version;
+ baton.conflict = FALSE;
+ baton.ctx = shelf_version->shelf->ctx;
+ SVN_ERR(shelf_status_visit_path(shelf_version, file_relpath,
+ test_apply_file_visitor, &baton,
+ scratch_pool));
+ *conflict_p = baton.conflict;
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+wc_mods_editor(const svn_delta_editor_t **editor_p,
+ void **edit_baton_p,
+ const char *dst_wc_abspath,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ svn_client__pathrev_t *base;
+ const char *dst_wc_url;
+ svn_ra_session_t *ra_session;
+
+ /* We'll need an RA session to obtain the base of any copies */
+ SVN_ERR(svn_client__wc_node_get_base(&base,
+ dst_wc_abspath, ctx->wc_ctx,
+ scratch_pool, scratch_pool));
+ dst_wc_url = base->url;
+ SVN_ERR(svn_client_open_ra_session2(&ra_session,
+ dst_wc_url, dst_wc_abspath,
+ ctx, result_pool, scratch_pool));
+ SVN_ERR(svn_client__wc_editor(editor_p, edit_baton_p,
+ dst_wc_abspath,
+ notify_func, notify_baton,
+ ra_session, ctx, result_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_mods_editor(const svn_delta_editor_t **editor_p,
+ void **edit_baton_p,
+ svn_client__shelf_version_t *shelf_version,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool)
+{
+ SVN_ERR(wc_mods_editor(editor_p, edit_baton_p,
+ shelf_version->files_dir_abspath,
+ notify_func, notify_baton,
+ ctx, result_pool, result_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_apply(svn_client__shelf_version_t *shelf_version,
+ svn_boolean_t dry_run,
+ apr_pool_t *scratch_pool)
+{
+ svn_client__shelf_t *shelf = shelf_version->shelf;
+ const svn_delta_editor_t *editor;
+ void *edit_baton;
+
+ SVN_ERR(wc_mods_editor(&editor, &edit_baton,
+ shelf->wc_root_abspath,
+ NULL, NULL, /*notification*/
+ shelf->ctx, scratch_pool, scratch_pool));
+
+ SVN_ERR(svn_client__shelf_replay(shelf_version, "",
+ editor, edit_baton,
+ shelf->ctx->notify_func2, shelf->ctx->notify_baton2,
+ scratch_pool));
+
+ svn_io_sleep_for_timestamps(shelf->wc_root_abspath,
+ scratch_pool);
+ return SVN_NO_ERROR;
+}
+
+/* Baton for paths_changed_visitor(). */
+struct unapply_walk_baton_t
+{
+ const char *wc_root_abspath;
+ svn_boolean_t dry_run;
+ svn_boolean_t use_commit_times;
+ svn_client_ctx_t *ctx;
+ apr_pool_t *pool;
+};
+
+/* Revert the change at RELPATH in the user's WC.
+ * Implements shelved_files_walk_func_t. */
+static svn_error_t *
+unapply_visitor(void *baton,
+ const char *relpath,
+ const svn_wc_status3_t *s,
+ apr_pool_t *scratch_pool)
+{
+ struct unapply_walk_baton_t *b = baton;
+ const char *abspath = svn_dirent_join(b->wc_root_abspath, relpath,
+ scratch_pool);
+
+ if (!b->dry_run)
+ {
+ apr_array_header_t *targets
+ = apr_array_make(scratch_pool, 1, sizeof(char *));
+ svn_depth_t depth;
+
+ APR_ARRAY_PUSH(targets, const char *) = abspath;
+
+ /* If the local modification is a "delete" then revert it all
+ (recursively). Otherwise we'd have to walk paths in
+ top-down order to revert a delete, whereas we need bottom-up
+ order to revert children of an added directory. */
+ if (s->node_status == svn_wc_status_deleted
+ || s->node_status == svn_wc_status_replaced
+ || s->node_status == svn_wc_status_added)
+ depth = svn_depth_infinity;
+ else
+ depth = svn_depth_empty;
+ SVN_ERR(svn_wc_revert6(b->ctx->wc_ctx,
+ abspath,
+ depth,
+ b->use_commit_times,
+ NULL /*changelists*/,
+ FALSE /*clear_changelists*/,
+ FALSE /*metadata_only*/,
+ FALSE /*added_keep_local*/,
+ b->ctx->cancel_func, b->ctx->cancel_baton,
+ NULL, NULL, /*notification*/
+ scratch_pool));
+ }
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_unapply(svn_client__shelf_version_t *shelf_version,
+ svn_boolean_t dry_run,
+ apr_pool_t *scratch_pool)
+{
+ svn_client_ctx_t *ctx = shelf_version->shelf->ctx;
+ svn_client__shelf_t *shelf = shelf_version->shelf;
+ struct unapply_walk_baton_t baton;
+ svn_config_t *cfg;
+
+ baton.wc_root_abspath = shelf->wc_root_abspath;
+ baton.dry_run = dry_run;
+ baton.ctx = ctx;
+ baton.pool = scratch_pool;
+
+ cfg = ctx->config ? svn_hash_gets(ctx->config, SVN_CONFIG_CATEGORY_CONFIG)
+ : NULL;
+ SVN_ERR(svn_config_get_bool(cfg, &baton.use_commit_times,
+ SVN_CONFIG_SECTION_MISCELLANY,
+ SVN_CONFIG_OPTION_USE_COMMIT_TIMES, FALSE));
+
+ SVN_WC__CALL_WITH_WRITE_LOCK(
+ shelf_status_walk(shelf_version, "",
+ unapply_visitor, &baton,
+ scratch_pool),
+ ctx->wc_ctx, shelf_version->shelf->wc_root_abspath,
+ FALSE /*lock_anchor*/, scratch_pool);
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_delete_newer_versions(svn_client__shelf_t *shelf,
+ svn_client__shelf_version_t *shelf_version,
+ apr_pool_t *scratch_pool)
+{
+ int previous_version = shelf_version ? shelf_version->version_number : 0;
+ int i;
+
+ /* Delete any newer checkpoints */
+ for (i = shelf->max_version; i > previous_version; i--)
+ {
+ SVN_ERR(shelf_version_delete(shelf, i, scratch_pool));
+ }
+
+ shelf->max_version = previous_version;
+ SVN_ERR(shelf_write_current(shelf, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_diff(svn_client__shelf_version_t *shelf_version,
+ const char *shelf_relpath,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ const svn_diff_tree_processor_t *diff_processor,
+ apr_pool_t *scratch_pool)
+{
+ svn_client_ctx_t *ctx = shelf_version->shelf->ctx;
+ char *local_abspath
+ = svn_dirent_join(shelf_version->files_dir_abspath, shelf_relpath,
+ scratch_pool);
+
+ if (shelf_version->version_number == 0)
+ return SVN_NO_ERROR;
+
+ SVN_ERR(svn_wc__diff7(FALSE /*anchor_at_given_paths*/,
+ ctx->wc_ctx, local_abspath,
+ depth,
+ ignore_ancestry,
+ NULL /*changelists*/,
+ diff_processor,
+ NULL, NULL, /*cancellation*/
+ scratch_pool, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* Populate the storage a new shelf-version object NEW_SHELF_VERSION,
+ * by creating a shelf storage WC with its base state copied from the
+ * 'real' WC.
+ */
+static svn_error_t *
+shelf_copy_base(svn_client__shelf_version_t *new_shelf_version,
+ apr_pool_t *scratch_pool)
+{
+ svn_client_ctx_t *ctx = new_shelf_version->shelf->ctx;
+ const char *users_wc_abspath = new_shelf_version->shelf->wc_root_abspath;
+ svn_client__pathrev_t *users_wc_root_base;
+ svn_opt_revision_t users_wc_root_rev;
+ svn_ra_session_t *ra_session = NULL;
+ svn_boolean_t sleep_here = FALSE;
+
+ SVN_ERR(svn_client__wc_node_get_base(&users_wc_root_base,
+ users_wc_abspath, ctx->wc_ctx,
+ scratch_pool, scratch_pool));
+
+ /* ### We need to read and recreate the mixed-rev, switched-URL,
+ mixed-depth WC state; but for a rough start we'll just use
+ HEAD, unswitched, depth-infinity. */
+ users_wc_root_rev.kind = svn_opt_revision_head;
+
+ /* ### TODO: Create an RA session that reads from the user's WC.
+ For a rough start, we'll just let 'checkout' read from the repo. */
+
+ SVN_ERR(svn_client__checkout_internal(NULL /*result_rev*/, &sleep_here,
+ users_wc_root_base->url,
+ new_shelf_version->files_dir_abspath,
+ &users_wc_root_rev, &users_wc_root_rev,
+ svn_depth_infinity,
+ TRUE /*ignore_externals*/,
+ FALSE /*allow_unver_obstructions*/,
+ ra_session,
+ ctx, scratch_pool));
+ /* ### hopefully we won't eventually need to sleep_here... */
+ if (sleep_here)
+ svn_io_sleep_for_timestamps(new_shelf_version->files_dir_abspath,
+ scratch_pool);
+ return SVN_NO_ERROR;
+}
+
+/* */
+struct shelf_save_notifer_baton_t
+{
+ svn_client__shelf_version_t *shelf_version;
+ svn_wc_notify_func2_t notify_func;
+ void *notify_baton;
+ svn_client_status_func_t shelved_func;
+ void *shelved_baton;
+ svn_boolean_t any_shelved;
+};
+
+/* */
+static void
+shelf_save_notifier(void *baton,
+ const svn_wc_notify_t *notify,
+ apr_pool_t *pool)
+{
+ struct shelf_save_notifer_baton_t *nb = baton;
+ const char *wc_relpath
+ = svn_dirent_skip_ancestor(nb->shelf_version->shelf->wc_root_abspath,
+ notify->path);
+ svn_client_status_t *cst = NULL;
+#if 0
+ svn_wc_status3_t *wc_status;
+
+ svn_error_clear(status_read(&wc_status, nb->shelf_version, wc_relpath,
+ pool, pool));
+ svn_error_clear(svn_client__create_status(
+ &cst, nb->shelf_version->shelf->ctx->wc_ctx,
+ notify->path, wc_status, pool, pool));
+#endif
+ svn_error_clear(nb->shelved_func(nb->shelved_baton, wc_relpath, cst, pool));
+ nb->any_shelved = TRUE;
+
+ nb->notify_func(nb->notify_baton, notify, pool);
+}
+
+svn_error_t *
+svn_client__shelf_save_new_version3(svn_client__shelf_version_t **new_version_p,
+ svn_client__shelf_t *shelf,
+ const apr_array_header_t *paths,
+ svn_depth_t depth,
+ const apr_array_header_t *changelists,
+ svn_client_status_func_t shelved_func,
+ void *shelved_baton,
+ svn_client_status_func_t not_shelved_func,
+ void *not_shelved_baton,
+ apr_pool_t *scratch_pool)
+{
+ svn_client_ctx_t *ctx = shelf->ctx;
+ int next_version = shelf->max_version + 1;
+ svn_client__shelf_version_t *new_shelf_version;
+ struct shelf_save_notifer_baton_t nb;
+ const svn_delta_editor_t *editor;
+ void *edit_baton;
+
+ SVN_ERR(shelf_version_create(&new_shelf_version,
+ shelf, next_version, scratch_pool));
+ SVN_ERR(shelf_copy_base(new_shelf_version, scratch_pool));
+
+ nb.shelf_version = new_shelf_version;
+ nb.notify_func = ctx->notify_func2;
+ nb.notify_baton = ctx->notify_baton2;
+ nb.shelved_func = shelved_func;
+ nb.shelved_baton = shelved_baton;
+ nb.any_shelved = FALSE;
+ SVN_ERR(svn_client__shelf_mods_editor(&editor, &edit_baton,
+ new_shelf_version,
+ NULL, NULL, /*notification*/
+ ctx, scratch_pool));
+ SVN_ERR(svn_client__wc_replay(shelf->wc_root_abspath,
+ paths, depth, changelists,
+ editor, edit_baton,
+ shelf_save_notifier, &nb,
+ ctx, scratch_pool));
+
+ if (nb.any_shelved)
+ {
+ shelf->max_version = next_version;
+ SVN_ERR(shelf_write_current(shelf, scratch_pool));
+
+ if (new_version_p)
+ SVN_ERR(svn_client__shelf_version_open(new_version_p, shelf, next_version,
+ scratch_pool, scratch_pool));
+ }
+ else
+ {
+ if (new_version_p)
+ *new_version_p = NULL;
+ }
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_get_log_message(char **log_message,
+ svn_client__shelf_t *shelf,
+ apr_pool_t *result_pool)
+{
+ svn_string_t *propval = svn_hash_gets(shelf->revprops, SVN_PROP_REVISION_LOG);
+
+ if (propval)
+ *log_message = apr_pstrdup(result_pool, propval->data);
+ else
+ *log_message = NULL;
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_set_log_message(svn_client__shelf_t *shelf,
+ const char *message,
+ apr_pool_t *scratch_pool)
+{
+ svn_string_t *propval
+ = message ? svn_string_create(message, shelf->pool) : NULL;
+
+ SVN_ERR(svn_client__shelf_revprop_set(shelf, SVN_PROP_REVISION_LOG, propval,
+ scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_list(apr_hash_t **shelf_infos,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ const char *wc_root_abspath;
+ char *shelves_dir;
+ apr_hash_t *dirents;
+ apr_hash_index_t *hi;
+
+ SVN_ERR(svn_wc__get_wcroot(&wc_root_abspath, ctx->wc_ctx, local_abspath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(get_shelves_dir(&shelves_dir, ctx->wc_ctx, local_abspath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_io_get_dirents3(&dirents, shelves_dir, FALSE /*only_check_type*/,
+ result_pool, scratch_pool));
+
+ *shelf_infos = apr_hash_make(result_pool);
+
+ /* Remove non-shelves */
+ for (hi = apr_hash_first(scratch_pool, dirents); hi; hi = apr_hash_next(hi))
+ {
+ const char *filename = apr_hash_this_key(hi);
+ svn_io_dirent2_t *dirent = apr_hash_this_val(hi);
+ char *name = NULL;
+
+ svn_error_clear(shelf_name_from_filename(&name, filename, result_pool));
+ if (name && dirent->kind == svn_node_file)
+ {
+ svn_client__shelf_info_t *info
+ = apr_palloc(result_pool, sizeof(*info));
+
+ info->mtime = dirent->mtime;
+ svn_hash_sets(*shelf_infos, name, info);
+ }
+ }
+
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_version_open(svn_client__shelf_version_t **shelf_version_p,
+ svn_client__shelf_t *shelf,
+ int version_number,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ svn_client__shelf_version_t *shelf_version;
+ const svn_io_dirent2_t *dirent;
+
+ SVN_ERR(shelf_version_create(&shelf_version,
+ shelf, version_number, result_pool));
+ SVN_ERR(svn_io_stat_dirent2(&dirent,
+ shelf_version->files_dir_abspath,
+ FALSE /*verify_truename*/,
+ TRUE /*ignore_enoent*/,
+ result_pool, scratch_pool));
+ if (dirent->kind == svn_node_none)
+ {
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("Shelf '%s' version %d not found"),
+ shelf->name, version_number);
+ }
+ shelf_version->mtime = dirent->mtime;
+ *shelf_version_p = shelf_version;
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_get_newest_version(svn_client__shelf_version_t **shelf_version_p,
+ svn_client__shelf_t *shelf,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ if (shelf->max_version == 0)
+ {
+ *shelf_version_p = NULL;
+ return SVN_NO_ERROR;
+ }
+
+ SVN_ERR(svn_client__shelf_version_open(shelf_version_p,
+ shelf, shelf->max_version,
+ result_pool, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_get_all_versions(apr_array_header_t **versions_p,
+ svn_client__shelf_t *shelf,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ int i;
+
+ *versions_p = apr_array_make(result_pool, shelf->max_version - 1,
+ sizeof(svn_client__shelf_version_t *));
+
+ for (i = 1; i <= shelf->max_version; i++)
+ {
+ svn_client__shelf_version_t *shelf_version;
+
+ SVN_ERR(svn_client__shelf_version_open(&shelf_version,
+ shelf, i,
+ result_pool, scratch_pool));
+ APR_ARRAY_PUSH(*versions_p, svn_client__shelf_version_t *) = shelf_version;
+ }
+ return SVN_NO_ERROR;
+}
diff --git a/subversion/libsvn_client/shelf2.c b/subversion/libsvn_client/shelf2.c
new file mode 100644
index 000000000000..533a961e260d
--- /dev/null
+++ b/subversion/libsvn_client/shelf2.c
@@ -0,0 +1,2124 @@
+/*
+ * shelf2.c: implementation of shelving v2
+ *
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ */
+
+/* ==================================================================== */
+
+/* We define this here to remove any further warnings about the usage of
+ experimental functions in this file. */
+#define SVN_EXPERIMENTAL
+
+#include "svn_client.h"
+#include "svn_wc.h"
+#include "svn_pools.h"
+#include "svn_dirent_uri.h"
+#include "svn_path.h"
+#include "svn_hash.h"
+#include "svn_utf.h"
+#include "svn_ctype.h"
+#include "svn_props.h"
+
+#include "client.h"
+#include "private/svn_client_shelf2.h"
+#include "private/svn_client_private.h"
+#include "private/svn_wc_private.h"
+#include "private/svn_sorts_private.h"
+#include "svn_private_config.h"
+
+
+static svn_error_t *
+shelf_name_encode(char **encoded_name_p,
+ const char *name,
+ apr_pool_t *result_pool)
+{
+ char *encoded_name
+ = apr_palloc(result_pool, strlen(name) * 2 + 1);
+ char *out_pos = encoded_name;
+
+ if (name[0] == '\0')
+ return svn_error_create(SVN_ERR_BAD_CHANGELIST_NAME, NULL,
+ _("Shelf name cannot be the empty string"));
+
+ while (*name)
+ {
+ apr_snprintf(out_pos, 3, "%02x", (unsigned char)(*name++));
+ out_pos += 2;
+ }
+ *encoded_name_p = encoded_name;
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+shelf_name_decode(char **decoded_name_p,
+ const char *codename,
+ apr_pool_t *result_pool)
+{
+ svn_stringbuf_t *sb
+ = svn_stringbuf_create_ensure(strlen(codename) / 2, result_pool);
+ const char *input = codename;
+
+ while (*input)
+ {
+ int c;
+ int nchars;
+ int nitems = sscanf(input, "%02x%n", &c, &nchars);
+
+ if (nitems != 1 || nchars != 2)
+ return svn_error_createf(SVN_ERR_BAD_CHANGELIST_NAME, NULL,
+ _("Shelve: Bad encoded name '%s'"), codename);
+ svn_stringbuf_appendbyte(sb, c);
+ input += 2;
+ }
+ *decoded_name_p = sb->data;
+ return SVN_NO_ERROR;
+}
+
+/* Set *NAME to the shelf name from FILENAME, if FILENAME names a '.current'
+ * file, else to NULL. */
+static svn_error_t *
+shelf_name_from_filename(char **name,
+ const char *filename,
+ apr_pool_t *result_pool)
+{
+ size_t len = strlen(filename);
+ static const char suffix[] = ".current";
+ int suffix_len = sizeof(suffix) - 1;
+
+ if (len > suffix_len && strcmp(filename + len - suffix_len, suffix) == 0)
+ {
+ char *codename = apr_pstrndup(result_pool, filename, len - suffix_len);
+ SVN_ERR(shelf_name_decode(name, codename, result_pool));
+ }
+ else
+ {
+ *name = NULL;
+ }
+ return SVN_NO_ERROR;
+}
+
+/* Set *DIR to the shelf storage directory inside the WC's administrative
+ * area. Ensure the directory exists. */
+static svn_error_t *
+get_shelves_dir(char **dir,
+ svn_wc_context_t *wc_ctx,
+ const char *local_abspath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ char *experimental_abspath;
+
+ SVN_ERR(svn_wc__get_experimental_dir(&experimental_abspath,
+ wc_ctx, local_abspath,
+ scratch_pool, scratch_pool));
+ *dir = svn_dirent_join(experimental_abspath, "shelves/v2", result_pool);
+
+ /* Ensure the directory exists. (Other versions of svn don't create it.) */
+ SVN_ERR(svn_io_make_dir_recursively(*dir, scratch_pool));
+
+ return SVN_NO_ERROR;
+}
+
+/* Set *ABSPATH to the abspath of the file storage dir for SHELF
+ * version VERSION, no matter whether it exists.
+ */
+static svn_error_t *
+shelf_version_files_dir_abspath(const char **abspath,
+ svn_client__shelf2_t *shelf,
+ int version,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ char *codename;
+ char *filename;
+
+ SVN_ERR(shelf_name_encode(&codename, shelf->name, result_pool));
+ filename = apr_psprintf(scratch_pool, "%s-%03d.d", codename, version);
+ *abspath = svn_dirent_join(shelf->shelves_dir, filename, result_pool);
+ return SVN_NO_ERROR;
+}
+
+/* Create a shelf-version object for a version that may or may not already
+ * exist on disk.
+ */
+static svn_error_t *
+shelf_version_create(svn_client__shelf2_version_t **new_version_p,
+ svn_client__shelf2_t *shelf,
+ int version_number,
+ apr_pool_t *result_pool)
+{
+ svn_client__shelf2_version_t *shelf_version
+ = apr_pcalloc(result_pool, sizeof(*shelf_version));
+
+ shelf_version->shelf = shelf;
+ shelf_version->version_number = version_number;
+ SVN_ERR(shelf_version_files_dir_abspath(&shelf_version->files_dir_abspath,
+ shelf, version_number,
+ result_pool, result_pool));
+ *new_version_p = shelf_version;
+ return SVN_NO_ERROR;
+}
+
+/* Set *ABSPATH to the abspath of the metadata file for SHELF_VERSION
+ * node at RELPATH, no matter whether it exists.
+ */
+static svn_error_t *
+get_metadata_abspath(char **abspath,
+ svn_client__shelf2_version_t *shelf_version,
+ const char *wc_relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ wc_relpath = apr_psprintf(scratch_pool, "%s.meta", wc_relpath);
+ *abspath = svn_dirent_join(shelf_version->files_dir_abspath, wc_relpath,
+ result_pool);
+ return SVN_NO_ERROR;
+}
+
+/* Set *ABSPATH to the abspath of the base text file for SHELF_VERSION
+ * node at RELPATH, no matter whether it exists.
+ */
+static svn_error_t *
+get_base_file_abspath(char **base_abspath,
+ svn_client__shelf2_version_t *shelf_version,
+ const char *wc_relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ wc_relpath = apr_psprintf(scratch_pool, "%s.base", wc_relpath);
+ *base_abspath = svn_dirent_join(shelf_version->files_dir_abspath, wc_relpath,
+ result_pool);
+ return SVN_NO_ERROR;
+}
+
+/* Set *ABSPATH to the abspath of the working text file for SHELF_VERSION
+ * node at RELPATH, no matter whether it exists.
+ */
+static svn_error_t *
+get_working_file_abspath(char **work_abspath,
+ svn_client__shelf2_version_t *shelf_version,
+ const char *wc_relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ wc_relpath = apr_psprintf(scratch_pool, "%s.work", wc_relpath);
+ *work_abspath = svn_dirent_join(shelf_version->files_dir_abspath, wc_relpath,
+ result_pool);
+ return SVN_NO_ERROR;
+}
+
+/* Set *ABSPATH to the abspath of the base props file for SHELF_VERSION
+ * node at RELPATH, no matter whether it exists.
+ */
+static svn_error_t *
+get_base_props_abspath(char **base_abspath,
+ svn_client__shelf2_version_t *shelf_version,
+ const char *wc_relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ wc_relpath = apr_psprintf(scratch_pool, "%s.base-props", wc_relpath);
+ *base_abspath = svn_dirent_join(shelf_version->files_dir_abspath, wc_relpath,
+ result_pool);
+ return SVN_NO_ERROR;
+}
+
+/* Set *ABSPATH to the abspath of the working props file for SHELF_VERSION
+ * node at RELPATH, no matter whether it exists.
+ */
+static svn_error_t *
+get_working_props_abspath(char **work_abspath,
+ svn_client__shelf2_version_t *shelf_version,
+ const char *wc_relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ wc_relpath = apr_psprintf(scratch_pool, "%s.work-props", wc_relpath);
+ *work_abspath = svn_dirent_join(shelf_version->files_dir_abspath, wc_relpath,
+ result_pool);
+ return SVN_NO_ERROR;
+}
+
+/* Delete the storage for SHELF:VERSION. */
+static svn_error_t *
+shelf_version_delete(svn_client__shelf2_t *shelf,
+ int version,
+ apr_pool_t *scratch_pool)
+{
+ const char *files_dir_abspath;
+
+ SVN_ERR(shelf_version_files_dir_abspath(&files_dir_abspath,
+ shelf, version,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_io_remove_dir2(files_dir_abspath, TRUE /*ignore_enoent*/,
+ NULL, NULL, /*cancel*/
+ scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* */
+static svn_error_t *
+get_log_abspath(char **log_abspath,
+ svn_client__shelf2_t *shelf,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ char *codename;
+ const char *filename;
+
+ SVN_ERR(shelf_name_encode(&codename, shelf->name, result_pool));
+ filename = apr_pstrcat(scratch_pool, codename, ".log", SVN_VA_NULL);
+ *log_abspath = svn_dirent_join(shelf->shelves_dir, filename, result_pool);
+ return SVN_NO_ERROR;
+}
+
+/* Set SHELF->revprops by reading from its storage (the '.log' file).
+ * Set SHELF->revprops to empty if the storage file does not exist; this
+ * is not an error.
+ */
+static svn_error_t *
+shelf_read_revprops(svn_client__shelf2_t *shelf,
+ apr_pool_t *scratch_pool)
+{
+ char *log_abspath;
+ svn_error_t *err;
+ svn_stream_t *stream;
+
+ SVN_ERR(get_log_abspath(&log_abspath, shelf, scratch_pool, scratch_pool));
+
+ shelf->revprops = apr_hash_make(shelf->pool);
+ err = svn_stream_open_readonly(&stream, log_abspath,
+ scratch_pool, scratch_pool);
+ if (err && APR_STATUS_IS_ENOENT(err->apr_err))
+ {
+ svn_error_clear(err);
+ return SVN_NO_ERROR;
+ }
+ else
+ SVN_ERR(err);
+ SVN_ERR(svn_hash_read2(shelf->revprops, stream, "PROPS-END", shelf->pool));
+ SVN_ERR(svn_stream_close(stream));
+ return SVN_NO_ERROR;
+}
+
+/* Write SHELF's revprops to its file storage.
+ */
+static svn_error_t *
+shelf_write_revprops(svn_client__shelf2_t *shelf,
+ apr_pool_t *scratch_pool)
+{
+ char *log_abspath;
+ apr_file_t *file;
+ svn_stream_t *stream;
+
+ SVN_ERR(get_log_abspath(&log_abspath, shelf, scratch_pool, scratch_pool));
+
+ SVN_ERR(svn_io_file_open(&file, log_abspath,
+ APR_FOPEN_WRITE | APR_FOPEN_CREATE | APR_FOPEN_TRUNCATE,
+ APR_FPROT_OS_DEFAULT, scratch_pool));
+ stream = svn_stream_from_aprfile2(file, FALSE /*disown*/, scratch_pool);
+
+ SVN_ERR(svn_hash_write2(shelf->revprops, stream, "PROPS-END", scratch_pool));
+ SVN_ERR(svn_stream_close(stream));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf2_revprop_set(svn_client__shelf2_t *shelf,
+ const char *prop_name,
+ const svn_string_t *prop_val,
+ apr_pool_t *scratch_pool)
+{
+ svn_hash_sets(shelf->revprops, apr_pstrdup(shelf->pool, prop_name),
+ svn_string_dup(prop_val, shelf->pool));
+ SVN_ERR(shelf_write_revprops(shelf, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf2_revprop_set_all(svn_client__shelf2_t *shelf,
+ apr_hash_t *revprop_table,
+ apr_pool_t *scratch_pool)
+{
+ if (revprop_table)
+ shelf->revprops = svn_prop_hash_dup(revprop_table, shelf->pool);
+ else
+ shelf->revprops = apr_hash_make(shelf->pool);
+
+ SVN_ERR(shelf_write_revprops(shelf, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf2_revprop_get(svn_string_t **prop_val,
+ svn_client__shelf2_t *shelf,
+ const char *prop_name,
+ apr_pool_t *result_pool)
+{
+ *prop_val = svn_hash_gets(shelf->revprops, prop_name);
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf2_revprop_list(apr_hash_t **props,
+ svn_client__shelf2_t *shelf,
+ apr_pool_t *result_pool)
+{
+ *props = shelf->revprops;
+ return SVN_NO_ERROR;
+}
+
+/* */
+static svn_error_t *
+get_current_abspath(char **current_abspath,
+ svn_client__shelf2_t *shelf,
+ apr_pool_t *result_pool)
+{
+ char *codename;
+ char *filename;
+
+ SVN_ERR(shelf_name_encode(&codename, shelf->name, result_pool));
+ filename = apr_psprintf(result_pool, "%s.current", codename);
+ *current_abspath = svn_dirent_join(shelf->shelves_dir, filename, result_pool);
+ return SVN_NO_ERROR;
+}
+
+/* Read SHELF->max_version from its storage (the '.current' file).
+ * Set SHELF->max_version to -1 if that file does not exist.
+ */
+static svn_error_t *
+shelf_read_current(svn_client__shelf2_t *shelf,
+ apr_pool_t *scratch_pool)
+{
+ char *current_abspath;
+ svn_error_t *err;
+
+ SVN_ERR(get_current_abspath(&current_abspath, shelf, scratch_pool));
+ err = svn_io_read_version_file(&shelf->max_version,
+ current_abspath, scratch_pool);
+ if (err)
+ {
+ shelf->max_version = -1;
+ svn_error_clear(err);
+ return SVN_NO_ERROR;
+ }
+ return SVN_NO_ERROR;
+}
+
+/* */
+static svn_error_t *
+shelf_write_current(svn_client__shelf2_t *shelf,
+ apr_pool_t *scratch_pool)
+{
+ char *current_abspath;
+
+ SVN_ERR(get_current_abspath(&current_abspath, shelf, scratch_pool));
+ SVN_ERR(svn_io_write_version_file(current_abspath, shelf->max_version,
+ scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/*-------------------------------------------------------------------------*/
+/* Status Reporting */
+
+/* Create a status struct with all fields initialized to valid values
+ * representing 'uninteresting' or 'unknown' status.
+ */
+static svn_wc_status3_t *
+status_create(apr_pool_t *result_pool)
+{
+ svn_wc_status3_t *s = apr_pcalloc(result_pool, sizeof(*s));
+
+ s->filesize = SVN_INVALID_FILESIZE;
+ s->versioned = TRUE;
+ s->node_status = svn_wc_status_none;
+ s->text_status = svn_wc_status_none;
+ s->prop_status = svn_wc_status_none;
+ s->revision = SVN_INVALID_REVNUM;
+ s->changed_rev = SVN_INVALID_REVNUM;
+ s->repos_node_status = svn_wc_status_none;
+ s->repos_text_status = svn_wc_status_none;
+ s->repos_prop_status = svn_wc_status_none;
+ s->ood_changed_rev = SVN_INVALID_REVNUM;
+ return s;
+}
+
+/* Convert from svn_node_kind_t to a single character representation. */
+static char
+kind_to_char(svn_node_kind_t kind)
+{
+ return (kind == svn_node_dir ? 'd'
+ : kind == svn_node_file ? 'f'
+ : kind == svn_node_symlink ? 'l'
+ : '?');
+}
+
+/* Convert to svn_node_kind_t from a single character representation. */
+static svn_node_kind_t
+char_to_kind(char kind)
+{
+ return (kind == 'd' ? svn_node_dir
+ : kind == 'f' ? svn_node_file
+ : kind == 'l' ? svn_node_symlink
+ : svn_node_unknown);
+}
+
+/* Return the single character representation of STATUS.
+ * (Similar to subversion/svn/status.c:generate_status_code()
+ * and subversion/tests/libsvn_client/client-test.c:status_to_char().) */
+static char
+status_to_char(enum svn_wc_status_kind status)
+{
+ switch (status)
+ {
+ case svn_wc_status_none: return '.';
+ case svn_wc_status_unversioned: return '?';
+ case svn_wc_status_normal: return ' ';
+ case svn_wc_status_added: return 'A';
+ case svn_wc_status_missing: return '!';
+ case svn_wc_status_deleted: return 'D';
+ case svn_wc_status_replaced: return 'R';
+ case svn_wc_status_modified: return 'M';
+ case svn_wc_status_merged: return 'G';
+ case svn_wc_status_conflicted: return 'C';
+ case svn_wc_status_ignored: return 'I';
+ case svn_wc_status_obstructed: return '~';
+ case svn_wc_status_external: return 'X';
+ case svn_wc_status_incomplete: return ':';
+ default: return '*';
+ }
+}
+
+static enum svn_wc_status_kind
+char_to_status(char status)
+{
+ switch (status)
+ {
+ case '.': return svn_wc_status_none;
+ case '?': return svn_wc_status_unversioned;
+ case ' ': return svn_wc_status_normal;
+ case 'A': return svn_wc_status_added;
+ case '!': return svn_wc_status_missing;
+ case 'D': return svn_wc_status_deleted;
+ case 'R': return svn_wc_status_replaced;
+ case 'M': return svn_wc_status_modified;
+ case 'G': return svn_wc_status_merged;
+ case 'C': return svn_wc_status_conflicted;
+ case 'I': return svn_wc_status_ignored;
+ case '~': return svn_wc_status_obstructed;
+ case 'X': return svn_wc_status_external;
+ case ':': return svn_wc_status_incomplete;
+ default: return (enum svn_wc_status_kind)0;
+ }
+}
+
+/* Write a serial representation of (some fields of) STATUS to STREAM.
+ */
+static svn_error_t *
+wc_status_serialize(svn_stream_t *stream,
+ const svn_wc_status3_t *status,
+ apr_pool_t *scratch_pool)
+{
+ SVN_ERR(svn_stream_printf(stream, scratch_pool, "%c %c%c%c %ld",
+ kind_to_char(status->kind),
+ status_to_char(status->node_status),
+ status_to_char(status->text_status),
+ status_to_char(status->prop_status),
+ status->revision));
+ return SVN_NO_ERROR;
+}
+
+/* Read a serial representation of (some fields of) STATUS from STREAM.
+ */
+static svn_error_t *
+wc_status_unserialize(svn_wc_status3_t *status,
+ svn_stream_t *stream,
+ apr_pool_t *result_pool)
+{
+ svn_stringbuf_t *sb;
+ char *string;
+
+ SVN_ERR(svn_stringbuf_from_stream(&sb, stream, 100, result_pool));
+ string = sb->data;
+ status->kind = char_to_kind(string[0]);
+ status->node_status = char_to_status(string[2]);
+ status->text_status = char_to_status(string[3]);
+ status->prop_status = char_to_status(string[4]);
+ sscanf(string + 6, "%ld", &status->revision);
+ return SVN_NO_ERROR;
+}
+
+/* Write status to shelf storage.
+ */
+static svn_error_t *
+status_write(svn_client__shelf2_version_t *shelf_version,
+ const char *relpath,
+ const svn_wc_status3_t *status,
+ apr_pool_t *scratch_pool)
+{
+ char *file_abspath;
+ svn_stream_t *stream;
+
+ SVN_ERR(get_metadata_abspath(&file_abspath, shelf_version, relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_stream_open_writable(&stream, file_abspath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(wc_status_serialize(stream, status, scratch_pool));
+ SVN_ERR(svn_stream_close(stream));
+ return SVN_NO_ERROR;
+}
+
+/* Read status from shelf storage.
+ */
+static svn_error_t *
+status_read(svn_wc_status3_t **status,
+ svn_client__shelf2_version_t *shelf_version,
+ const char *relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ svn_wc_status3_t *s = status_create(result_pool);
+ char *file_abspath;
+ svn_stream_t *stream;
+
+ SVN_ERR(get_metadata_abspath(&file_abspath, shelf_version, relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_stream_open_readonly(&stream, file_abspath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(wc_status_unserialize(s, stream, result_pool));
+ SVN_ERR(svn_stream_close(stream));
+
+ s->changelist = apr_psprintf(result_pool, "svn:shelf:%s",
+ shelf_version->shelf->name);
+ *status = s;
+ return SVN_NO_ERROR;
+}
+
+/* A visitor function type for use with shelf_status_walk().
+ * The same as svn_wc_status_func4_t except relpath instead of abspath.
+ * Only some fields in STATUS are available.
+ */
+typedef svn_error_t *(*shelf_status_visitor_t)(void *baton,
+ const char *relpath,
+ svn_wc_status3_t *status,
+ apr_pool_t *scratch_pool);
+
+/* Baton for shelved_files_walk_visitor(). */
+struct shelf_status_baton_t
+{
+ svn_client__shelf2_version_t *shelf_version;
+ const char *top_relpath;
+ const char *walk_root_abspath;
+ shelf_status_visitor_t walk_func;
+ void *walk_baton;
+};
+
+/* Call BATON->walk_func(BATON->walk_baton, relpath, ...) for the shelved
+ * 'binary' file stored at ABSPATH.
+ * Implements svn_io_walk_func_t. */
+static svn_error_t *
+shelf_status_visitor(void *baton,
+ const char *abspath,
+ const apr_finfo_t *finfo,
+ apr_pool_t *scratch_pool)
+{
+ struct shelf_status_baton_t *b = baton;
+ const char *relpath;
+
+ relpath = svn_dirent_skip_ancestor(b->walk_root_abspath, abspath);
+ if (finfo->filetype == APR_REG
+ && (strlen(relpath) >= 5 && strcmp(relpath+strlen(relpath)-5, ".meta") == 0))
+ {
+ svn_wc_status3_t *s;
+
+ relpath = apr_pstrndup(scratch_pool, relpath, strlen(relpath) - 5);
+ if (!svn_relpath_skip_ancestor(b->top_relpath, relpath))
+ return SVN_NO_ERROR;
+
+ SVN_ERR(status_read(&s, b->shelf_version, relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(b->walk_func(b->walk_baton, relpath, s, scratch_pool));
+ }
+ return SVN_NO_ERROR;
+}
+
+/* Report the shelved status of the path SHELF_VERSION:WC_RELPATH
+ * via WALK_FUNC(WALK_BATON, ...).
+ */
+static svn_error_t *
+shelf_status_visit_path(svn_client__shelf2_version_t *shelf_version,
+ const char *wc_relpath,
+ shelf_status_visitor_t walk_func,
+ void *walk_baton,
+ apr_pool_t *scratch_pool)
+{
+ struct shelf_status_baton_t baton;
+ char *abspath;
+ apr_finfo_t finfo;
+
+ baton.shelf_version = shelf_version;
+ baton.top_relpath = wc_relpath;
+ baton.walk_root_abspath = shelf_version->files_dir_abspath;
+ baton.walk_func = walk_func;
+ baton.walk_baton = walk_baton;
+ SVN_ERR(get_metadata_abspath(&abspath, shelf_version, wc_relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_io_stat(&finfo, abspath, APR_FINFO_TYPE, scratch_pool));
+ SVN_ERR(shelf_status_visitor(&baton, abspath, &finfo, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* Report the shelved status of all the shelved paths in SHELF_VERSION
+ * via WALK_FUNC(WALK_BATON, ...).
+ */
+static svn_error_t *
+shelf_status_walk(svn_client__shelf2_version_t *shelf_version,
+ const char *wc_relpath,
+ shelf_status_visitor_t walk_func,
+ void *walk_baton,
+ apr_pool_t *scratch_pool)
+{
+ struct shelf_status_baton_t baton;
+ svn_error_t *err;
+
+ baton.shelf_version = shelf_version;
+ baton.top_relpath = wc_relpath;
+ baton.walk_root_abspath = shelf_version->files_dir_abspath;
+ baton.walk_func = walk_func;
+ baton.walk_baton = walk_baton;
+ err = svn_io_dir_walk2(baton.walk_root_abspath, 0 /*wanted*/,
+ shelf_status_visitor, &baton,
+ scratch_pool);
+ if (err && APR_STATUS_IS_ENOENT(err->apr_err))
+ svn_error_clear(err);
+ else
+ SVN_ERR(err);
+
+ return SVN_NO_ERROR;
+}
+
+typedef struct wc_status_baton_t
+{
+ svn_client__shelf2_version_t *shelf_version;
+ svn_wc_status_func4_t walk_func;
+ void *walk_baton;
+} wc_status_baton_t;
+
+static svn_error_t *
+wc_status_visitor(void *baton,
+ const char *relpath,
+ svn_wc_status3_t *status,
+ apr_pool_t *scratch_pool)
+{
+ struct wc_status_baton_t *b = baton;
+ svn_client__shelf2_t *shelf = b->shelf_version->shelf;
+ const char *abspath = svn_dirent_join(shelf->wc_root_abspath, relpath,
+ scratch_pool);
+ SVN_ERR(b->walk_func(b->walk_baton, abspath, status, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf2_version_status_walk(svn_client__shelf2_version_t *shelf_version,
+ const char *wc_relpath,
+ svn_wc_status_func4_t walk_func,
+ void *walk_baton,
+ apr_pool_t *scratch_pool)
+{
+ wc_status_baton_t baton;
+
+ baton.shelf_version = shelf_version;
+ baton.walk_func = walk_func;
+ baton.walk_baton = walk_baton;
+ SVN_ERR(shelf_status_walk(shelf_version, wc_relpath,
+ wc_status_visitor, &baton,
+ scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/*-------------------------------------------------------------------------*/
+/* Shelf Storage */
+
+/* A baton for use with write_changes_visitor(). */
+typedef struct write_changes_baton_t {
+ const char *wc_root_abspath;
+ svn_client__shelf2_version_t *shelf_version;
+ svn_client_ctx_t *ctx;
+ svn_boolean_t any_shelved; /* were any paths successfully shelved? */
+ svn_client_status_func_t was_shelved_func;
+ void *was_shelved_baton;
+ svn_client_status_func_t was_not_shelved_func;
+ void *was_not_shelved_baton;
+ apr_pool_t *pool; /* pool for data in 'unshelvable', etc. */
+} write_changes_baton_t;
+
+/* */
+static svn_error_t *
+notify_shelved(write_changes_baton_t *wb,
+ const char *wc_relpath,
+ const char *local_abspath,
+ const svn_wc_status3_t *wc_status,
+ apr_pool_t *scratch_pool)
+{
+ if (wb->was_shelved_func)
+ {
+ svn_client_status_t *cst;
+
+ SVN_ERR(svn_client__create_status(&cst, wb->ctx->wc_ctx, local_abspath,
+ wc_status,
+ scratch_pool, scratch_pool));
+ SVN_ERR(wb->was_shelved_func(wb->was_shelved_baton,
+ wc_relpath, cst, scratch_pool));
+ }
+
+ wb->any_shelved = TRUE;
+ return SVN_NO_ERROR;
+}
+
+/* */
+static svn_error_t *
+notify_not_shelved(write_changes_baton_t *wb,
+ const char *wc_relpath,
+ const char *local_abspath,
+ const svn_wc_status3_t *wc_status,
+ apr_pool_t *scratch_pool)
+{
+ if (wb->was_not_shelved_func)
+ {
+ svn_client_status_t *cst;
+
+ SVN_ERR(svn_client__create_status(&cst, wb->ctx->wc_ctx, local_abspath,
+ wc_status,
+ scratch_pool, scratch_pool));
+ SVN_ERR(wb->was_not_shelved_func(wb->was_not_shelved_baton,
+ wc_relpath, cst, scratch_pool));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Read BASE_PROPS and WORK_PROPS from the WC, setting each to null if
+ * the node has no base or working version (respectively).
+ */
+static svn_error_t *
+read_props_from_wc(apr_hash_t **base_props,
+ apr_hash_t **work_props,
+ enum svn_wc_status_kind node_status,
+ const char *from_wc_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ if (node_status != svn_wc_status_added)
+ SVN_ERR(svn_wc_get_pristine_props(base_props, ctx->wc_ctx, from_wc_abspath,
+ result_pool, scratch_pool));
+ else
+ *base_props = NULL;
+ if (node_status != svn_wc_status_deleted)
+ SVN_ERR(svn_wc_prop_list2(work_props, ctx->wc_ctx, from_wc_abspath,
+ result_pool, scratch_pool));
+ else
+ *work_props = NULL;
+ return SVN_NO_ERROR;
+}
+
+/* Write BASE_PROPS and WORK_PROPS to storage in SHELF_VERSION:WC_RELPATH.
+ */
+static svn_error_t *
+write_props_to_shelf(svn_client__shelf2_version_t *shelf_version,
+ const char *wc_relpath,
+ apr_hash_t *base_props,
+ apr_hash_t *work_props,
+ apr_pool_t *scratch_pool)
+{
+ char *stored_props_abspath;
+ svn_stream_t *stream;
+
+ if (base_props)
+ {
+ SVN_ERR(get_base_props_abspath(&stored_props_abspath,
+ shelf_version, wc_relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_stream_open_writable(&stream, stored_props_abspath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_hash_write2(base_props, stream, NULL, scratch_pool));
+ SVN_ERR(svn_stream_close(stream));
+ }
+
+ if (work_props)
+ {
+ SVN_ERR(get_working_props_abspath(&stored_props_abspath,
+ shelf_version, wc_relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_stream_open_writable(&stream, stored_props_abspath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_hash_write2(work_props, stream, NULL, scratch_pool));
+ SVN_ERR(svn_stream_close(stream));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Read BASE_PROPS and WORK_PROPS from storage in SHELF_VERSION:WC_RELPATH.
+ */
+static svn_error_t *
+read_props_from_shelf(apr_hash_t **base_props,
+ apr_hash_t **work_props,
+ enum svn_wc_status_kind node_status,
+ svn_client__shelf2_version_t *shelf_version,
+ const char *wc_relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ char *stored_props_abspath;
+ svn_stream_t *stream;
+
+ if (node_status != svn_wc_status_added)
+ {
+ *base_props = apr_hash_make(result_pool);
+ SVN_ERR(get_base_props_abspath(&stored_props_abspath,
+ shelf_version, wc_relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_stream_open_readonly(&stream, stored_props_abspath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_hash_read2(*base_props, stream, NULL, scratch_pool));
+ SVN_ERR(svn_stream_close(stream));
+ }
+ else
+ *base_props = NULL;
+
+ if (node_status != svn_wc_status_deleted)
+ {
+ *work_props = apr_hash_make(result_pool);
+ SVN_ERR(get_working_props_abspath(&stored_props_abspath,
+ shelf_version, wc_relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_stream_open_readonly(&stream, stored_props_abspath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_hash_read2(*work_props, stream, NULL, scratch_pool));
+ SVN_ERR(svn_stream_close(stream));
+ }
+ else
+ *work_props = NULL;
+
+ return SVN_NO_ERROR;
+}
+
+/* Store metadata for any node, and base and working files if it's a file.
+ *
+ * Copy the WC base and working files at FROM_WC_ABSPATH to the storage
+ * area in SHELF_VERSION.
+ */
+static svn_error_t *
+store_file(const char *from_wc_abspath,
+ const char *wc_relpath,
+ svn_client__shelf2_version_t *shelf_version,
+ const svn_wc_status3_t *status,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ char *stored_abspath;
+ apr_hash_t *base_props, *work_props;
+
+ SVN_ERR(get_working_file_abspath(&stored_abspath,
+ shelf_version, wc_relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_io_make_dir_recursively(svn_dirent_dirname(stored_abspath,
+ scratch_pool),
+ scratch_pool));
+ SVN_ERR(status_write(shelf_version, wc_relpath,
+ status, scratch_pool));
+
+ /* properties */
+ SVN_ERR(read_props_from_wc(&base_props, &work_props,
+ status->node_status,
+ from_wc_abspath, ctx,
+ scratch_pool, scratch_pool));
+ SVN_ERR(write_props_to_shelf(shelf_version, wc_relpath,
+ base_props, work_props,
+ scratch_pool));
+
+ /* file text */
+ if (status->kind == svn_node_file)
+ {
+ svn_stream_t *wc_base_stream;
+ svn_node_kind_t work_kind;
+
+ /* Copy the base file (copy-from base, if copied/moved), if present */
+ SVN_ERR(svn_wc_get_pristine_contents2(&wc_base_stream,
+ ctx->wc_ctx, from_wc_abspath,
+ scratch_pool, scratch_pool));
+ if (wc_base_stream)
+ {
+ char *stored_base_abspath;
+ svn_stream_t *stored_base_stream;
+
+ SVN_ERR(get_base_file_abspath(&stored_base_abspath,
+ shelf_version, wc_relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_stream_open_writable(&stored_base_stream,
+ stored_base_abspath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_stream_copy3(wc_base_stream, stored_base_stream,
+ NULL, NULL, scratch_pool));
+ }
+
+ /* Copy the working file, if present */
+ SVN_ERR(svn_io_check_path(from_wc_abspath, &work_kind, scratch_pool));
+ if (work_kind == svn_node_file)
+ {
+ SVN_ERR(svn_io_copy_file(from_wc_abspath, stored_abspath,
+ TRUE /*copy_perms*/, scratch_pool));
+ }
+ }
+ return SVN_NO_ERROR;
+}
+
+/* An implementation of svn_wc_status_func4_t. */
+static svn_error_t *
+write_changes_visitor(void *baton,
+ const char *local_abspath,
+ const svn_wc_status3_t *status,
+ apr_pool_t *scratch_pool)
+{
+ write_changes_baton_t *wb = baton;
+ const char *wc_relpath = svn_dirent_skip_ancestor(wb->wc_root_abspath,
+ local_abspath);
+
+ /* Catch any conflict, even a tree conflict on a path that has
+ node-status 'unversioned'. */
+ if (status->conflicted)
+ {
+ SVN_ERR(notify_not_shelved(wb, wc_relpath, local_abspath,
+ status, scratch_pool));
+ }
+ else switch (status->node_status)
+ {
+ case svn_wc_status_deleted:
+ case svn_wc_status_added:
+ case svn_wc_status_replaced:
+ if (status->kind != svn_node_file
+ || status->copied)
+ {
+ SVN_ERR(notify_not_shelved(wb, wc_relpath, local_abspath,
+ status, scratch_pool));
+ break;
+ }
+ /* fall through */
+ case svn_wc_status_modified:
+ {
+ /* Store metadata, and base and working versions if it's a file */
+ SVN_ERR(store_file(local_abspath, wc_relpath, wb->shelf_version,
+ status, wb->ctx, scratch_pool));
+ SVN_ERR(notify_shelved(wb, wc_relpath, local_abspath,
+ status, scratch_pool));
+ break;
+ }
+
+ case svn_wc_status_incomplete:
+ if ((status->text_status != svn_wc_status_normal
+ && status->text_status != svn_wc_status_none)
+ || (status->prop_status != svn_wc_status_normal
+ && status->prop_status != svn_wc_status_none))
+ {
+ /* Incomplete, but local modifications */
+ SVN_ERR(notify_not_shelved(wb, wc_relpath, local_abspath,
+ status, scratch_pool));
+ }
+ break;
+
+ case svn_wc_status_conflicted:
+ case svn_wc_status_missing:
+ case svn_wc_status_obstructed:
+ SVN_ERR(notify_not_shelved(wb, wc_relpath, local_abspath,
+ status, scratch_pool));
+ break;
+
+ case svn_wc_status_normal:
+ case svn_wc_status_ignored:
+ case svn_wc_status_none:
+ case svn_wc_status_external:
+ case svn_wc_status_unversioned:
+ default:
+ break;
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* A baton for use with changelist_filter_func(). */
+struct changelist_filter_baton_t {
+ apr_hash_t *changelist_hash;
+ svn_wc_status_func4_t status_func;
+ void *status_baton;
+};
+
+/* Filter out paths that are not in the requested changelist(s).
+ * Implements svn_wc_status_func4_t. */
+static svn_error_t *
+changelist_filter_func(void *baton,
+ const char *local_abspath,
+ const svn_wc_status3_t *status,
+ apr_pool_t *scratch_pool)
+{
+ struct changelist_filter_baton_t *b = baton;
+
+ if (b->changelist_hash
+ && (! status->changelist
+ || ! svn_hash_gets(b->changelist_hash, status->changelist)))
+ {
+ return SVN_NO_ERROR;
+ }
+
+ SVN_ERR(b->status_func(b->status_baton, local_abspath, status,
+ scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/*
+ * Walk the WC tree(s) rooted at PATHS, to depth DEPTH, omitting paths that
+ * are not in one of the CHANGELISTS (if not null).
+ *
+ * Call STATUS_FUNC(STATUS_BATON, ...) for each visited path.
+ *
+ * PATHS are absolute, or relative to CWD.
+ */
+static svn_error_t *
+wc_walk_status_multi(const apr_array_header_t *paths,
+ svn_depth_t depth,
+ const apr_array_header_t *changelists,
+ svn_wc_status_func4_t status_func,
+ void *status_baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ struct changelist_filter_baton_t cb = {0};
+ int i;
+
+ if (changelists && changelists->nelts)
+ SVN_ERR(svn_hash_from_cstring_keys(&cb.changelist_hash,
+ changelists, scratch_pool));
+ cb.status_func = status_func;
+ cb.status_baton = status_baton;
+
+ for (i = 0; i < paths->nelts; i++)
+ {
+ const char *path = APR_ARRAY_IDX(paths, i, const char *);
+
+ if (svn_path_is_url(path))
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("'%s' is not a local path"), path);
+ SVN_ERR(svn_dirent_get_absolute(&path, path, scratch_pool));
+
+ SVN_ERR(svn_wc_walk_status(ctx->wc_ctx, path, depth,
+ FALSE /*get_all*/, FALSE /*no_ignore*/,
+ FALSE /*ignore_text_mods*/,
+ NULL /*ignore_patterns*/,
+ changelist_filter_func, &cb,
+ ctx->cancel_func, ctx->cancel_baton,
+ scratch_pool));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/** Write local changes to the shelf storage.
+ *
+ * @a paths, @a depth, @a changelists: The selection of local paths to diff.
+ *
+ * @a paths are relative to CWD (or absolute).
+ */
+static svn_error_t *
+shelf_write_changes(svn_boolean_t *any_shelved,
+ svn_client__shelf2_version_t *shelf_version,
+ const apr_array_header_t *paths,
+ svn_depth_t depth,
+ const apr_array_header_t *changelists,
+ svn_client_status_func_t shelved_func,
+ void *shelved_baton,
+ svn_client_status_func_t not_shelved_func,
+ void *not_shelved_baton,
+ const char *wc_root_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ write_changes_baton_t wb = { 0 };
+
+ wb.wc_root_abspath = wc_root_abspath;
+ wb.shelf_version = shelf_version;
+ wb.ctx = ctx;
+ wb.any_shelved = FALSE;
+ wb.was_shelved_func = shelved_func;
+ wb.was_shelved_baton = shelved_baton;
+ wb.was_not_shelved_func = not_shelved_func;
+ wb.was_not_shelved_baton = not_shelved_baton;
+ wb.pool = result_pool;
+
+ /* Walk the WC */
+ SVN_ERR(wc_walk_status_multi(paths, depth, changelists,
+ write_changes_visitor, &wb,
+ ctx, scratch_pool));
+
+ *any_shelved = wb.any_shelved;
+ return SVN_NO_ERROR;
+}
+
+/* Construct a shelf object representing an empty shelf: no versions,
+ * no revprops, no looking to see if such a shelf exists on disk.
+ */
+static svn_error_t *
+shelf_construct(svn_client__shelf2_t **shelf_p,
+ const char *name,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool)
+{
+ svn_client__shelf2_t *shelf = apr_palloc(result_pool, sizeof(*shelf));
+ char *shelves_dir;
+
+ SVN_ERR(svn_client_get_wc_root(&shelf->wc_root_abspath,
+ local_abspath, ctx,
+ result_pool, result_pool));
+ SVN_ERR(get_shelves_dir(&shelves_dir,
+ ctx->wc_ctx, local_abspath,
+ result_pool, result_pool));
+ shelf->shelves_dir = shelves_dir;
+ shelf->ctx = ctx;
+ shelf->pool = result_pool;
+
+ shelf->name = apr_pstrdup(result_pool, name);
+ shelf->revprops = apr_hash_make(result_pool);
+ shelf->max_version = 0;
+
+ *shelf_p = shelf;
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf2_open_existing(svn_client__shelf2_t **shelf_p,
+ const char *name,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool)
+{
+ SVN_ERR(shelf_construct(shelf_p, name,
+ local_abspath, ctx, result_pool));
+ SVN_ERR(shelf_read_revprops(*shelf_p, result_pool));
+ SVN_ERR(shelf_read_current(*shelf_p, result_pool));
+ if ((*shelf_p)->max_version < 0)
+ {
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("Shelf '%s' not found"),
+ name);
+ }
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf2_open_or_create(svn_client__shelf2_t **shelf_p,
+ const char *name,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool)
+{
+ svn_client__shelf2_t *shelf;
+
+ SVN_ERR(shelf_construct(&shelf, name,
+ local_abspath, ctx, result_pool));
+ SVN_ERR(shelf_read_revprops(shelf, result_pool));
+ SVN_ERR(shelf_read_current(shelf, result_pool));
+ if (shelf->max_version < 0)
+ {
+ shelf->max_version = 0;
+ SVN_ERR(shelf_write_current(shelf, result_pool));
+ }
+ *shelf_p = shelf;
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf2_close(svn_client__shelf2_t *shelf,
+ apr_pool_t *scratch_pool)
+{
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf2_delete(const char *name,
+ const char *local_abspath,
+ svn_boolean_t dry_run,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ svn_client__shelf2_t *shelf;
+ int i;
+ char *abspath;
+
+ SVN_ERR(svn_client__shelf2_open_existing(&shelf, name,
+ local_abspath, ctx, scratch_pool));
+
+ /* Remove the versions. */
+ for (i = shelf->max_version; i > 0; i--)
+ {
+ SVN_ERR(shelf_version_delete(shelf, i, scratch_pool));
+ }
+
+ /* Remove the other files */
+ SVN_ERR(get_log_abspath(&abspath, shelf, scratch_pool, scratch_pool));
+ SVN_ERR(svn_io_remove_file2(abspath, TRUE /*ignore_enoent*/, scratch_pool));
+ SVN_ERR(get_current_abspath(&abspath, shelf, scratch_pool));
+ SVN_ERR(svn_io_remove_file2(abspath, TRUE /*ignore_enoent*/, scratch_pool));
+
+ SVN_ERR(svn_client__shelf2_close(shelf, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* Baton for paths_changed_visitor(). */
+struct paths_changed_walk_baton_t
+{
+ apr_hash_t *paths_hash;
+ svn_boolean_t as_abspath;
+ const char *wc_root_abspath;
+ apr_pool_t *pool;
+};
+
+/* Add to the list(s) in BATON, the RELPATH of a shelved 'binary' file.
+ * Implements shelved_files_walk_func_t. */
+static svn_error_t *
+paths_changed_visitor(void *baton,
+ const char *relpath,
+ svn_wc_status3_t *s,
+ apr_pool_t *scratch_pool)
+{
+ struct paths_changed_walk_baton_t *b = baton;
+
+ relpath = (b->as_abspath
+ ? svn_dirent_join(b->wc_root_abspath, relpath, b->pool)
+ : apr_pstrdup(b->pool, relpath));
+ svn_hash_sets(b->paths_hash, relpath, relpath);
+ return SVN_NO_ERROR;
+}
+
+/* Get the paths changed, relative to WC root or as abspaths, as a hash
+ * and/or an array (in no particular order).
+ */
+static svn_error_t *
+shelf_paths_changed(apr_hash_t **paths_hash_p,
+ apr_array_header_t **paths_array_p,
+ svn_client__shelf2_version_t *shelf_version,
+ svn_boolean_t as_abspath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ svn_client__shelf2_t *shelf = shelf_version->shelf;
+ apr_hash_t *paths_hash = apr_hash_make(result_pool);
+ struct paths_changed_walk_baton_t baton;
+
+ baton.paths_hash = paths_hash;
+ baton.as_abspath = as_abspath;
+ baton.wc_root_abspath = shelf->wc_root_abspath;
+ baton.pool = result_pool;
+ SVN_ERR(shelf_status_walk(shelf_version, "",
+ paths_changed_visitor, &baton,
+ scratch_pool));
+
+ if (paths_hash_p)
+ *paths_hash_p = paths_hash;
+ if (paths_array_p)
+ SVN_ERR(svn_hash_keys(paths_array_p, paths_hash, result_pool));
+
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf2_paths_changed(apr_hash_t **affected_paths,
+ svn_client__shelf2_version_t *shelf_version,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ SVN_ERR(shelf_paths_changed(affected_paths, NULL, shelf_version,
+ FALSE /*as_abspath*/,
+ result_pool, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* Send a notification */
+static svn_error_t *
+send_notification(const char *local_abspath,
+ svn_wc_notify_action_t action,
+ svn_node_kind_t kind,
+ svn_wc_notify_state_t content_state,
+ svn_wc_notify_state_t prop_state,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
+ apr_pool_t *scratch_pool)
+{
+ if (notify_func)
+ {
+ svn_wc_notify_t *notify
+ = svn_wc_create_notify(local_abspath, action, scratch_pool);
+
+ notify->kind = kind;
+ notify->content_state = content_state;
+ notify->prop_state = prop_state;
+ notify_func(notify_baton, notify, scratch_pool);
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Merge a shelved change into WC_ABSPATH.
+ */
+static svn_error_t *
+wc_file_merge(const char *wc_abspath,
+ const char *left_file,
+ const char *right_file,
+ /*const*/ apr_hash_t *left_props,
+ /*const*/ apr_hash_t *right_props,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ svn_wc_notify_state_t property_state;
+ svn_boolean_t has_local_mods;
+ enum svn_wc_merge_outcome_t content_outcome;
+ const char *target_label, *left_label, *right_label;
+ apr_array_header_t *prop_changes;
+
+ /* xgettext: the '.working', '.merge-left' and '.merge-right' strings
+ are used to tag onto a file name in case of a merge conflict */
+ target_label = apr_psprintf(scratch_pool, _(".working"));
+ left_label = apr_psprintf(scratch_pool, _(".merge-left"));
+ right_label = apr_psprintf(scratch_pool, _(".merge-right"));
+
+ SVN_ERR(svn_prop_diffs(&prop_changes, right_props, left_props, scratch_pool));
+ SVN_ERR(svn_wc_text_modified_p2(&has_local_mods, ctx->wc_ctx,
+ wc_abspath, FALSE, scratch_pool));
+
+ /* Do property merge and text merge in one step so that keyword expansion
+ takes into account the new property values. */
+ SVN_WC__CALL_WITH_WRITE_LOCK(
+ svn_wc_merge5(&content_outcome, &property_state, ctx->wc_ctx,
+ left_file, right_file, wc_abspath,
+ left_label, right_label, target_label,
+ NULL, NULL, /*left, right conflict-versions*/
+ FALSE /*dry_run*/, NULL /*diff3_cmd*/,
+ NULL /*merge_options*/,
+ left_props, prop_changes,
+ NULL, NULL,
+ ctx->cancel_func, ctx->cancel_baton,
+ scratch_pool),
+ ctx->wc_ctx, wc_abspath,
+ FALSE /*lock_anchor*/, scratch_pool);
+
+ return SVN_NO_ERROR;
+}
+
+/* Merge a shelved change (of properties) into the dir at WC_ABSPATH.
+ */
+static svn_error_t *
+wc_dir_props_merge(const char *wc_abspath,
+ /*const*/ apr_hash_t *left_props,
+ /*const*/ apr_hash_t *right_props,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ apr_array_header_t *prop_changes;
+ svn_wc_notify_state_t property_state;
+
+ SVN_ERR(svn_prop_diffs(&prop_changes, right_props, left_props, scratch_pool));
+ SVN_WC__CALL_WITH_WRITE_LOCK(
+ svn_wc_merge_props3(&property_state, ctx->wc_ctx,
+ wc_abspath,
+ NULL, NULL, /*left, right conflict-versions*/
+ left_props, prop_changes,
+ FALSE /*dry_run*/,
+ NULL, NULL,
+ ctx->cancel_func, ctx->cancel_baton,
+ scratch_pool),
+ ctx->wc_ctx, wc_abspath,
+ FALSE /*lock_anchor*/, scratch_pool);
+
+ return SVN_NO_ERROR;
+}
+
+/* Apply a shelved "delete" to TO_WC_ABSPATH.
+ */
+static svn_error_t *
+wc_node_delete(const char *to_wc_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ SVN_WC__CALL_WITH_WRITE_LOCK(
+ svn_wc_delete4(ctx->wc_ctx,
+ to_wc_abspath,
+ FALSE /*keep_local*/,
+ TRUE /*delete_unversioned_target*/,
+ NULL, NULL, NULL, NULL, /*cancel, notify*/
+ scratch_pool),
+ ctx->wc_ctx, to_wc_abspath,
+ TRUE /*lock_anchor*/, scratch_pool);
+ return SVN_NO_ERROR;
+}
+
+/* Apply a shelved "add" to TO_WC_ABSPATH.
+ * The node must already exist on disk, in a versioned parent dir.
+ */
+static svn_error_t *
+wc_node_add(const char *to_wc_abspath,
+ apr_hash_t *work_props,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ /* If it was not already versioned, schedule the node for addition.
+ (Do not apply autoprops, because this isn't a user-facing "add" but
+ restoring a previously saved state.) */
+ SVN_WC__CALL_WITH_WRITE_LOCK(
+ svn_wc_add_from_disk3(ctx->wc_ctx,
+ to_wc_abspath, work_props,
+ FALSE /* skip checks */,
+ NULL, NULL, scratch_pool),
+ ctx->wc_ctx, to_wc_abspath,
+ TRUE /*lock_anchor*/, scratch_pool);
+ return SVN_NO_ERROR;
+}
+
+/* Baton for apply_file_visitor(). */
+struct apply_files_baton_t
+{
+ svn_client__shelf2_version_t *shelf_version;
+ svn_boolean_t test_only; /* only check whether it would conflict */
+ svn_boolean_t conflict; /* would it conflict? */
+ svn_client_ctx_t *ctx;
+};
+
+/* Copy the file RELPATH from shelf binary file storage to the WC.
+ *
+ * If it is not already versioned, schedule the file for addition.
+ *
+ * Make any missing parent directories.
+ *
+ * In test mode (BATON->test_only): set BATON->conflict if we can't apply
+ * the change to WC at RELPATH without conflict. But in fact, just check
+ * if WC at RELPATH is locally modified.
+ *
+ * Implements shelved_files_walk_func_t. */
+static svn_error_t *
+apply_file_visitor(void *baton,
+ const char *relpath,
+ svn_wc_status3_t *s,
+ apr_pool_t *scratch_pool)
+{
+ struct apply_files_baton_t *b = baton;
+ const char *wc_root_abspath = b->shelf_version->shelf->wc_root_abspath;
+ char *stored_base_abspath, *stored_work_abspath;
+ apr_hash_t *base_props, *work_props;
+ const char *to_wc_abspath = svn_dirent_join(wc_root_abspath, relpath,
+ scratch_pool);
+ const char *to_dir_abspath = svn_dirent_dirname(to_wc_abspath, scratch_pool);
+
+ SVN_ERR(get_base_file_abspath(&stored_base_abspath,
+ b->shelf_version, relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(get_working_file_abspath(&stored_work_abspath,
+ b->shelf_version, relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(read_props_from_shelf(&base_props, &work_props,
+ s->node_status,
+ b->shelf_version, relpath,
+ scratch_pool, scratch_pool));
+
+ if (b->test_only)
+ {
+ svn_wc_status3_t *status;
+
+ SVN_ERR(svn_wc_status3(&status, b->ctx->wc_ctx, to_wc_abspath,
+ scratch_pool, scratch_pool));
+ switch (status->node_status)
+ {
+ case svn_wc_status_normal:
+ case svn_wc_status_none:
+ break;
+ default:
+ b->conflict = TRUE;
+ }
+
+ return SVN_NO_ERROR;
+ }
+
+ /* Handle 'delete' and the delete half of 'replace' */
+ if (s->node_status == svn_wc_status_deleted
+ || s->node_status == svn_wc_status_replaced)
+ {
+ SVN_ERR(wc_node_delete(to_wc_abspath, b->ctx, scratch_pool));
+ if (s->node_status != svn_wc_status_replaced)
+ {
+ SVN_ERR(send_notification(to_wc_abspath, svn_wc_notify_update_delete,
+ s->kind,
+ svn_wc_notify_state_inapplicable,
+ svn_wc_notify_state_inapplicable,
+ b->ctx->notify_func2, b->ctx->notify_baton2,
+ scratch_pool));
+ }
+ }
+
+ /* If we can merge a file, do so. */
+ if (s->node_status == svn_wc_status_modified)
+ {
+ if (s->kind == svn_node_dir)
+ {
+ SVN_ERR(wc_dir_props_merge(to_wc_abspath,
+ base_props, work_props,
+ b->ctx, scratch_pool, scratch_pool));
+ }
+ else if (s->kind == svn_node_file)
+ {
+ SVN_ERR(wc_file_merge(to_wc_abspath,
+ stored_base_abspath, stored_work_abspath,
+ base_props, work_props,
+ b->ctx, scratch_pool));
+ }
+ SVN_ERR(send_notification(to_wc_abspath, svn_wc_notify_update_update,
+ s->kind,
+ (s->kind == svn_node_dir)
+ ? svn_wc_notify_state_inapplicable
+ : svn_wc_notify_state_merged,
+ (s->kind == svn_node_dir)
+ ? svn_wc_notify_state_merged
+ : svn_wc_notify_state_unknown,
+ b->ctx->notify_func2, b->ctx->notify_baton2,
+ scratch_pool));
+ }
+
+ /* For an added file, copy it into the WC and ensure it's versioned. */
+ if (s->node_status == svn_wc_status_added
+ || s->node_status == svn_wc_status_replaced)
+ {
+ if (s->kind == svn_node_dir)
+ {
+ SVN_ERR(svn_io_make_dir_recursively(to_wc_abspath, scratch_pool));
+ }
+ else if (s->kind == svn_node_file)
+ {
+ SVN_ERR(svn_io_make_dir_recursively(to_dir_abspath, scratch_pool));
+ SVN_ERR(svn_io_copy_file(stored_work_abspath, to_wc_abspath,
+ TRUE /*copy_perms*/, scratch_pool));
+ }
+ SVN_ERR(wc_node_add(to_wc_abspath, work_props, b->ctx, scratch_pool));
+ SVN_ERR(send_notification(to_wc_abspath,
+ (s->node_status == svn_wc_status_replaced)
+ ? svn_wc_notify_update_replace
+ : svn_wc_notify_update_add,
+ s->kind,
+ svn_wc_notify_state_inapplicable,
+ svn_wc_notify_state_inapplicable,
+ b->ctx->notify_func2, b->ctx->notify_baton2,
+ scratch_pool));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/*-------------------------------------------------------------------------*/
+/* Diff */
+
+/* */
+static svn_error_t *
+file_changed(svn_client__shelf2_version_t *shelf_version,
+ const char *relpath,
+ svn_wc_status3_t *s,
+ const svn_diff_tree_processor_t *diff_processor,
+ svn_diff_source_t *left_source,
+ svn_diff_source_t *right_source,
+ const char *left_stored_abspath,
+ const char *right_stored_abspath,
+ void *dir_baton,
+ apr_pool_t *scratch_pool)
+{
+ void *fb;
+ svn_boolean_t skip = FALSE;
+
+ SVN_ERR(diff_processor->file_opened(&fb, &skip, relpath,
+ left_source, right_source,
+ NULL /*copyfrom*/,
+ dir_baton, diff_processor,
+ scratch_pool, scratch_pool));
+ if (!skip)
+ {
+ apr_hash_t *left_props, *right_props;
+ apr_array_header_t *prop_changes;
+
+ SVN_ERR(read_props_from_shelf(&left_props, &right_props,
+ s->node_status, shelf_version, relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_prop_diffs(&prop_changes, right_props, left_props,
+ scratch_pool));
+ SVN_ERR(diff_processor->file_changed(
+ relpath,
+ left_source, right_source,
+ left_stored_abspath, right_stored_abspath,
+ left_props, right_props,
+ TRUE /*file_modified*/, prop_changes,
+ fb, diff_processor, scratch_pool));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* */
+static svn_error_t *
+file_deleted(svn_client__shelf2_version_t *shelf_version,
+ const char *relpath,
+ svn_wc_status3_t *s,
+ const svn_diff_tree_processor_t *diff_processor,
+ svn_diff_source_t *left_source,
+ const char *left_stored_abspath,
+ void *dir_baton,
+ apr_pool_t *scratch_pool)
+{
+ void *fb;
+ svn_boolean_t skip = FALSE;
+
+ SVN_ERR(diff_processor->file_opened(&fb, &skip, relpath,
+ left_source, NULL, NULL /*copyfrom*/,
+ dir_baton, diff_processor,
+ scratch_pool, scratch_pool));
+ if (!skip)
+ {
+ apr_hash_t *left_props, *right_props;
+
+ SVN_ERR(read_props_from_shelf(&left_props, &right_props,
+ s->node_status, shelf_version, relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(diff_processor->file_deleted(relpath,
+ left_source,
+ left_stored_abspath,
+ left_props,
+ fb, diff_processor,
+ scratch_pool));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* */
+static svn_error_t *
+file_added(svn_client__shelf2_version_t *shelf_version,
+ const char *relpath,
+ svn_wc_status3_t *s,
+ const svn_diff_tree_processor_t *diff_processor,
+ svn_diff_source_t *right_source,
+ const char *right_stored_abspath,
+ void *dir_baton,
+ apr_pool_t *scratch_pool)
+{
+ void *fb;
+ svn_boolean_t skip = FALSE;
+
+ SVN_ERR(diff_processor->file_opened(&fb, &skip, relpath,
+ NULL, right_source, NULL /*copyfrom*/,
+ dir_baton, diff_processor,
+ scratch_pool, scratch_pool));
+ if (!skip)
+ {
+ apr_hash_t *left_props, *right_props;
+
+ SVN_ERR(read_props_from_shelf(&left_props, &right_props,
+ s->node_status, shelf_version, relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(diff_processor->file_added(
+ relpath,
+ NULL /*copyfrom_source*/, right_source,
+ NULL /*copyfrom_abspath*/, right_stored_abspath,
+ NULL /*copyfrom_props*/, right_props,
+ fb, diff_processor, scratch_pool));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Baton for diff_visitor(). */
+struct diff_baton_t
+{
+ svn_client__shelf2_version_t *shelf_version;
+ const char *top_relpath; /* top of diff, relative to shelf */
+ const char *walk_root_abspath;
+ const svn_diff_tree_processor_t *diff_processor;
+};
+
+/* Drive BATON->diff_processor.
+ * Implements svn_io_walk_func_t. */
+static svn_error_t *
+diff_visitor(void *baton,
+ const char *abspath,
+ const apr_finfo_t *finfo,
+ apr_pool_t *scratch_pool)
+{
+ struct diff_baton_t *b = baton;
+ const char *relpath;
+
+ relpath = svn_dirent_skip_ancestor(b->walk_root_abspath, abspath);
+ if (finfo->filetype == APR_REG
+ && (strlen(relpath) >= 5 && strcmp(relpath+strlen(relpath)-5, ".meta") == 0))
+ {
+ svn_wc_status3_t *s;
+ void *db = NULL;
+ svn_diff_source_t *left_source;
+ svn_diff_source_t *right_source;
+ char *left_stored_abspath, *right_stored_abspath;
+
+ relpath = apr_pstrndup(scratch_pool, relpath, strlen(relpath) - 5);
+ if (!svn_relpath_skip_ancestor(b->top_relpath, relpath))
+ return SVN_NO_ERROR;
+
+ SVN_ERR(status_read(&s, b->shelf_version, relpath,
+ scratch_pool, scratch_pool));
+
+ left_source = svn_diff__source_create(s->revision, scratch_pool);
+ right_source = svn_diff__source_create(SVN_INVALID_REVNUM, scratch_pool);
+ SVN_ERR(get_base_file_abspath(&left_stored_abspath,
+ b->shelf_version, relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(get_working_file_abspath(&right_stored_abspath,
+ b->shelf_version, relpath,
+ scratch_pool, scratch_pool));
+
+ switch (s->node_status)
+ {
+ case svn_wc_status_modified:
+ SVN_ERR(file_changed(b->shelf_version, relpath, s,
+ b->diff_processor,
+ left_source, right_source,
+ left_stored_abspath, right_stored_abspath,
+ db, scratch_pool));
+ break;
+ case svn_wc_status_added:
+ SVN_ERR(file_added(b->shelf_version, relpath, s,
+ b->diff_processor,
+ right_source, right_stored_abspath,
+ db, scratch_pool));
+ break;
+ case svn_wc_status_deleted:
+ SVN_ERR(file_deleted(b->shelf_version, relpath, s,
+ b->diff_processor,
+ left_source, left_stored_abspath,
+ db, scratch_pool));
+ break;
+ case svn_wc_status_replaced:
+ SVN_ERR(file_deleted(b->shelf_version, relpath, s,
+ b->diff_processor,
+ left_source, left_stored_abspath,
+ db, scratch_pool));
+ SVN_ERR(file_added(b->shelf_version, relpath, s,
+ b->diff_processor,
+ right_source, right_stored_abspath,
+ db, scratch_pool));
+ default:
+ break;
+ }
+ }
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf2_test_apply_file(svn_boolean_t *conflict_p,
+ svn_client__shelf2_version_t *shelf_version,
+ const char *file_relpath,
+ apr_pool_t *scratch_pool)
+{
+ struct apply_files_baton_t baton = {0};
+
+ baton.shelf_version = shelf_version;
+ baton.test_only = TRUE;
+ baton.conflict = FALSE;
+ baton.ctx = shelf_version->shelf->ctx;
+ SVN_ERR(shelf_status_visit_path(shelf_version, file_relpath,
+ apply_file_visitor, &baton,
+ scratch_pool));
+ *conflict_p = baton.conflict;
+
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf2_apply(svn_client__shelf2_version_t *shelf_version,
+ svn_boolean_t dry_run,
+ apr_pool_t *scratch_pool)
+{
+ struct apply_files_baton_t baton = {0};
+
+ baton.shelf_version = shelf_version;
+ baton.ctx = shelf_version->shelf->ctx;
+ SVN_ERR(shelf_status_walk(shelf_version, "",
+ apply_file_visitor, &baton,
+ scratch_pool));
+
+ svn_io_sleep_for_timestamps(shelf_version->shelf->wc_root_abspath,
+ scratch_pool);
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf2_unapply(svn_client__shelf2_version_t *shelf_version,
+ svn_boolean_t dry_run,
+ apr_pool_t *scratch_pool)
+{
+ apr_array_header_t *targets;
+
+ SVN_ERR(shelf_paths_changed(NULL, &targets, shelf_version,
+ TRUE /*as_abspath*/,
+ scratch_pool, scratch_pool));
+ if (!dry_run)
+ {
+ SVN_ERR(svn_client_revert4(targets, svn_depth_empty,
+ NULL /*changelists*/,
+ FALSE /*clear_changelists*/,
+ FALSE /*metadata_only*/,
+ FALSE /*added_keep_local*/,
+ shelf_version->shelf->ctx, scratch_pool));
+ }
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf2_delete_newer_versions(svn_client__shelf2_t *shelf,
+ svn_client__shelf2_version_t *shelf_version,
+ apr_pool_t *scratch_pool)
+{
+ int previous_version = shelf_version ? shelf_version->version_number : 0;
+ int i;
+
+ /* Delete any newer checkpoints */
+ for (i = shelf->max_version; i > previous_version; i--)
+ {
+ SVN_ERR(shelf_version_delete(shelf, i, scratch_pool));
+ }
+
+ shelf->max_version = previous_version;
+ SVN_ERR(shelf_write_current(shelf, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf2_diff(svn_client__shelf2_version_t *shelf_version,
+ const char *shelf_relpath,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ const svn_diff_tree_processor_t *diff_processor,
+ apr_pool_t *scratch_pool)
+{
+ struct diff_baton_t baton;
+
+ if (shelf_version->version_number == 0)
+ return SVN_NO_ERROR;
+
+ baton.shelf_version = shelf_version;
+ baton.top_relpath = shelf_relpath;
+ baton.walk_root_abspath = shelf_version->files_dir_abspath;
+ baton.diff_processor = diff_processor;
+ SVN_ERR(svn_io_dir_walk2(baton.walk_root_abspath, 0 /*wanted*/,
+ diff_visitor, &baton,
+ scratch_pool));
+
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf2_save_new_version3(svn_client__shelf2_version_t **new_version_p,
+ svn_client__shelf2_t *shelf,
+ const apr_array_header_t *paths,
+ svn_depth_t depth,
+ const apr_array_header_t *changelists,
+ svn_client_status_func_t shelved_func,
+ void *shelved_baton,
+ svn_client_status_func_t not_shelved_func,
+ void *not_shelved_baton,
+ apr_pool_t *scratch_pool)
+{
+ int next_version = shelf->max_version + 1;
+ svn_client__shelf2_version_t *new_shelf_version;
+ svn_boolean_t any_shelved;
+
+ SVN_ERR(shelf_version_create(&new_shelf_version,
+ shelf, next_version, scratch_pool));
+ SVN_ERR(shelf_write_changes(&any_shelved,
+ new_shelf_version,
+ paths, depth, changelists,
+ shelved_func, shelved_baton,
+ not_shelved_func, not_shelved_baton,
+ shelf->wc_root_abspath,
+ shelf->ctx, scratch_pool, scratch_pool));
+
+ if (any_shelved)
+ {
+ shelf->max_version = next_version;
+ SVN_ERR(shelf_write_current(shelf, scratch_pool));
+
+ if (new_version_p)
+ SVN_ERR(svn_client__shelf2_version_open(new_version_p, shelf, next_version,
+ scratch_pool, scratch_pool));
+ }
+ else
+ {
+ if (new_version_p)
+ *new_version_p = NULL;
+ }
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf2_get_log_message(char **log_message,
+ svn_client__shelf2_t *shelf,
+ apr_pool_t *result_pool)
+{
+ svn_string_t *propval = svn_hash_gets(shelf->revprops, SVN_PROP_REVISION_LOG);
+
+ if (propval)
+ *log_message = apr_pstrdup(result_pool, propval->data);
+ else
+ *log_message = NULL;
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf2_set_log_message(svn_client__shelf2_t *shelf,
+ const char *message,
+ apr_pool_t *scratch_pool)
+{
+ svn_string_t *propval
+ = message ? svn_string_create(message, shelf->pool) : NULL;
+
+ SVN_ERR(svn_client__shelf2_revprop_set(shelf, SVN_PROP_REVISION_LOG, propval,
+ scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf2_list(apr_hash_t **shelf_infos,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ const char *wc_root_abspath;
+ char *shelves_dir;
+ apr_hash_t *dirents;
+ apr_hash_index_t *hi;
+
+ SVN_ERR(svn_wc__get_wcroot(&wc_root_abspath, ctx->wc_ctx, local_abspath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(get_shelves_dir(&shelves_dir, ctx->wc_ctx, local_abspath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_io_get_dirents3(&dirents, shelves_dir, FALSE /*only_check_type*/,
+ result_pool, scratch_pool));
+
+ *shelf_infos = apr_hash_make(result_pool);
+
+ /* Remove non-shelves */
+ for (hi = apr_hash_first(scratch_pool, dirents); hi; hi = apr_hash_next(hi))
+ {
+ const char *filename = apr_hash_this_key(hi);
+ svn_io_dirent2_t *dirent = apr_hash_this_val(hi);
+ char *name = NULL;
+
+ svn_error_clear(shelf_name_from_filename(&name, filename, result_pool));
+ if (name && dirent->kind == svn_node_file)
+ {
+ svn_client__shelf2_info_t *info
+ = apr_palloc(result_pool, sizeof(*info));
+
+ info->mtime = dirent->mtime;
+ svn_hash_sets(*shelf_infos, name, info);
+ }
+ }
+
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf2_version_open(svn_client__shelf2_version_t **shelf_version_p,
+ svn_client__shelf2_t *shelf,
+ int version_number,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ svn_client__shelf2_version_t *shelf_version;
+ const svn_io_dirent2_t *dirent;
+
+ SVN_ERR(shelf_version_create(&shelf_version,
+ shelf, version_number, result_pool));
+ SVN_ERR(svn_io_stat_dirent2(&dirent,
+ shelf_version->files_dir_abspath,
+ FALSE /*verify_truename*/,
+ TRUE /*ignore_enoent*/,
+ result_pool, scratch_pool));
+ if (dirent->kind == svn_node_none)
+ {
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("Shelf '%s' version %d not found"),
+ shelf->name, version_number);
+ }
+ shelf_version->mtime = dirent->mtime;
+ *shelf_version_p = shelf_version;
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf2_get_newest_version(svn_client__shelf2_version_t **shelf_version_p,
+ svn_client__shelf2_t *shelf,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ if (shelf->max_version == 0)
+ {
+ *shelf_version_p = NULL;
+ return SVN_NO_ERROR;
+ }
+
+ SVN_ERR(svn_client__shelf2_version_open(shelf_version_p,
+ shelf, shelf->max_version,
+ result_pool, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf2_get_all_versions(apr_array_header_t **versions_p,
+ svn_client__shelf2_t *shelf,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ int i;
+
+ *versions_p = apr_array_make(result_pool, shelf->max_version - 1,
+ sizeof(svn_client__shelf2_version_t *));
+
+ for (i = 1; i <= shelf->max_version; i++)
+ {
+ svn_client__shelf2_version_t *shelf_version;
+
+ SVN_ERR(svn_client__shelf2_version_open(&shelf_version,
+ shelf, i,
+ result_pool, scratch_pool));
+ APR_ARRAY_PUSH(*versions_p, svn_client__shelf2_version_t *) = shelf_version;
+ }
+ return SVN_NO_ERROR;
+}
diff --git a/subversion/libsvn_client/shelve.c b/subversion/libsvn_client/shelve.c
deleted file mode 100644
index af8dd67bc605..000000000000
--- a/subversion/libsvn_client/shelve.c
+++ /dev/null
@@ -1,552 +0,0 @@
-/*
- * shelve.c: implementation of the 'shelve' commands
- *
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- */
-
-/* ==================================================================== */
-
-/* We define this here to remove any further warnings about the usage of
- experimental functions in this file. */
-#define SVN_EXPERIMENTAL
-
-#include "svn_client.h"
-#include "svn_wc.h"
-#include "svn_pools.h"
-#include "svn_dirent_uri.h"
-#include "svn_path.h"
-#include "svn_hash.h"
-#include "svn_utf.h"
-#include "svn_ctype.h"
-
-#include "client.h"
-#include "private/svn_client_private.h"
-#include "private/svn_wc_private.h"
-#include "svn_private_config.h"
-
-
-static svn_error_t *
-shelf_name_encode(char **encoded_name_p,
- const char *name,
- apr_pool_t *result_pool)
-{
- char *encoded_name
- = apr_palloc(result_pool, strlen(name) * 2 + 1);
- char *out_pos = encoded_name;
-
- if (name[0] == '\0')
- return svn_error_create(SVN_ERR_BAD_CHANGELIST_NAME, NULL,
- _("Shelf name cannot be the empty string"));
-
- while (*name)
- {
- apr_snprintf(out_pos, 3, "%02x", (unsigned char)(*name++));
- out_pos += 2;
- }
- *encoded_name_p = encoded_name;
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-shelf_name_decode(char **decoded_name_p,
- const char *codename,
- apr_pool_t *result_pool)
-{
- svn_stringbuf_t *sb
- = svn_stringbuf_create_ensure(strlen(codename) / 2, result_pool);
- const char *input = codename;
-
- while (*input)
- {
- int c;
- int nchars;
- int nitems = sscanf(input, "%02x%n", &c, &nchars);
-
- if (nitems != 1 || nchars != 2)
- return svn_error_createf(SVN_ERR_BAD_CHANGELIST_NAME, NULL,
- _("Shelve: Bad encoded name '%s'"), codename);
- svn_stringbuf_appendbyte(sb, c);
- input += 2;
- }
- *decoded_name_p = sb->data;
- return SVN_NO_ERROR;
-}
-
-/* Set *NAME to the shelf name from FILENAME. */
-static svn_error_t *
-shelf_name_from_filename(char **name,
- const char *filename,
- apr_pool_t *result_pool)
-{
- size_t len = strlen(filename);
-
- if (len > 6 && strcmp(filename + len - 6, ".patch") == 0)
- {
- char *codename = apr_pstrndup(result_pool, filename, len - 6);
- SVN_ERR(shelf_name_decode(name, codename, result_pool));
- }
- return SVN_NO_ERROR;
-}
-
-/* Set *PATCH_ABSPATH to the abspath of the patch file for shelved change
- * NAME, no matter whether it exists.
- */
-static svn_error_t *
-get_patch_abspath(char **patch_abspath,
- const char *name,
- const char *wc_root_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
-{
- char *dir;
- char *filename;
-
- SVN_ERR(svn_wc__get_shelves_dir(&dir, ctx->wc_ctx, wc_root_abspath,
- scratch_pool, scratch_pool));
- SVN_ERR(shelf_name_encode(&filename, name, scratch_pool));
- filename = apr_pstrcat(scratch_pool, filename, ".patch", SVN_VA_NULL);
- *patch_abspath = svn_dirent_join(dir, filename, result_pool);
- return SVN_NO_ERROR;
-}
-
-/** Write local changes to a patch file for shelved change @a name.
- *
- * @a message: An optional log message.
- *
- * @a wc_root_abspath: The WC root dir.
- *
- * @a overwrite_existing: If a file at @a patch_abspath exists, overwrite it.
- *
- * @a paths, @a depth, @a changelists: The selection of local paths to diff.
- */
-static svn_error_t *
-shelf_write_patch(const char *name,
- const char *message,
- const char *wc_root_abspath,
- svn_boolean_t overwrite_existing,
- const apr_array_header_t *paths,
- svn_depth_t depth,
- const apr_array_header_t *changelists,
- svn_client_ctx_t *ctx,
- apr_pool_t *scratch_pool)
-{
- char *patch_abspath;
- apr_int32_t flag;
- apr_file_t *outfile;
- svn_stream_t *outstream;
- svn_stream_t *errstream;
- apr_pool_t *iterpool = svn_pool_create(scratch_pool);
- int i;
- svn_opt_revision_t peg_revision = {svn_opt_revision_unspecified, {0}};
- svn_opt_revision_t start_revision = {svn_opt_revision_base, {0}};
- svn_opt_revision_t end_revision = {svn_opt_revision_working, {0}};
-
- SVN_ERR(get_patch_abspath(&patch_abspath, name, wc_root_abspath,
- ctx, scratch_pool, scratch_pool));
-
- /* Get streams for the output and any error output of the diff. */
- /* ### svn_stream_open_writable() doesn't work here: the buffering
- goes wrong so that diff headers appear after their hunks.
- For now, fix by opening the file without APR_BUFFERED. */
- flag = APR_FOPEN_WRITE | APR_FOPEN_CREATE | APR_FOPEN_TRUNCATE;
- if (! overwrite_existing)
- flag |= APR_FOPEN_EXCL;
- SVN_ERR(svn_io_file_open(&outfile, patch_abspath,
- flag, APR_FPROT_OS_DEFAULT, scratch_pool));
- outstream = svn_stream_from_aprfile2(outfile, FALSE /*disown*/, scratch_pool);
- SVN_ERR(svn_stream_for_stderr(&errstream, scratch_pool));
-
- /* Write the patch file header (log message, etc.) */
- if (message)
- {
- SVN_ERR(svn_stream_printf(outstream, scratch_pool, "%s\n",
- message));
- }
- SVN_ERR(svn_stream_printf(outstream, scratch_pool,
- "--This line, and those below, will be ignored--\n\n"));
- SVN_ERR(svn_stream_printf(outstream, scratch_pool,
- "--This patch was generated by 'svn shelve'--\n\n"));
-
- for (i = 0; i < paths->nelts; i++)
- {
- const char *path = APR_ARRAY_IDX(paths, i, const char *);
-
- if (svn_path_is_url(path))
- return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
- _("'%s' is not a local path"), path);
- SVN_ERR(svn_dirent_get_absolute(&path, path, scratch_pool));
-
- SVN_ERR(svn_client_diff_peg6(
- NULL /*options*/,
- path,
- &peg_revision,
- &start_revision,
- &end_revision,
- wc_root_abspath,
- depth,
- TRUE /*notice_ancestry*/,
- FALSE /*no_diff_added*/,
- FALSE /*no_diff_deleted*/,
- TRUE /*show_copies_as_adds*/,
- FALSE /*ignore_content_type: FALSE -> omit binary files*/,
- FALSE /*ignore_properties*/,
- FALSE /*properties_only*/,
- FALSE /*use_git_diff_format*/,
- SVN_APR_LOCALE_CHARSET,
- outstream,
- errstream,
- changelists,
- ctx, iterpool));
- }
- SVN_ERR(svn_stream_close(outstream));
- SVN_ERR(svn_stream_close(errstream));
-
- return SVN_NO_ERROR;
-}
-
-/** Apply the patch file for shelved change @a name to the WC.
- *
- * @a wc_root_abspath: The WC root dir.
- *
- * @a reverse: Apply the patch in reverse.
- *
- * @a dry_run: Don't really apply the changes, just notify what would be done.
- */
-static svn_error_t *
-shelf_apply_patch(const char *name,
- const char *wc_root_abspath,
- svn_boolean_t reverse,
- svn_boolean_t dry_run,
- svn_client_ctx_t *ctx,
- apr_pool_t *scratch_pool)
-{
- char *patch_abspath;
-
- SVN_ERR(get_patch_abspath(&patch_abspath, name, wc_root_abspath,
- ctx, scratch_pool, scratch_pool));
- SVN_ERR(svn_client_patch(patch_abspath, wc_root_abspath,
- dry_run, 0 /*strip*/,
- reverse,
- FALSE /*ignore_whitespace*/,
- TRUE /*remove_tempfiles*/, NULL, NULL,
- ctx, scratch_pool));
-
- return SVN_NO_ERROR;
-}
-
-/** Delete the patch file for shelved change @a name.
- *
- * @a wc_root_abspath: The WC root dir.
- */
-static svn_error_t *
-shelf_delete_patch(const char *name,
- const char *wc_root_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *scratch_pool)
-{
- char *patch_abspath, *to_abspath;
-
- SVN_ERR(get_patch_abspath(&patch_abspath, name, wc_root_abspath,
- ctx, scratch_pool, scratch_pool));
- to_abspath = apr_pstrcat(scratch_pool, patch_abspath, ".bak", SVN_VA_NULL);
-
- /* remove any previous backup */
- SVN_ERR(svn_io_remove_file2(to_abspath, TRUE /*ignore_enoent*/,
- scratch_pool));
-
- /* move the patch to a backup file */
- SVN_ERR(svn_io_file_rename2(patch_abspath, to_abspath, FALSE /*flush_to_disk*/,
- scratch_pool));
- return SVN_NO_ERROR;
-}
-
-svn_error_t *
-svn_client_shelve(const char *name,
- const apr_array_header_t *paths,
- svn_depth_t depth,
- const apr_array_header_t *changelists,
- svn_boolean_t keep_local,
- svn_boolean_t dry_run,
- svn_client_ctx_t *ctx,
- apr_pool_t *pool)
-{
- const char *local_abspath;
- const char *wc_root_abspath;
- const char *message = "";
- svn_error_t *err;
-
- /* ### TODO: check all paths are in same WC; for now use first path */
- SVN_ERR(svn_dirent_get_absolute(&local_abspath,
- APR_ARRAY_IDX(paths, 0, char *), pool));
- SVN_ERR(svn_client_get_wc_root(&wc_root_abspath,
- local_abspath, ctx, pool, pool));
-
- /* Fetch the log message and any other revprops */
- if (SVN_CLIENT__HAS_LOG_MSG_FUNC(ctx))
- {
- const char *tmp_file;
- apr_array_header_t *commit_items = apr_array_make(pool, 1, sizeof(void *));
-
- SVN_ERR(svn_client__get_log_msg(&message, &tmp_file, commit_items,
- ctx, pool));
- if (! message)
- return SVN_NO_ERROR;
- }
-
- err = shelf_write_patch(name, message, wc_root_abspath,
- FALSE /*overwrite_existing*/,
- paths, depth, changelists,
- ctx, pool);
- if (err && APR_STATUS_IS_EEXIST(err->apr_err))
- {
- return svn_error_quick_wrapf(err,
- "Shelved change '%s' already exists",
- name);
- }
- else
- SVN_ERR(err);
-
- if (!keep_local)
- {
- /* Reverse-apply the patch. This should be a safer way to remove those
- changes from the WC than running a 'revert' operation. */
- SVN_ERR(shelf_apply_patch(name, wc_root_abspath,
- TRUE /*reverse*/, dry_run,
- ctx, pool));
- }
-
- if (dry_run)
- {
- SVN_ERR(shelf_delete_patch(name, wc_root_abspath,
- ctx, pool));
- }
-
- return SVN_NO_ERROR;
-}
-
-svn_error_t *
-svn_client_unshelve(const char *name,
- const char *local_abspath,
- svn_boolean_t keep,
- svn_boolean_t dry_run,
- svn_client_ctx_t *ctx,
- apr_pool_t *pool)
-{
- const char *wc_root_abspath;
- svn_error_t *err;
-
- SVN_ERR(svn_client_get_wc_root(&wc_root_abspath,
- local_abspath, ctx, pool, pool));
-
- /* Apply the patch. */
- err = shelf_apply_patch(name, wc_root_abspath,
- FALSE /*reverse*/, dry_run,
- ctx, pool);
- if (err && err->apr_err == SVN_ERR_ILLEGAL_TARGET)
- {
- return svn_error_quick_wrapf(err,
- "Shelved change '%s' not found",
- name);
- }
- else
- SVN_ERR(err);
-
- /* Remove the patch. */
- if (! keep && ! dry_run)
- {
- SVN_ERR(shelf_delete_patch(name, wc_root_abspath,
- ctx, pool));
- }
-
- return SVN_NO_ERROR;
-}
-
-svn_error_t *
-svn_client_shelves_delete(const char *name,
- const char *local_abspath,
- svn_boolean_t dry_run,
- svn_client_ctx_t *ctx,
- apr_pool_t *pool)
-{
- const char *wc_root_abspath;
-
- SVN_ERR(svn_client_get_wc_root(&wc_root_abspath,
- local_abspath, ctx, pool, pool));
-
- /* Remove the patch. */
- if (! dry_run)
- {
- svn_error_t *err;
-
- err = shelf_delete_patch(name, wc_root_abspath,
- ctx, pool);
- if (err && APR_STATUS_IS_ENOENT(err->apr_err))
- {
- return svn_error_quick_wrapf(err,
- "Shelved change '%s' not found",
- name);
- }
- else
- SVN_ERR(err);
- }
-
- return SVN_NO_ERROR;
-}
-
-svn_error_t *
-svn_client_shelf_get_paths(apr_hash_t **affected_paths,
- const char *name,
- const char *local_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
-{
- const char *wc_root_abspath;
- char *patch_abspath;
- svn_patch_file_t *patch_file;
- apr_pool_t *iterpool = svn_pool_create(scratch_pool);
- apr_hash_t *paths = apr_hash_make(result_pool);
-
- SVN_ERR(svn_client_get_wc_root(&wc_root_abspath,
- local_abspath, ctx, scratch_pool, scratch_pool));
- SVN_ERR(get_patch_abspath(&patch_abspath, name, wc_root_abspath,
- ctx, scratch_pool, scratch_pool));
- SVN_ERR(svn_diff_open_patch_file(&patch_file, patch_abspath, result_pool));
-
- while (1)
- {
- svn_patch_t *patch;
-
- svn_pool_clear(iterpool);
- SVN_ERR(svn_diff_parse_next_patch(&patch, patch_file,
- FALSE /*reverse*/,
- FALSE /*ignore_whitespace*/,
- iterpool, iterpool));
- if (! patch)
- break;
- svn_hash_sets(paths,
- apr_pstrdup(result_pool, patch->old_filename),
- apr_pstrdup(result_pool, patch->new_filename));
- }
- SVN_ERR(svn_diff_close_patch_file(patch_file, iterpool));
- svn_pool_destroy(iterpool);
-
- *affected_paths = paths;
- return SVN_NO_ERROR;
-}
-
-svn_error_t *
-svn_client_shelf_has_changes(svn_boolean_t *has_changes,
- const char *name,
- const char *local_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *scratch_pool)
-{
- apr_hash_t *patch_paths;
-
- SVN_ERR(svn_client_shelf_get_paths(&patch_paths, name, local_abspath,
- ctx, scratch_pool, scratch_pool));
- *has_changes = (apr_hash_count(patch_paths) != 0);
- return SVN_NO_ERROR;
-}
-
-/* Set *LOGMSG to the log message stored in the file PATCH_ABSPATH.
- *
- * ### Currently just reads the first line.
- */
-static svn_error_t *
-read_logmsg_from_patch(const char **logmsg,
- const char *patch_abspath,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
-{
- apr_file_t *file;
- svn_stream_t *stream;
- svn_boolean_t eof;
- svn_stringbuf_t *line;
-
- SVN_ERR(svn_io_file_open(&file, patch_abspath,
- APR_FOPEN_READ, APR_FPROT_OS_DEFAULT, scratch_pool));
- stream = svn_stream_from_aprfile2(file, FALSE /*disown*/, scratch_pool);
- SVN_ERR(svn_stream_readline(stream, &line, "\n", &eof, result_pool));
- SVN_ERR(svn_stream_close(stream));
- *logmsg = line->data;
- return SVN_NO_ERROR;
-}
-
-svn_error_t *
-svn_client_shelves_list(apr_hash_t **shelved_patch_infos,
- const char *local_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
-{
- char *shelves_dir;
- apr_hash_t *dirents;
- apr_hash_index_t *hi;
-
- SVN_ERR(svn_wc__get_shelves_dir(&shelves_dir, ctx->wc_ctx, local_abspath,
- scratch_pool, scratch_pool));
- SVN_ERR(svn_io_get_dirents3(&dirents, shelves_dir, FALSE /*only_check_type*/,
- result_pool, scratch_pool));
-
- *shelved_patch_infos = apr_hash_make(result_pool);
-
- /* Remove non-shelves */
- for (hi = apr_hash_first(scratch_pool, dirents); hi; hi = apr_hash_next(hi))
- {
- const char *filename = apr_hash_this_key(hi);
- svn_io_dirent2_t *dirent = apr_hash_this_val(hi);
- char *name = NULL;
-
- svn_error_clear(shelf_name_from_filename(&name, filename, result_pool));
- if (name && dirent->kind == svn_node_file)
- {
- svn_client_shelved_patch_info_t *info
- = apr_palloc(result_pool, sizeof(*info));
-
- info->dirent = dirent;
- info->mtime = info->dirent->mtime;
- info->patch_path
- = svn_dirent_join(shelves_dir, filename, result_pool);
- SVN_ERR(read_logmsg_from_patch(&info->message, info->patch_path,
- result_pool, scratch_pool));
-
- svn_hash_sets(*shelved_patch_infos, name, info);
- }
- }
-
- return SVN_NO_ERROR;
-}
-
-svn_error_t *
-svn_client_shelves_any(svn_boolean_t *any_shelved,
- const char *local_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *scratch_pool)
-{
- apr_hash_t *shelved_patch_infos;
-
- SVN_ERR(svn_client_shelves_list(&shelved_patch_infos, local_abspath,
- ctx, scratch_pool, scratch_pool));
- *any_shelved = apr_hash_count(shelved_patch_infos) != 0;
- return SVN_NO_ERROR;
-}
diff --git a/subversion/libsvn_client/status.c b/subversion/libsvn_client/status.c
index a70165867140..9e53713064d5 100644
--- a/subversion/libsvn_client/status.c
+++ b/subversion/libsvn_client/status.c
@@ -23,6 +23,9 @@
/* ==================================================================== */
+/* We define this here to remove any further warnings about the usage of
+ experimental functions in this file. */
+#define SVN_EXPERIMENTAL
/*** Includes. ***/
@@ -41,6 +44,7 @@
#include "svn_error.h"
#include "svn_hash.h"
+#include "private/svn_client_shelf.h"
#include "private/svn_client_private.h"
#include "private/svn_sorts_private.h"
#include "private/svn_wc_private.h"
@@ -329,6 +333,79 @@ do_external_status(svn_client_ctx_t *ctx,
return SVN_NO_ERROR;
}
+
+/* Run status on shelf SHELF_NAME, if it exists.
+ */
+static svn_error_t *
+shelf_status(const char *shelf_name,
+ const char *target_abspath,
+ svn_wc_status_func4_t status_func,
+ void *status_baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ svn_error_t *err;
+ svn_client__shelf_t *shelf;
+ svn_client__shelf_version_t *shelf_version;
+ const char *wc_relpath;
+
+ err = svn_client__shelf_open_existing(&shelf,
+ shelf_name, target_abspath,
+ ctx, scratch_pool);
+ if (err && err->apr_err == SVN_ERR_ILLEGAL_TARGET)
+ {
+ svn_error_clear(err);
+ return SVN_NO_ERROR;
+ }
+ else
+ SVN_ERR(err);
+
+ SVN_ERR(svn_client__shelf_version_open(&shelf_version,
+ shelf, shelf->max_version,
+ scratch_pool, scratch_pool));
+ wc_relpath = svn_dirent_skip_ancestor(shelf->wc_root_abspath, target_abspath);
+ SVN_ERR(svn_client__shelf_version_status_walk(shelf_version, wc_relpath,
+ status_func, status_baton,
+ scratch_pool));
+ SVN_ERR(svn_client__shelf_close(shelf, scratch_pool));
+
+ return SVN_NO_ERROR;
+}
+
+/* Run status on all shelves named in CHANGELISTS by a changelist name
+ * of the form "svn:shelf:SHELF_NAME", if they exist.
+ */
+static svn_error_t *
+shelves_status(const apr_array_header_t *changelists,
+ const char *target_abspath,
+ svn_wc_status_func4_t status_func,
+ void *status_baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ static const char PREFIX[] = "svn:shelf:";
+ static const int PREFIX_LEN = 10;
+ int i;
+
+ if (! changelists)
+ return SVN_NO_ERROR;
+ for (i = 0; i < changelists->nelts; i++)
+ {
+ const char *cl = APR_ARRAY_IDX(changelists, i, const char *);
+
+ if (strncmp(cl, PREFIX, PREFIX_LEN) == 0)
+ {
+ const char *shelf_name = cl + PREFIX_LEN;
+
+ SVN_ERR(shelf_status(shelf_name, target_abspath,
+ status_func, status_baton,
+ ctx, scratch_pool));
+ }
+ }
+
+ return SVN_NO_ERROR;
+}
+
/*** Public Interface. ***/
@@ -586,6 +663,9 @@ svn_client_status6(svn_revnum_t *result_rev,
}
else
{
+ SVN_ERR(shelves_status(changelists, target_abspath,
+ tweak_status, &sb,
+ ctx, pool));
err = svn_wc_walk_status(ctx->wc_ctx, target_abspath,
depth, get_all, no_ignore, FALSE, ignores,
tweak_status, &sb,
diff --git a/subversion/libsvn_client/update.c b/subversion/libsvn_client/update.c
index 602f7e317b57..12469b74c15a 100644
--- a/subversion/libsvn_client/update.c
+++ b/subversion/libsvn_client/update.c
@@ -615,7 +615,7 @@ svn_client__update_internal(svn_revnum_t *result_rev,
{
const char *anchor_abspath, *lockroot_abspath;
svn_error_t *err;
- svn_opt_revision_t peg_revision = *revision;
+ svn_opt_revision_t opt_rev = *revision; /* operative revision */
apr_hash_t *conflicted_paths
= ctx->conflict_func2 ? apr_hash_make(pool) : NULL;
@@ -668,7 +668,7 @@ svn_client__update_internal(svn_revnum_t *result_rev,
err = update_internal(result_rev, timestamp_sleep, conflicted_paths,
&ra_session, missing_parent,
- anchor_abspath, &peg_revision, svn_depth_empty,
+ anchor_abspath, &opt_rev, svn_depth_empty,
FALSE, ignore_externals,
allow_unver_obstructions, adds_as_modification,
FALSE, ctx, pool, iterpool);
@@ -679,8 +679,8 @@ svn_client__update_internal(svn_revnum_t *result_rev,
/* If we successfully updated a missing parent, let's re-use
the returned revision number for future updates for the
sake of consistency. */
- peg_revision.kind = svn_opt_revision_number;
- peg_revision.value.number = *result_rev;
+ opt_rev.kind = svn_opt_revision_number;
+ opt_rev.value.number = *result_rev;
}
svn_pool_destroy(iterpool);
@@ -696,7 +696,7 @@ svn_client__update_internal(svn_revnum_t *result_rev,
err = update_internal(result_rev, timestamp_sleep, conflicted_paths,
&ra_session,
local_abspath, anchor_abspath,
- &peg_revision, depth, depth_is_sticky,
+ &opt_rev, depth, depth_is_sticky,
ignore_externals, allow_unver_obstructions,
adds_as_modification,
TRUE, ctx, pool, pool);
diff --git a/subversion/libsvn_client/upgrade.c b/subversion/libsvn_client/upgrade.c
index 741443af2ddc..edba493d4a01 100644
--- a/subversion/libsvn_client/upgrade.c
+++ b/subversion/libsvn_client/upgrade.c
@@ -303,7 +303,7 @@ upgrade_externals_from_properties(svn_client_ctx_t *ctx,
{
apr_hash_index_t *hi;
apr_pool_t *iterpool;
- apr_pool_t *iterpool2;
+ apr_pool_t *inner_iterpool;
apr_hash_t *externals;
svn_opt_revision_t rev = {svn_opt_revision_unspecified, {0}};
@@ -317,7 +317,7 @@ upgrade_externals_from_properties(svn_client_ctx_t *ctx,
scratch_pool, scratch_pool));
iterpool = svn_pool_create(scratch_pool);
- iterpool2 = svn_pool_create(scratch_pool);
+ inner_iterpool = svn_pool_create(scratch_pool);
for (hi = apr_hash_first(scratch_pool, externals); hi;
hi = apr_hash_next(hi))
@@ -351,14 +351,12 @@ upgrade_externals_from_properties(svn_client_ctx_t *ctx,
iterpool, iterpool);
if (!err)
- externals_parent_url = svn_path_url_add_component2(
- externals_parent_repos_root_url,
- externals_parent_repos_relpath,
- iterpool);
- if (!err)
- err = svn_wc_parse_externals_description3(
- &externals_p, svn_dirent_dirname(local_abspath, iterpool),
- external_desc->data, FALSE, iterpool);
+ {
+ err = svn_wc_parse_externals_description3(
+ &externals_p, svn_dirent_dirname(local_abspath, iterpool),
+ external_desc->data, FALSE, iterpool);
+ }
+
if (err)
{
svn_wc_notify_t *notify =
@@ -376,24 +374,29 @@ upgrade_externals_from_properties(svn_client_ctx_t *ctx,
continue;
}
+ externals_parent_url = svn_path_url_add_component2(
+ externals_parent_repos_root_url,
+ externals_parent_repos_relpath,
+ iterpool);
+
for (i = 0; i < externals_p->nelts; i++)
{
svn_wc_external_item2_t *item;
item = APR_ARRAY_IDX(externals_p, i, svn_wc_external_item2_t*);
- svn_pool_clear(iterpool2);
+ svn_pool_clear(inner_iterpool);
err = upgrade_external_item(ctx, externals_parent_abspath,
externals_parent_url,
externals_parent_repos_root_url,
- item, info_baton, iterpool2);
+ item, info_baton, inner_iterpool);
if (err)
{
svn_wc_notify_t *notify =
svn_wc_create_notify(svn_dirent_join(externals_parent_abspath,
item->target_dir,
- iterpool2),
+ inner_iterpool),
svn_wc_notify_failed_external,
scratch_pool);
notify->err = err;
@@ -405,8 +408,8 @@ upgrade_externals_from_properties(svn_client_ctx_t *ctx,
}
}
+ svn_pool_destroy(inner_iterpool);
svn_pool_destroy(iterpool);
- svn_pool_destroy(iterpool2);
return SVN_NO_ERROR;
}
diff --git a/subversion/libsvn_client/util.c b/subversion/libsvn_client/util.c
index 248412b04e8d..f6612b96e9bf 100644
--- a/subversion/libsvn_client/util.c
+++ b/subversion/libsvn_client/util.c
@@ -93,6 +93,7 @@ svn_client__pathrev_create_with_session(svn_client__pathrev_t **pathrev_p,
pathrev->rev = rev;
pathrev->url = apr_pstrdup(result_pool, url);
*pathrev_p = pathrev;
+ SVN_ERR_ASSERT(svn_uri__is_ancestor(pathrev->repos_root_url, url));
return SVN_NO_ERROR;
}
diff --git a/subversion/libsvn_client/wc_editor.c b/subversion/libsvn_client/wc_editor.c
new file mode 100644
index 000000000000..145fce05650e
--- /dev/null
+++ b/subversion/libsvn_client/wc_editor.c
@@ -0,0 +1,655 @@
+/*
+ * wc_editor.c: editing the local modifications in the WC.
+ *
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ */
+
+/* ==================================================================== */
+
+/*** Includes. ***/
+
+#include <string.h>
+#include "svn_hash.h"
+#include "svn_client.h"
+#include "svn_delta.h"
+#include "svn_dirent_uri.h"
+#include "svn_error.h"
+#include "svn_error_codes.h"
+#include "svn_pools.h"
+#include "svn_props.h"
+#include "svn_wc.h"
+
+#include <apr_md5.h>
+
+#include "client.h"
+#include "private/svn_subr_private.h"
+#include "private/svn_wc_private.h"
+#include "svn_private_config.h"
+
+
+/* ------------------------------------------------------------------ */
+
+/* WC Modifications Editor.
+ *
+ * This editor applies incoming modifications onto the current working state
+ * of the working copy, to produce a new working state.
+ *
+ * Currently, it assumes the working state matches what the edit driver
+ * expects to find, and may throw an error if not.
+ *
+ * For simplicity, we apply incoming edits as they arrive, rather than
+ * queueing them up to apply in a batch.
+ *
+ * TODO:
+ * - tests
+ * - use for all existing scenarios ('svn add', 'svn propset', etc.)
+ * - Instead of 'root_dir_add' option, probably the driver should anchor
+ * at the parent dir.
+ * - Instead of 'ignore_mergeinfo' option, implement that as a wrapper.
+ * - Option to quietly accept changes that seem to be already applied
+ * in the versioned state and/or on disk.
+ * Consider 'svn add' which assumes items to be added are found on disk.
+ * - Notification.
+ */
+
+/* Everything we need to know about the edit session.
+ */
+struct edit_baton_t
+{
+ const char *anchor_abspath;
+ svn_boolean_t manage_wc_write_lock;
+ const char *lock_root_abspath; /* the path locked, when locked */
+
+ /* True => 'open_root' method will act as 'add_directory' */
+ svn_boolean_t root_dir_add;
+ /* True => filter out any incoming svn:mergeinfo property changes */
+ svn_boolean_t ignore_mergeinfo_changes;
+
+ svn_ra_session_t *ra_session;
+
+ svn_wc_context_t *wc_ctx;
+ svn_client_ctx_t *ctx;
+ svn_wc_notify_func2_t notify_func;
+ void *notify_baton;
+};
+
+/* Everything we need to know about a directory that's open for edits.
+ */
+struct dir_baton_t
+{
+ apr_pool_t *pool;
+
+ struct edit_baton_t *eb;
+
+ const char *local_abspath;
+};
+
+/* Join PATH onto ANCHOR_ABSPATH.
+ * Throw an error if the result is outside ANCHOR_ABSPATH.
+ */
+static svn_error_t *
+get_path(const char **local_abspath_p,
+ const char *anchor_abspath,
+ const char *path,
+ apr_pool_t *result_pool)
+{
+ svn_boolean_t under_root;
+
+ SVN_ERR(svn_dirent_is_under_root(&under_root, local_abspath_p,
+ anchor_abspath, path, result_pool));
+ if (! under_root)
+ {
+ return svn_error_createf(
+ SVN_ERR_WC_OBSTRUCTED_UPDATE, NULL,
+ _("Path '%s' is not in the working copy"),
+ svn_dirent_local_style(path, result_pool));
+ }
+ return SVN_NO_ERROR;
+}
+
+/* Create a directory on disk and add it to version control,
+ * with no properties.
+ */
+static svn_error_t *
+mkdir(const char *abspath,
+ struct edit_baton_t *eb,
+ apr_pool_t *scratch_pool)
+{
+ SVN_ERR(svn_io_make_dir_recursively(abspath, scratch_pool));
+ SVN_ERR(svn_wc_add_from_disk3(eb->wc_ctx, abspath,
+ NULL /*properties*/,
+ TRUE /* skip checks */,
+ eb->notify_func, eb->notify_baton,
+ scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* Prepare to open or add a directory: initialize a new dir baton.
+ *
+ * If PATH is "" and PB is null, it represents the root directory of
+ * the edit; otherwise PATH is not "" and PB is not null.
+ */
+static svn_error_t *
+dir_open_or_add(struct dir_baton_t **child_dir_baton,
+ const char *path,
+ struct dir_baton_t *pb,
+ struct edit_baton_t *eb,
+ apr_pool_t *dir_pool)
+{
+ struct dir_baton_t *db = apr_pcalloc(dir_pool, sizeof(*db));
+
+ db->pool = dir_pool;
+ db->eb = eb;
+
+ SVN_ERR(get_path(&db->local_abspath,
+ eb->anchor_abspath, path, dir_pool));
+
+ *child_dir_baton = db;
+ return SVN_NO_ERROR;
+}
+
+/* */
+static svn_error_t *
+release_write_lock(struct edit_baton_t *eb,
+ apr_pool_t *scratch_pool)
+{
+ if (eb->lock_root_abspath)
+ {
+ SVN_ERR(svn_wc__release_write_lock(
+ eb->ctx->wc_ctx, eb->lock_root_abspath, scratch_pool));
+ eb->lock_root_abspath = NULL;
+ }
+ return SVN_NO_ERROR;
+}
+
+/* */
+static apr_status_t
+pool_cleanup_handler(void *root_baton)
+{
+ struct dir_baton_t *db = root_baton;
+ struct edit_baton_t *eb = db->eb;
+
+ svn_error_clear(release_write_lock(eb, db->pool));
+ return APR_SUCCESS;
+}
+
+/* svn_delta_editor_t function */
+static svn_error_t *
+edit_open(void *edit_baton,
+ svn_revnum_t base_revision,
+ apr_pool_t *result_pool,
+ void **root_baton)
+{
+ struct edit_baton_t *eb = edit_baton;
+ struct dir_baton_t *db;
+
+ SVN_ERR(dir_open_or_add(&db, "", NULL, eb, result_pool));
+
+ /* Acquire a WC write lock */
+ if (eb->manage_wc_write_lock)
+ {
+ apr_pool_cleanup_register(db->pool, db,
+ pool_cleanup_handler,
+ apr_pool_cleanup_null);
+ SVN_ERR(svn_wc__acquire_write_lock(&eb->lock_root_abspath,
+ eb->ctx->wc_ctx,
+ eb->anchor_abspath,
+ FALSE /*lock_anchor*/,
+ db->pool, db->pool));
+ }
+
+ if (eb->root_dir_add)
+ {
+ SVN_ERR(mkdir(db->local_abspath, eb, result_pool));
+ }
+
+ *root_baton = db;
+ return SVN_NO_ERROR;
+}
+
+/* svn_delta_editor_t function */
+static svn_error_t *
+edit_close_or_abort(void *edit_baton,
+ apr_pool_t *scratch_pool)
+{
+ SVN_ERR(release_write_lock(edit_baton, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* */
+static svn_error_t *
+delete_entry(const char *path,
+ svn_revnum_t revision,
+ void *parent_baton,
+ apr_pool_t *scratch_pool)
+{
+ struct dir_baton_t *pb = parent_baton;
+ struct edit_baton_t *eb = pb->eb;
+ const char *local_abspath;
+
+ SVN_ERR(get_path(&local_abspath,
+ eb->anchor_abspath, path, scratch_pool));
+ SVN_ERR(svn_wc_delete4(eb->wc_ctx, local_abspath,
+ FALSE /*keep_local*/,
+ TRUE /*delete_unversioned*/,
+ NULL, NULL, /*cancellation*/
+ eb->notify_func, eb->notify_baton, scratch_pool));
+
+ return SVN_NO_ERROR;
+}
+
+/* An svn_delta_editor_t function. */
+static svn_error_t *
+dir_open(const char *path,
+ void *parent_baton,
+ svn_revnum_t base_revision,
+ apr_pool_t *result_pool,
+ void **child_baton)
+{
+ struct dir_baton_t *pb = parent_baton;
+ struct edit_baton_t *eb = pb->eb;
+ struct dir_baton_t *db;
+
+ SVN_ERR(dir_open_or_add(&db, path, pb, eb, result_pool));
+
+ *child_baton = db;
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+dir_add(const char *path,
+ void *parent_baton,
+ const char *copyfrom_path,
+ svn_revnum_t copyfrom_revision,
+ apr_pool_t *result_pool,
+ void **child_baton)
+{
+ struct dir_baton_t *pb = parent_baton;
+ struct edit_baton_t *eb = pb->eb;
+ struct dir_baton_t *db;
+ /* ### Our caller should be providing a scratch pool */
+ apr_pool_t *scratch_pool = svn_pool_create(result_pool);
+
+ SVN_ERR(dir_open_or_add(&db, path, pb, eb, result_pool));
+
+ if (copyfrom_path && SVN_IS_VALID_REVNUM(copyfrom_revision))
+ {
+ SVN_ERR(svn_client__repos_to_wc_copy_internal(NULL /*timestamp_sleep*/,
+ svn_node_dir,
+ copyfrom_path,
+ copyfrom_revision,
+ db->local_abspath,
+ db->eb->ra_session,
+ db->eb->ctx,
+ scratch_pool));
+ }
+ else
+ {
+ SVN_ERR(mkdir(db->local_abspath, eb, result_pool));
+ }
+
+ *child_baton = db;
+ svn_pool_destroy(scratch_pool);
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+dir_change_prop(void *dir_baton,
+ const char *name,
+ const svn_string_t *value,
+ apr_pool_t *scratch_pool)
+{
+ struct dir_baton_t *db = dir_baton;
+ struct edit_baton_t *eb = db->eb;
+
+ if (svn_property_kind2(name) != svn_prop_regular_kind
+ || (eb->ignore_mergeinfo_changes && ! strcmp(name, SVN_PROP_MERGEINFO)))
+ {
+ /* We can't handle DAV, ENTRY and merge specific props here */
+ return SVN_NO_ERROR;
+ }
+
+ SVN_ERR(svn_wc_prop_set4(eb->wc_ctx, db->local_abspath, name, value,
+ svn_depth_empty, FALSE, NULL,
+ NULL, NULL, /* Cancellation */
+ NULL, NULL, /* Notification */
+ scratch_pool));
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+dir_close(void *dir_baton,
+ apr_pool_t *scratch_pool)
+{
+ return SVN_NO_ERROR;
+}
+
+/* Everything we need to know about a file that's open for edits.
+ */
+struct file_baton_t
+{
+ apr_pool_t *pool;
+
+ struct edit_baton_t *eb;
+
+ const char *local_abspath;
+
+ /* fields for the transfer of text changes */
+ const char *writing_file;
+ unsigned char digest[APR_MD5_DIGESTSIZE]; /* MD5 digest of new fulltext */
+ svn_stream_t *wc_file_read_stream, *tmp_file_write_stream;
+ const char *tmp_path;
+};
+
+/* Create a new file on disk and add it to version control.
+ *
+ * The file is empty and has no properties.
+ */
+static svn_error_t *
+mkfile(const char *abspath,
+ struct edit_baton_t *eb,
+ apr_pool_t *scratch_pool)
+{
+ SVN_ERR(svn_io_file_create_empty(abspath, scratch_pool));
+ SVN_ERR(svn_wc_add_from_disk3(eb->wc_ctx, abspath,
+ NULL /*properties*/,
+ TRUE /* skip checks */,
+ eb->notify_func, eb->notify_baton,
+ scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* */
+static svn_error_t *
+file_open_or_add(const char *path,
+ void *parent_baton,
+ struct file_baton_t **file_baton,
+ apr_pool_t *file_pool)
+{
+ struct dir_baton_t *pb = parent_baton;
+ struct edit_baton_t *eb = pb->eb;
+ struct file_baton_t *fb = apr_pcalloc(file_pool, sizeof(*fb));
+
+ fb->pool = file_pool;
+ fb->eb = eb;
+ SVN_ERR(get_path(&fb->local_abspath,
+ eb->anchor_abspath, path, fb->pool));
+
+ *file_baton = fb;
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+file_open(const char *path,
+ void *parent_baton,
+ svn_revnum_t base_revision,
+ apr_pool_t *result_pool,
+ void **file_baton)
+{
+ struct file_baton_t *fb;
+
+ SVN_ERR(file_open_or_add(path, parent_baton, &fb, result_pool));
+
+ *file_baton = fb;
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+file_add(const char *path,
+ void *parent_baton,
+ const char *copyfrom_path,
+ svn_revnum_t copyfrom_revision,
+ apr_pool_t *result_pool,
+ void **file_baton)
+{
+ struct file_baton_t *fb;
+
+ SVN_ERR(file_open_or_add(path, parent_baton, &fb, result_pool));
+
+ if (copyfrom_path && SVN_IS_VALID_REVNUM(copyfrom_revision))
+ {
+ SVN_ERR(svn_client__repos_to_wc_copy_internal(NULL /*timestamp_sleep*/,
+ svn_node_file,
+ copyfrom_path,
+ copyfrom_revision,
+ fb->local_abspath,
+ fb->eb->ra_session,
+ fb->eb->ctx, fb->pool));
+ }
+ else
+ {
+ SVN_ERR(mkfile(fb->local_abspath, fb->eb, result_pool));
+ }
+
+ *file_baton = fb;
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+file_change_prop(void *file_baton,
+ const char *name,
+ const svn_string_t *value,
+ apr_pool_t *scratch_pool)
+{
+ struct file_baton_t *fb = file_baton;
+ struct edit_baton_t *eb = fb->eb;
+
+ if (svn_property_kind2(name) != svn_prop_regular_kind
+ || (eb->ignore_mergeinfo_changes && ! strcmp(name, SVN_PROP_MERGEINFO)))
+ {
+ /* We can't handle DAV, ENTRY and merge specific props here */
+ return SVN_NO_ERROR;
+ }
+
+ SVN_ERR(svn_wc_prop_set4(eb->wc_ctx, fb->local_abspath, name, value,
+ svn_depth_empty, FALSE, NULL,
+ NULL, NULL, /* Cancellation */
+ NULL, NULL, /* Notification */
+ scratch_pool));
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+file_textdelta(void *file_baton,
+ const char *base_checksum,
+ apr_pool_t *result_pool,
+ svn_txdelta_window_handler_t *handler,
+ void **handler_baton)
+{
+ struct file_baton_t *fb = file_baton;
+ const char *target_dir = svn_dirent_dirname(fb->local_abspath, fb->pool);
+ svn_error_t *err;
+
+ SVN_ERR_ASSERT(! fb->writing_file);
+
+ err = svn_stream_open_readonly(&fb->wc_file_read_stream, fb->local_abspath,
+ fb->pool, fb->pool);
+ if (err && APR_STATUS_IS_ENOENT(err->apr_err))
+ {
+ svn_error_clear(err);
+ fb->wc_file_read_stream = svn_stream_empty(fb->pool);
+ }
+ else
+ SVN_ERR(err);
+
+ SVN_ERR(svn_stream_open_unique(&fb->tmp_file_write_stream, &fb->writing_file,
+ target_dir, svn_io_file_del_none,
+ fb->pool, fb->pool));
+
+ svn_txdelta_apply(fb->wc_file_read_stream,
+ fb->tmp_file_write_stream,
+ fb->digest,
+ fb->local_abspath,
+ fb->pool,
+ /* Provide the handler directly */
+ handler, handler_baton);
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+file_close(void *file_baton,
+ const char *text_checksum,
+ apr_pool_t *scratch_pool)
+{
+ struct file_baton_t *fb = file_baton;
+
+ /* If we have text changes, write them to disk */
+ if (fb->writing_file)
+ {
+ SVN_ERR(svn_stream_close(fb->wc_file_read_stream));
+ SVN_ERR(svn_io_file_rename2(fb->writing_file, fb->local_abspath,
+ FALSE /*flush*/, scratch_pool));
+ }
+
+ if (text_checksum)
+ {
+ svn_checksum_t *expected_checksum;
+ svn_checksum_t *actual_checksum;
+
+ SVN_ERR(svn_checksum_parse_hex(&expected_checksum, svn_checksum_md5,
+ text_checksum, fb->pool));
+ actual_checksum = svn_checksum__from_digest_md5(fb->digest, fb->pool);
+
+ if (! svn_checksum_match(expected_checksum, actual_checksum))
+ return svn_error_trace(
+ svn_checksum_mismatch_err(expected_checksum,
+ actual_checksum,
+ fb->pool,
+ _("Checksum mismatch for '%s'"),
+ svn_dirent_local_style(
+ fb->local_abspath,
+ fb->pool)));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__wc_editor_internal(const svn_delta_editor_t **editor_p,
+ void **edit_baton_p,
+ const char *dst_abspath,
+ svn_boolean_t root_dir_add,
+ svn_boolean_t ignore_mergeinfo_changes,
+ svn_boolean_t manage_wc_write_lock,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
+ svn_ra_session_t *ra_session,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool)
+{
+ svn_delta_editor_t *editor = svn_delta_default_editor(result_pool);
+ struct edit_baton_t *eb = apr_pcalloc(result_pool, sizeof(*eb));
+
+ eb->anchor_abspath = apr_pstrdup(result_pool, dst_abspath);
+ eb->manage_wc_write_lock = manage_wc_write_lock;
+ eb->lock_root_abspath = NULL;
+ eb->root_dir_add = root_dir_add;
+ eb->ignore_mergeinfo_changes = ignore_mergeinfo_changes;
+
+ eb->ra_session = ra_session;
+ eb->wc_ctx = ctx->wc_ctx;
+ eb->ctx = ctx;
+ eb->notify_func = notify_func;
+ eb->notify_baton = notify_baton;
+
+ editor->open_root = edit_open;
+ editor->close_edit = edit_close_or_abort;
+ editor->abort_edit = edit_close_or_abort;
+
+ editor->delete_entry = delete_entry;
+
+ editor->open_directory = dir_open;
+ editor->add_directory = dir_add;
+ editor->change_dir_prop = dir_change_prop;
+ editor->close_directory = dir_close;
+
+ editor->open_file = file_open;
+ editor->add_file = file_add;
+ editor->change_file_prop = file_change_prop;
+ editor->apply_textdelta = file_textdelta;
+ editor->close_file = file_close;
+
+ *editor_p = editor;
+ *edit_baton_p = eb;
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__wc_editor(const svn_delta_editor_t **editor_p,
+ void **edit_baton_p,
+ const char *dst_abspath,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
+ svn_ra_session_t *ra_session,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool)
+{
+ SVN_ERR(svn_client__wc_editor_internal(editor_p, edit_baton_p,
+ dst_abspath,
+ FALSE /*root_dir_add*/,
+ FALSE /*ignore_mergeinfo_changes*/,
+ TRUE /*manage_wc_write_lock*/,
+ notify_func, notify_baton,
+ ra_session,
+ ctx, result_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__wc_copy_mods(const char *src_wc_abspath,
+ const char *dst_wc_abspath,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ svn_client__pathrev_t *base;
+ const char *dst_wc_url;
+ svn_ra_session_t *ra_session;
+ const svn_delta_editor_t *editor;
+ void *edit_baton;
+ apr_array_header_t *src_targets = apr_array_make(scratch_pool, 1,
+ sizeof(char *));
+
+ /* We'll need an RA session to obtain the base of any copies */
+ SVN_ERR(svn_client__wc_node_get_base(&base,
+ src_wc_abspath, ctx->wc_ctx,
+ scratch_pool, scratch_pool));
+ dst_wc_url = base->url;
+ SVN_ERR(svn_client_open_ra_session2(&ra_session,
+ dst_wc_url, dst_wc_abspath,
+ ctx, scratch_pool, scratch_pool));
+ SVN_ERR(svn_client__wc_editor(&editor, &edit_baton,
+ dst_wc_abspath,
+ NULL, NULL, /*notification*/
+ ra_session, ctx, scratch_pool));
+
+ APR_ARRAY_PUSH(src_targets, const char *) = src_wc_abspath;
+ SVN_ERR(svn_client__wc_replay(src_wc_abspath,
+ src_targets, svn_depth_infinity, NULL,
+ editor, edit_baton,
+ notify_func, notify_baton,
+ ctx, scratch_pool));
+
+ return SVN_NO_ERROR;
+}
diff --git a/subversion/libsvn_delta/branch.c b/subversion/libsvn_delta/branch.c
index 95355d44650d..57cdea7ce074 100644
--- a/subversion/libsvn_delta/branch.c
+++ b/subversion/libsvn_delta/branch.c
@@ -157,7 +157,7 @@ branch_txn_delete_branch(svn_branch__txn_t *txn,
if (strcmp(b->bid, bid) == 0)
{
- svn_sort__array_delete(txn->priv->branches, i, 1);
+ SVN_ERR(svn_sort__array_delete2(txn->priv->branches, i, 1));
break;
}
}
diff --git a/subversion/libsvn_delta/branch_compat.c b/subversion/libsvn_delta/branch_compat.c
index dac0e191cf24..635b31a5eb68 100644
--- a/subversion/libsvn_delta/branch_compat.c
+++ b/subversion/libsvn_delta/branch_compat.c
@@ -875,6 +875,8 @@ drive_ev1_props(const char *repos_relpath,
*/
static svn_error_t *
apply_change(void **dir_baton,
+ const svn_delta_editor_t *editor,
+ void *edit_baton,
void *parent_baton,
void *callback_baton,
const char *ev1_relpath,
@@ -905,7 +907,7 @@ apply_change(void **dir_baton,
/* Only property edits are allowed on the root. */
SVN_ERR_ASSERT(change->action == RESTRUCTURE_NONE);
SVN_ERR(drive_ev1_props(ev1_relpath, change, base_props,
- eb->deditor, *dir_baton, scratch_pool));
+ editor, *dir_baton, scratch_pool));
/* No further action possible for the root. */
return SVN_NO_ERROR;
@@ -913,8 +915,8 @@ apply_change(void **dir_baton,
if (change->action == RESTRUCTURE_DELETE)
{
- SVN_ERR(eb->deditor->delete_entry(ev1_relpath, change->deleting_rev,
- parent_baton, scratch_pool));
+ SVN_ERR(editor->delete_entry(ev1_relpath, change->deleting_rev,
+ parent_baton, scratch_pool));
/* No futher action possible for this node. */
return SVN_NO_ERROR;
@@ -927,11 +929,11 @@ apply_change(void **dir_baton,
if (change->action == RESTRUCTURE_ADD_ABSENT)
{
if (change->kind == svn_node_dir)
- SVN_ERR(eb->deditor->absent_directory(ev1_relpath, parent_baton,
- scratch_pool));
- else if (change->kind == svn_node_file)
- SVN_ERR(eb->deditor->absent_file(ev1_relpath, parent_baton,
+ SVN_ERR(editor->absent_directory(ev1_relpath, parent_baton,
scratch_pool));
+ else if (change->kind == svn_node_file)
+ SVN_ERR(editor->absent_file(ev1_relpath, parent_baton,
+ scratch_pool));
else
SVN_ERR_MALFUNCTION();
@@ -948,8 +950,8 @@ apply_change(void **dir_baton,
/* Do we have an old node to delete first? If so, delete it. */
if (change->deleting)
- SVN_ERR(eb->deditor->delete_entry(ev1_relpath, change->deleting_rev,
- parent_baton, scratch_pool));
+ SVN_ERR(editor->delete_entry(ev1_relpath, change->deleting_rev,
+ parent_baton, scratch_pool));
/* If it's a copy, determine the copy source location. */
if (change->copyfrom_path)
@@ -974,13 +976,13 @@ apply_change(void **dir_baton,
}
if (change->kind == svn_node_dir)
- SVN_ERR(eb->deditor->add_directory(ev1_relpath, parent_baton,
- copyfrom_url, copyfrom_rev,
- result_pool, dir_baton));
- else if (change->kind == svn_node_file)
- SVN_ERR(eb->deditor->add_file(ev1_relpath, parent_baton,
+ SVN_ERR(editor->add_directory(ev1_relpath, parent_baton,
copyfrom_url, copyfrom_rev,
- result_pool, &file_baton));
+ result_pool, dir_baton));
+ else if (change->kind == svn_node_file)
+ SVN_ERR(editor->add_file(ev1_relpath, parent_baton,
+ copyfrom_url, copyfrom_rev,
+ result_pool, &file_baton));
else
SVN_ERR_MALFUNCTION();
}
@@ -993,13 +995,13 @@ apply_change(void **dir_baton,
when we fetch the base properties.) */
if (change->kind == svn_node_dir)
- SVN_ERR(eb->deditor->open_directory(ev1_relpath, parent_baton,
- change->changing_rev,
- result_pool, dir_baton));
- else if (change->kind == svn_node_file)
- SVN_ERR(eb->deditor->open_file(ev1_relpath, parent_baton,
+ SVN_ERR(editor->open_directory(ev1_relpath, parent_baton,
change->changing_rev,
- result_pool, &file_baton));
+ result_pool, dir_baton));
+ else if (change->kind == svn_node_file)
+ SVN_ERR(editor->open_file(ev1_relpath, parent_baton,
+ change->changing_rev,
+ result_pool, &file_baton));
else
SVN_ERR_MALFUNCTION();
}
@@ -1007,10 +1009,10 @@ apply_change(void **dir_baton,
/* Apply any properties in CHANGE to the node. */
if (change->kind == svn_node_dir)
SVN_ERR(drive_ev1_props(ev1_relpath, change, base_props,
- eb->deditor, *dir_baton, scratch_pool));
+ editor, *dir_baton, scratch_pool));
else
SVN_ERR(drive_ev1_props(ev1_relpath, change, base_props,
- eb->deditor, file_baton, scratch_pool));
+ editor, file_baton, scratch_pool));
/* Send the text content delta, if new text content is provided. */
if (change->contents_text)
@@ -1023,7 +1025,7 @@ apply_change(void **dir_baton,
scratch_pool);
/* ### would be nice to have a BASE_CHECKSUM, but hey: this is the
### shim code... */
- SVN_ERR(eb->deditor->apply_textdelta(file_baton, NULL, scratch_pool,
+ SVN_ERR(editor->apply_textdelta(file_baton, NULL, scratch_pool,
&handler, &handler_baton));
/* ### it would be nice to send a true txdelta here, but whatever. */
SVN_ERR(svn_txdelta_send_stream(read_stream, handler, handler_baton,
@@ -1033,7 +1035,7 @@ apply_change(void **dir_baton,
if (file_baton)
{
- SVN_ERR(eb->deditor->close_file(file_baton, NULL, scratch_pool));
+ SVN_ERR(editor->close_file(file_baton, NULL, scratch_pool));
}
return SVN_NO_ERROR;
@@ -1740,7 +1742,7 @@ drive_changes(svn_branch__txn_priv_t *eb,
/* Apply the appropriate Ev1 change to each Ev1-relative path. */
paths = get_unsorted_paths(eb->changes, scratch_pool);
- SVN_ERR(svn_delta_path_driver2(eb->deditor, eb->dedit_baton,
+ SVN_ERR(svn_delta_path_driver3(eb->deditor, eb->dedit_baton,
paths, TRUE /*sort*/,
apply_change, (void *)eb,
scratch_pool));
diff --git a/subversion/libsvn_delta/compat.c b/subversion/libsvn_delta/compat.c
index c89e9367cd37..817e23eb1819 100644
--- a/subversion/libsvn_delta/compat.c
+++ b/subversion/libsvn_delta/compat.c
@@ -1577,6 +1577,8 @@ drive_ev1_props(const struct editor_baton *eb,
/* Conforms to svn_delta_path_driver_cb_func_t */
static svn_error_t *
apply_change(void **dir_baton,
+ const svn_delta_editor_t *deditor,
+ void *dedit_baton,
void *parent_baton,
void *callback_baton,
const char *ev1_relpath,
@@ -1614,8 +1616,8 @@ apply_change(void **dir_baton,
if (change->action == RESTRUCTURE_DELETE)
{
- SVN_ERR(eb->deditor->delete_entry(ev1_relpath, change->deleting,
- parent_baton, scratch_pool));
+ SVN_ERR(deditor->delete_entry(ev1_relpath, change->deleting,
+ parent_baton, scratch_pool));
/* No futher action possible for this node. */
return SVN_NO_ERROR;
@@ -1627,11 +1629,11 @@ apply_change(void **dir_baton,
if (change->action == RESTRUCTURE_ADD_ABSENT)
{
if (change->kind == svn_node_dir)
- SVN_ERR(eb->deditor->absent_directory(ev1_relpath, parent_baton,
- scratch_pool));
+ SVN_ERR(deditor->absent_directory(ev1_relpath, parent_baton,
+ scratch_pool));
else
- SVN_ERR(eb->deditor->absent_file(ev1_relpath, parent_baton,
- scratch_pool));
+ SVN_ERR(deditor->absent_file(ev1_relpath, parent_baton,
+ scratch_pool));
/* No further action possible for this node. */
return SVN_NO_ERROR;
@@ -1645,8 +1647,8 @@ apply_change(void **dir_baton,
/* Do we have an old node to delete first? */
if (SVN_IS_VALID_REVNUM(change->deleting))
- SVN_ERR(eb->deditor->delete_entry(ev1_relpath, change->deleting,
- parent_baton, scratch_pool));
+ SVN_ERR(deditor->delete_entry(ev1_relpath, change->deleting,
+ parent_baton, scratch_pool));
/* Are we copying the node from somewhere? */
if (change->copyfrom_path)
@@ -1669,24 +1671,24 @@ apply_change(void **dir_baton,
}
if (change->kind == svn_node_dir)
- SVN_ERR(eb->deditor->add_directory(ev1_relpath, parent_baton,
- copyfrom_url, copyfrom_rev,
- result_pool, dir_baton));
+ SVN_ERR(deditor->add_directory(ev1_relpath, parent_baton,
+ copyfrom_url, copyfrom_rev,
+ result_pool, dir_baton));
else
- SVN_ERR(eb->deditor->add_file(ev1_relpath, parent_baton,
- copyfrom_url, copyfrom_rev,
- result_pool, &file_baton));
+ SVN_ERR(deditor->add_file(ev1_relpath, parent_baton,
+ copyfrom_url, copyfrom_rev,
+ result_pool, &file_baton));
}
else
{
if (change->kind == svn_node_dir)
- SVN_ERR(eb->deditor->open_directory(ev1_relpath, parent_baton,
- change->changing,
- result_pool, dir_baton));
+ SVN_ERR(deditor->open_directory(ev1_relpath, parent_baton,
+ change->changing,
+ result_pool, dir_baton));
else
- SVN_ERR(eb->deditor->open_file(ev1_relpath, parent_baton,
- change->changing,
- result_pool, &file_baton));
+ SVN_ERR(deditor->open_file(ev1_relpath, parent_baton,
+ change->changing,
+ result_pool, &file_baton));
}
/* Apply any properties in CHANGE to the node. */
@@ -1703,8 +1705,8 @@ apply_change(void **dir_baton,
/* ### would be nice to have a BASE_CHECKSUM, but hey: this is the
### shim code... */
- SVN_ERR(eb->deditor->apply_textdelta(file_baton, NULL, scratch_pool,
- &handler, &handler_baton));
+ SVN_ERR(deditor->apply_textdelta(file_baton, NULL, scratch_pool,
+ &handler, &handler_baton));
SVN_ERR(svn_stream_open_readonly(&contents, change->contents_abspath,
scratch_pool, scratch_pool));
/* ### it would be nice to send a true txdelta here, but whatever. */
@@ -1718,7 +1720,7 @@ apply_change(void **dir_baton,
const char *digest = svn_checksum_to_cstring(change->checksum,
scratch_pool);
- SVN_ERR(eb->deditor->close_file(file_baton, digest, scratch_pool));
+ SVN_ERR(deditor->close_file(file_baton, digest, scratch_pool));
}
return SVN_NO_ERROR;
@@ -1747,7 +1749,7 @@ drive_changes(const struct editor_baton *eb,
/* Get a sorted list of Ev1-relative paths. */
paths = get_sorted_paths(eb->changes, eb->base_relpath, scratch_pool);
- SVN_ERR(svn_delta_path_driver2(eb->deditor, eb->dedit_baton, paths,
+ SVN_ERR(svn_delta_path_driver3(eb->deditor, eb->dedit_baton, paths,
FALSE, apply_change, (void *)eb,
scratch_pool));
diff --git a/subversion/libsvn_delta/debug_editor.c b/subversion/libsvn_delta/debug_editor.c
index 5f26936d621b..c5dbc9b0321b 100644
--- a/subversion/libsvn_delta/debug_editor.c
+++ b/subversion/libsvn_delta/debug_editor.c
@@ -71,9 +71,11 @@ set_target_revision(void *edit_baton,
SVN_ERR(svn_stream_printf(eb->out, pool, "set_target_revision : %ld\n",
target_revision));
- return eb->wrapped_editor->set_target_revision(eb->wrapped_edit_baton,
- target_revision,
- pool);
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->set_target_revision(eb->wrapped_edit_baton,
+ target_revision,
+ pool));
+ return SVN_NO_ERROR;
}
static svn_error_t *
@@ -90,10 +92,11 @@ open_root(void *edit_baton,
base_revision));
eb->indent_level++;
- SVN_ERR(eb->wrapped_editor->open_root(eb->wrapped_edit_baton,
- base_revision,
- pool,
- &dir_baton->wrapped_dir_baton));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->open_root(eb->wrapped_edit_baton,
+ base_revision,
+ pool,
+ &dir_baton->wrapped_dir_baton));
dir_baton->edit_baton = edit_baton;
@@ -115,10 +118,12 @@ delete_entry(const char *path,
SVN_ERR(svn_stream_printf(eb->out, pool, "delete_entry : %s:%ld\n",
path, base_revision));
- return eb->wrapped_editor->delete_entry(path,
- base_revision,
- pb->wrapped_dir_baton,
- pool);
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->delete_entry(path,
+ base_revision,
+ pb->wrapped_dir_baton,
+ pool));
+ return SVN_NO_ERROR;
}
static svn_error_t *
@@ -139,12 +144,13 @@ add_directory(const char *path,
path, copyfrom_path, copyfrom_revision));
eb->indent_level++;
- SVN_ERR(eb->wrapped_editor->add_directory(path,
- pb->wrapped_dir_baton,
- copyfrom_path,
- copyfrom_revision,
- pool,
- &b->wrapped_dir_baton));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->add_directory(path,
+ pb->wrapped_dir_baton,
+ copyfrom_path,
+ copyfrom_revision,
+ pool,
+ &b->wrapped_dir_baton));
b->edit_baton = eb;
*child_baton = b;
@@ -168,11 +174,12 @@ open_directory(const char *path,
path, base_revision));
eb->indent_level++;
- SVN_ERR(eb->wrapped_editor->open_directory(path,
- pb->wrapped_dir_baton,
- base_revision,
- pool,
- &db->wrapped_dir_baton));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->open_directory(path,
+ pb->wrapped_dir_baton,
+ base_revision,
+ pool,
+ &db->wrapped_dir_baton));
db->edit_baton = eb;
*child_baton = db;
@@ -199,12 +206,13 @@ add_file(const char *path,
eb->indent_level++;
- SVN_ERR(eb->wrapped_editor->add_file(path,
- pb->wrapped_dir_baton,
- copyfrom_path,
- copyfrom_revision,
- pool,
- &fb->wrapped_file_baton));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->add_file(path,
+ pb->wrapped_dir_baton,
+ copyfrom_path,
+ copyfrom_revision,
+ pool,
+ &fb->wrapped_file_baton));
fb->edit_baton = eb;
*file_baton = fb;
@@ -229,11 +237,12 @@ open_file(const char *path,
eb->indent_level++;
- SVN_ERR(eb->wrapped_editor->open_file(path,
- pb->wrapped_dir_baton,
- base_revision,
- pool,
- &fb->wrapped_file_baton));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->open_file(path,
+ pb->wrapped_dir_baton,
+ base_revision,
+ pool,
+ &fb->wrapped_file_baton));
fb->edit_baton = eb;
*file_baton = fb;
@@ -255,11 +264,38 @@ apply_textdelta(void *file_baton,
SVN_ERR(svn_stream_printf(eb->out, pool, "apply_textdelta : %s\n",
base_checksum));
- SVN_ERR(eb->wrapped_editor->apply_textdelta(fb->wrapped_file_baton,
- base_checksum,
- pool,
- handler,
- handler_baton));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->apply_textdelta(fb->wrapped_file_baton,
+ base_checksum,
+ pool,
+ handler,
+ handler_baton));
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+apply_textdelta_stream(const struct svn_delta_editor_t *editor,
+ void *file_baton,
+ const char *base_checksum,
+ svn_txdelta_stream_open_func_t open_func,
+ void *open_baton,
+ apr_pool_t *scratch_pool)
+{
+ struct file_baton *fb = file_baton;
+ struct edit_baton *eb = fb->edit_baton;
+
+ SVN_ERR(write_indent(eb, scratch_pool));
+ SVN_ERR(svn_stream_printf(eb->out, scratch_pool,
+ "apply_textdelta_stream : %s\n",
+ base_checksum));
+
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->apply_textdelta_stream(eb->wrapped_editor,
+ fb->wrapped_file_baton,
+ base_checksum,
+ open_func, open_baton,
+ scratch_pool));
return SVN_NO_ERROR;
}
@@ -278,8 +314,9 @@ close_file(void *file_baton,
SVN_ERR(svn_stream_printf(eb->out, pool, "close_file : %s\n",
text_checksum));
- SVN_ERR(eb->wrapped_editor->close_file(fb->wrapped_file_baton,
- text_checksum, pool));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->close_file(fb->wrapped_file_baton,
+ text_checksum, pool));
return SVN_NO_ERROR;
}
@@ -295,8 +332,9 @@ absent_file(const char *path,
SVN_ERR(write_indent(eb, pool));
SVN_ERR(svn_stream_printf(eb->out, pool, "absent_file : %s\n", path));
- SVN_ERR(eb->wrapped_editor->absent_file(path, fb->wrapped_file_baton,
- pool));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->absent_file(path, fb->wrapped_file_baton,
+ pool));
return SVN_NO_ERROR;
}
@@ -312,8 +350,9 @@ close_directory(void *dir_baton,
SVN_ERR(write_indent(eb, pool));
SVN_ERR(svn_stream_printf(eb->out, pool, "close_directory\n"));
- SVN_ERR(eb->wrapped_editor->close_directory(db->wrapped_dir_baton,
- pool));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->close_directory(db->wrapped_dir_baton,
+ pool));
return SVN_NO_ERROR;
}
@@ -330,8 +369,9 @@ absent_directory(const char *path,
SVN_ERR(svn_stream_printf(eb->out, pool, "absent_directory : %s\n",
path));
- SVN_ERR(eb->wrapped_editor->absent_directory(path, db->wrapped_dir_baton,
- pool));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->absent_directory(path, db->wrapped_dir_baton,
+ pool));
return SVN_NO_ERROR;
}
@@ -349,10 +389,11 @@ change_file_prop(void *file_baton,
SVN_ERR(svn_stream_printf(eb->out, pool, "change_file_prop : %s -> %s\n",
name, value ? value->data : "<deleted>"));
- SVN_ERR(eb->wrapped_editor->change_file_prop(fb->wrapped_file_baton,
- name,
- value,
- pool));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->change_file_prop(fb->wrapped_file_baton,
+ name,
+ value,
+ pool));
return SVN_NO_ERROR;
}
@@ -370,10 +411,11 @@ change_dir_prop(void *dir_baton,
SVN_ERR(svn_stream_printf(eb->out, pool, "change_dir_prop : %s -> %s\n",
name, value ? value->data : "<deleted>"));
- SVN_ERR(eb->wrapped_editor->change_dir_prop(db->wrapped_dir_baton,
- name,
- value,
- pool));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->change_dir_prop(db->wrapped_dir_baton,
+ name,
+ value,
+ pool));
return SVN_NO_ERROR;
}
@@ -387,7 +429,8 @@ close_edit(void *edit_baton,
SVN_ERR(write_indent(eb, pool));
SVN_ERR(svn_stream_printf(eb->out, pool, "close_edit\n"));
- SVN_ERR(eb->wrapped_editor->close_edit(eb->wrapped_edit_baton, pool));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->close_edit(eb->wrapped_edit_baton, pool));
return SVN_NO_ERROR;
}
@@ -401,7 +444,8 @@ abort_edit(void *edit_baton,
SVN_ERR(write_indent(eb, pool));
SVN_ERR(svn_stream_printf(eb->out, pool, "abort_edit\n"));
- SVN_ERR(eb->wrapped_editor->abort_edit(eb->wrapped_edit_baton, pool));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->abort_edit(eb->wrapped_edit_baton, pool));
return SVN_NO_ERROR;
}
@@ -414,7 +458,7 @@ svn_delta__get_debug_editor(const svn_delta_editor_t **editor,
const char *prefix,
apr_pool_t *pool)
{
- svn_delta_editor_t *tree_editor = apr_palloc(pool, sizeof(*tree_editor));
+ svn_delta_editor_t *tree_editor = svn_delta_default_editor(pool);
struct edit_baton *eb = apr_palloc(pool, sizeof(*eb));
apr_file_t *errfp;
svn_stream_t *out;
@@ -436,6 +480,7 @@ svn_delta__get_debug_editor(const svn_delta_editor_t **editor,
tree_editor->add_file = add_file;
tree_editor->open_file = open_file;
tree_editor->apply_textdelta = apply_textdelta;
+ tree_editor->apply_textdelta_stream = apply_textdelta_stream;
tree_editor->change_file_prop = change_file_prop;
tree_editor->close_file = close_file;
tree_editor->absent_file = absent_file;
diff --git a/subversion/libsvn_delta/deprecated.c b/subversion/libsvn_delta/deprecated.c
index 41712440baf4..f00c410cc6ec 100644
--- a/subversion/libsvn_delta/deprecated.c
+++ b/subversion/libsvn_delta/deprecated.c
@@ -30,6 +30,79 @@
#include "svn_sorts.h"
+struct path_driver_2_to_3_baton_t
+{
+ svn_delta_path_driver_cb_func_t callback_func;
+ void *callback_baton;
+ svn_boolean_t slash_prefix;
+};
+
+/* Convert from a newer to older callback
+ */
+static svn_error_t *
+path_driver_2_to_3_func(void **dir_baton,
+ const svn_delta_editor_t *editor,
+ void *edit_baton,
+ void *parent_baton,
+ void *callback_baton,
+ const char *path,
+ apr_pool_t *pool)
+{
+ struct path_driver_2_to_3_baton_t *b = callback_baton;
+
+ if (b->slash_prefix)
+ path = apr_pstrcat(pool, "/", path, SVN_VA_NULL);
+
+ /* Just drop the 'editor' parameters */
+ SVN_ERR(b->callback_func(dir_baton, parent_baton,
+ b->callback_baton,
+ path, pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_delta_path_driver2(const svn_delta_editor_t *editor,
+ void *edit_baton,
+ const apr_array_header_t *paths,
+ svn_boolean_t sort_paths,
+ svn_delta_path_driver_cb_func_t callback_func,
+ void *callback_baton,
+ apr_pool_t *pool)
+{
+ struct path_driver_2_to_3_baton_t b;
+ int i;
+
+ b.callback_func = callback_func;
+ b.callback_baton = callback_baton;
+ b.slash_prefix = FALSE;
+
+ /* Remove any '/' prefix from incoming paths. Arrange to add a '/'
+ prefix to all paths for the callback, if any incoming path had one. */
+ for (i = 0; i < paths->nelts; i++)
+ {
+ const char *path = APR_ARRAY_IDX(paths, i, const char *);
+
+ if (path[0] == '/')
+ {
+ /* Re-allocate the array and note that we found a '/' prefix. */
+ if (!b.slash_prefix)
+ {
+ paths = apr_array_copy(pool, paths);
+ b.slash_prefix = TRUE;
+ }
+
+ /* Modify each array element that had a '/' prefix */
+ APR_ARRAY_IDX(paths, i, const char *) = path + 1;
+ }
+ }
+
+ SVN_ERR(svn_delta_path_driver3(editor, edit_baton,
+ paths, sort_paths,
+ path_driver_2_to_3_func, &b,
+ pool));
+ return SVN_NO_ERROR;
+}
+
svn_error_t *
svn_delta_path_driver(const svn_delta_editor_t *editor,
void *edit_baton,
diff --git a/subversion/libsvn_delta/element.c b/subversion/libsvn_delta/element.c
index be7b2171b9b4..798296412bb8 100644
--- a/subversion/libsvn_delta/element.c
+++ b/subversion/libsvn_delta/element.c
@@ -375,14 +375,12 @@ svn_element__tree_get(const svn_element__tree_t *tree,
return svn_eid__hash_get(tree->e_map, eid);
}
-svn_error_t *
+void
svn_element__tree_set(svn_element__tree_t *tree,
int eid,
const svn_element__content_t *element)
{
svn_eid__hash_set(tree->e_map, eid, element);
-
- return SVN_NO_ERROR;
}
void
diff --git a/subversion/libsvn_delta/libsvn_delta.pc.in b/subversion/libsvn_delta/libsvn_delta.pc.in
index b96e6ab3c282..9759e74e2169 100644
--- a/subversion/libsvn_delta/libsvn_delta.pc.in
+++ b/subversion/libsvn_delta/libsvn_delta.pc.in
@@ -6,7 +6,7 @@ includedir=@includedir@
Name: libsvn_delta
Description: Subversion Delta Library
Version: @PACKAGE_VERSION@
-Requires: apr-util-@SVN_APR_MAJOR_VERSION@ apr-@SVN_APR_MAJOR_VERSION@
-Requires.private: libsvn_subr
-Libs: -L${libdir} -lsvn_delta @SVN_ZLIB_LIBS@
-Cflags: -I${includedir}
+Requires: apr-util-@SVN_APR_MAJOR_VERSION@, apr-@SVN_APR_MAJOR_VERSION@
+Requires.private: libsvn_subr
+Libs: -L${libdir} -lsvn_delta-1 @SVN_ZLIB_LIBS@
+Cflags: -I${includedir}/subversion-1
diff --git a/subversion/libsvn_delta/path_driver.c b/subversion/libsvn_delta/path_driver.c
index c1f3e07b818a..5840cc7f2909 100644
--- a/subversion/libsvn_delta/path_driver.c
+++ b/subversion/libsvn_delta/path_driver.c
@@ -31,7 +31,6 @@
#include "svn_dirent_uri.h"
#include "svn_path.h"
#include "svn_sorts.h"
-#include "private/svn_fspath.h"
#include "private/svn_sorts_private.h"
@@ -45,6 +44,22 @@ typedef struct dir_stack_t
} dir_stack_t;
+/* Push onto dir_stack a new item allocated in POOL and containing
+ * DIR_BATON and POOL.
+ */
+static void
+push_dir_stack_item(apr_array_header_t *db_stack,
+ void *dir_baton,
+ apr_pool_t *pool)
+{
+ dir_stack_t *item = apr_pcalloc(pool, sizeof(*item));
+
+ item->dir_baton = dir_baton;
+ item->pool = pool;
+ APR_ARRAY_PUSH(db_stack, dir_stack_t *) = item;
+}
+
+
/* Call EDITOR's open_directory() function with the PATH argument, then
* add the resulting dir baton to the dir baton stack.
*/
@@ -72,10 +87,7 @@ open_dir(apr_array_header_t *db_stack,
&db));
/* Now add the dir baton to the stack. */
- item = apr_pcalloc(subpool, sizeof(*item));
- item->dir_baton = db;
- item->pool = subpool;
- APR_ARRAY_PUSH(db_stack, dir_stack_t *) = item;
+ push_dir_stack_item(db_stack, db, subpool);
return SVN_NO_ERROR;
}
@@ -131,168 +143,215 @@ count_components(const char *path)
/*** Public interfaces ***/
svn_error_t *
-svn_delta_path_driver2(const svn_delta_editor_t *editor,
+svn_delta_path_driver3(const svn_delta_editor_t *editor,
void *edit_baton,
- const apr_array_header_t *paths,
+ const apr_array_header_t *relpaths,
svn_boolean_t sort_paths,
- svn_delta_path_driver_cb_func_t callback_func,
+ svn_delta_path_driver_cb_func2_t callback_func,
void *callback_baton,
apr_pool_t *pool)
{
- apr_array_header_t *db_stack = apr_array_make(pool, 4, sizeof(void *));
- const char *last_path = NULL;
- int i = 0;
- void *parent_db = NULL, *db = NULL;
- const char *path;
+ svn_delta_path_driver_state_t *state;
+ int i;
apr_pool_t *subpool, *iterpool;
- dir_stack_t *item;
/* Do nothing if there are no paths. */
- if (! paths->nelts)
+ if (! relpaths->nelts)
return SVN_NO_ERROR;
subpool = svn_pool_create(pool);
iterpool = svn_pool_create(pool);
/* sort paths if necessary */
- if (sort_paths && paths->nelts > 1)
+ if (sort_paths && relpaths->nelts > 1)
{
- apr_array_header_t *sorted = apr_array_copy(subpool, paths);
+ apr_array_header_t *sorted = apr_array_copy(subpool, relpaths);
svn_sort__array(sorted, svn_sort_compare_paths);
- paths = sorted;
+ relpaths = sorted;
}
- item = apr_pcalloc(subpool, sizeof(*item));
-
- /* If the root of the edit is also a target path, we want to call
- the callback function to let the user open the root directory and
- do what needs to be done. Otherwise, we'll do the open_root()
- ourselves. */
- path = APR_ARRAY_IDX(paths, 0, const char *);
- if (svn_path_is_empty(path))
- {
- SVN_ERR(callback_func(&db, NULL, callback_baton, path, subpool));
- last_path = path;
- i++;
- }
- else
- {
- SVN_ERR(editor->open_root(edit_baton, SVN_INVALID_REVNUM, subpool, &db));
- }
- item->pool = subpool;
- item->dir_baton = db;
- APR_ARRAY_PUSH(db_stack, void *) = item;
+ SVN_ERR(svn_delta_path_driver_start(&state,
+ editor, edit_baton,
+ callback_func, callback_baton,
+ pool));
/* Now, loop over the commit items, traversing the URL tree and
driving the editor. */
- for (; i < paths->nelts; i++)
+ for (i = 0; i < relpaths->nelts; i++)
{
- const char *pdir;
- const char *common = "";
- size_t common_len;
+ const char *relpath;
/* Clear the iteration pool. */
svn_pool_clear(iterpool);
/* Get the next path. */
- path = APR_ARRAY_IDX(paths, i, const char *);
-
- /*** Step A - Find the common ancestor of the last path and the
- current one. For the first iteration, this is just the
- empty string. ***/
- if (i > 0)
- common = (last_path[0] == '/')
- ? svn_fspath__get_longest_ancestor(last_path, path, iterpool)
- : svn_relpath_get_longest_ancestor(last_path, path, iterpool);
- common_len = strlen(common);
-
- /*** Step B - Close any directories between the last path and
- the new common ancestor, if any need to be closed.
- Sometimes there is nothing to do here (like, for the first
- iteration, or when the last path was an ancestor of the
- current one). ***/
- if ((i > 0) && (strlen(last_path) > common_len))
- {
- const char *rel = last_path + (common_len ? (common_len + 1) : 0);
- int count = count_components(rel);
- while (count--)
- {
- SVN_ERR(pop_stack(db_stack, editor));
- }
- }
+ relpath = APR_ARRAY_IDX(relpaths, i, const char *);
- /*** Step C - Open any directories between the common ancestor
- and the parent of the current path. ***/
- if (*path == '/')
- pdir = svn_fspath__dirname(path, iterpool);
- else
- pdir = svn_relpath_dirname(path, iterpool);
+ SVN_ERR(svn_delta_path_driver_step(state, relpath, iterpool));
+ }
- if (strlen(pdir) > common_len)
- {
- const char *piece = pdir + common_len + 1;
-
- while (1)
- {
- const char *rel = pdir;
-
- /* Find the first separator. */
- piece = strchr(piece, '/');
-
- /* Calculate REL as the portion of PDIR up to (but not
- including) the location to which PIECE is pointing. */
- if (piece)
- rel = apr_pstrmemdup(iterpool, pdir, piece - pdir);
-
- /* Open the subdirectory. */
- SVN_ERR(open_dir(db_stack, editor, rel, pool));
-
- /* If we found a '/', advance our PIECE pointer to
- character just after that '/'. Otherwise, we're
- done. */
- if (piece)
- piece++;
- else
- break;
- }
- }
+ /* Destroy the iteration subpool. */
+ svn_pool_destroy(iterpool);
- /*** Step D - Tell our caller to handle the current path. ***/
- item = APR_ARRAY_IDX(db_stack, db_stack->nelts - 1, void *);
- parent_db = item->dir_baton;
- subpool = svn_pool_create(pool);
- SVN_ERR(callback_func(&db, parent_db, callback_baton, path, subpool));
- if (db)
+ SVN_ERR(svn_delta_path_driver_finish(state, pool));
+
+ return SVN_NO_ERROR;
+}
+
+struct svn_delta_path_driver_state_t
+{
+ const svn_delta_editor_t *editor;
+ void *edit_baton;
+ svn_delta_path_driver_cb_func2_t callback_func;
+ void *callback_baton;
+ apr_array_header_t *db_stack;
+ const char *last_path;
+ apr_pool_t *pool; /* at least the lifetime of the entire drive */
+};
+
+svn_error_t *
+svn_delta_path_driver_start(svn_delta_path_driver_state_t **state_p,
+ const svn_delta_editor_t *editor,
+ void *edit_baton,
+ svn_delta_path_driver_cb_func2_t callback_func,
+ void *callback_baton,
+ apr_pool_t *pool)
+{
+ svn_delta_path_driver_state_t *state = apr_pcalloc(pool, sizeof(*state));
+
+ state->editor = editor;
+ state->edit_baton = edit_baton;
+ state->callback_func = callback_func;
+ state->callback_baton = callback_baton;
+ state->db_stack = apr_array_make(pool, 4, sizeof(void *));
+ state->last_path = NULL;
+ state->pool = pool;
+
+ *state_p = state;
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_delta_path_driver_step(svn_delta_path_driver_state_t *state,
+ const char *relpath,
+ apr_pool_t *scratch_pool)
+{
+ const char *pdir;
+ const char *common = "";
+ size_t common_len;
+ apr_pool_t *subpool;
+ dir_stack_t *item;
+ void *parent_db, *db;
+
+ SVN_ERR_ASSERT(svn_relpath_is_canonical(relpath));
+
+ /* If the first target path is not the root of the edit, we must first
+ call open_root() ourselves. (If the first target path is the root of
+ the edit, then we expect the user's callback to do so.) */
+ if (!state->last_path && !svn_path_is_empty(relpath))
+ {
+ subpool = svn_pool_create(state->pool);
+ SVN_ERR(state->editor->open_root(state->edit_baton, SVN_INVALID_REVNUM,
+ subpool, &db));
+ push_dir_stack_item(state->db_stack, db, subpool);
+ }
+
+ /*** Step A - Find the common ancestor of the last path and the
+ current one. For the first iteration, this is just the
+ empty string. ***/
+ if (state->last_path)
+ common = svn_relpath_get_longest_ancestor(state->last_path, relpath,
+ scratch_pool);
+ common_len = strlen(common);
+
+ /*** Step B - Close any directories between the last path and
+ the new common ancestor, if any need to be closed.
+ Sometimes there is nothing to do here (like, for the first
+ iteration, or when the last path was an ancestor of the
+ current one). ***/
+ if ((state->last_path) && (strlen(state->last_path) > common_len))
+ {
+ const char *rel = state->last_path + (common_len ? (common_len + 1) : 0);
+ int count = count_components(rel);
+ while (count--)
{
- item = apr_pcalloc(subpool, sizeof(*item));
- item->dir_baton = db;
- item->pool = subpool;
- APR_ARRAY_PUSH(db_stack, void *) = item;
+ SVN_ERR(pop_stack(state->db_stack, state->editor));
}
- else
+ }
+
+ /*** Step C - Open any directories between the common ancestor
+ and the parent of the current path. ***/
+ pdir = svn_relpath_dirname(relpath, scratch_pool);
+
+ if (strlen(pdir) > common_len)
+ {
+ const char *piece = pdir + common_len + 1;
+
+ while (1)
{
- svn_pool_destroy(subpool);
+ const char *rel = pdir;
+
+ /* Find the first separator. */
+ piece = strchr(piece, '/');
+
+ /* Calculate REL as the portion of PDIR up to (but not
+ including) the location to which PIECE is pointing. */
+ if (piece)
+ rel = apr_pstrmemdup(scratch_pool, pdir, piece - pdir);
+
+ /* Open the subdirectory. */
+ SVN_ERR(open_dir(state->db_stack, state->editor, rel, state->pool));
+
+ /* If we found a '/', advance our PIECE pointer to
+ character just after that '/'. Otherwise, we're
+ done. */
+ if (piece)
+ piece++;
+ else
+ break;
}
+ }
- /*** Step E - Save our state for the next iteration. If our
- caller opened or added PATH as a directory, that becomes
- our LAST_PATH. Otherwise, we use PATH's parent
- directory. ***/
-
- /* NOTE: The variable LAST_PATH needs to outlive the loop. */
- if (db)
- last_path = path; /* lives in a pool outside our control. */
- else
- last_path = apr_pstrdup(pool, pdir); /* duping into POOL. */
+ /*** Step D - Tell our caller to handle the current path. ***/
+ if (state->db_stack->nelts)
+ {
+ item = APR_ARRAY_IDX(state->db_stack, state->db_stack->nelts - 1, void *);
+ parent_db = item->dir_baton;
+ }
+ else
+ parent_db = NULL;
+ db = NULL; /* predictable behaviour for callbacks that don't set it */
+ subpool = svn_pool_create(state->pool);
+ SVN_ERR(state->callback_func(&db,
+ state->editor, state->edit_baton, parent_db,
+ state->callback_baton,
+ relpath, subpool));
+ if (db)
+ {
+ push_dir_stack_item(state->db_stack, db, subpool);
+ }
+ else
+ {
+ svn_pool_destroy(subpool);
}
- /* Destroy the iteration subpool. */
- svn_pool_destroy(iterpool);
+ /*** Step E - Save our state for the next iteration. If our
+ caller opened or added PATH as a directory, that becomes
+ our LAST_PATH. Otherwise, we use PATH's parent
+ directory. ***/
+ state->last_path = apr_pstrdup(state->pool, db ? relpath : pdir);
+
+ return SVN_NO_ERROR;
+}
+svn_error_t *
+svn_delta_path_driver_finish(svn_delta_path_driver_state_t *state,
+ apr_pool_t *scratch_pool)
+{
/* Close down any remaining open directory batons. */
- while (db_stack->nelts)
+ while (state->db_stack->nelts)
{
- SVN_ERR(pop_stack(db_stack, editor));
+ SVN_ERR(pop_stack(state->db_stack, state->editor));
}
return SVN_NO_ERROR;
diff --git a/subversion/libsvn_diff/diff_file.c b/subversion/libsvn_diff/diff_file.c
index d0182c8b3555..6d72159cfbb0 100644
--- a/subversion/libsvn_diff/diff_file.c
+++ b/subversion/libsvn_diff/diff_file.c
@@ -1253,7 +1253,7 @@ svn_diff_file_options_parse(svn_diff_file_options_t *options,
apr_array_cat(argv, args);
APR_ARRAY_PUSH(argv, const char *) = NULL;
- apr_getopt_init(&os, pool,
+ apr_getopt_init(&os, pool,
argv->nelts - 1 /* Exclude trailing NULL */,
(const char *const *) argv->elts);
diff --git a/subversion/libsvn_diff/diff_tree.c b/subversion/libsvn_diff/diff_tree.c
index 8490179c48e7..d18b242c6343 100644
--- a/subversion/libsvn_diff/diff_tree.c
+++ b/subversion/libsvn_diff/diff_tree.c
@@ -37,14 +37,6 @@
#include "private/svn_diff_tree.h"
#include "svn_private_config.h"
-typedef struct tree_processor_t
-{
- svn_diff_tree_processor_t tp;
-
- /* void *future_extension */
-} tree_processor_t;
-
-
static svn_error_t *
default_dir_opened(void **new_dir_baton,
svn_boolean_t *skip,
@@ -215,33 +207,30 @@ svn_diff_tree_processor_t *
svn_diff__tree_processor_create(void *baton,
apr_pool_t *result_pool)
{
- tree_processor_t *wrapper;
- wrapper = apr_pcalloc(result_pool, sizeof(*wrapper));
-
- wrapper->tp.baton = baton;
+ svn_diff_tree_processor_t *tp = apr_pcalloc(result_pool, sizeof(*tp));
- wrapper->tp.dir_opened = default_dir_opened;
- wrapper->tp.dir_added = default_dir_added;
- wrapper->tp.dir_deleted = default_dir_deleted;
- wrapper->tp.dir_changed = default_dir_changed;
- wrapper->tp.dir_closed = default_dir_closed;
+ tp->baton = baton;
- wrapper->tp.file_opened = default_file_opened;
- wrapper->tp.file_added = default_file_added;
- wrapper->tp.file_deleted = default_file_deleted;
- wrapper->tp.file_changed = default_file_changed;
- wrapper->tp.file_closed = default_file_closed;
+ tp->dir_opened = default_dir_opened;
+ tp->dir_added = default_dir_added;
+ tp->dir_deleted = default_dir_deleted;
+ tp->dir_changed = default_dir_changed;
+ tp->dir_closed = default_dir_closed;
- wrapper->tp.node_absent = default_node_absent;
+ tp->file_opened = default_file_opened;
+ tp->file_added = default_file_added;
+ tp->file_deleted = default_file_deleted;
+ tp->file_changed = default_file_changed;
+ tp->file_closed = default_file_closed;
+ tp->node_absent = default_node_absent;
- return &wrapper->tp;
+ return tp;
}
struct reverse_tree_baton_t
{
const svn_diff_tree_processor_t *processor;
- const char *prefix_relpath;
};
static svn_error_t *
@@ -259,9 +248,6 @@ reverse_dir_opened(void **new_dir_baton,
{
struct reverse_tree_baton_t *rb = processor->baton;
- if (rb->prefix_relpath)
- relpath = svn_relpath_join(rb->prefix_relpath, relpath, scratch_pool);
-
SVN_ERR(rb->processor->dir_opened(new_dir_baton, skip, skip_children,
relpath,
right_source, left_source,
@@ -284,9 +270,6 @@ reverse_dir_added(const char *relpath,
{
struct reverse_tree_baton_t *rb = processor->baton;
- if (rb->prefix_relpath)
- relpath = svn_relpath_join(rb->prefix_relpath, relpath, scratch_pool);
-
SVN_ERR(rb->processor->dir_deleted(relpath,
right_source,
right_props,
@@ -307,9 +290,6 @@ reverse_dir_deleted(const char *relpath,
{
struct reverse_tree_baton_t *rb = processor->baton;
- if (rb->prefix_relpath)
- relpath = svn_relpath_join(rb->prefix_relpath, relpath, scratch_pool);
-
SVN_ERR(rb->processor->dir_added(relpath,
NULL,
left_source,
@@ -335,9 +315,6 @@ reverse_dir_changed(const char *relpath,
struct reverse_tree_baton_t *rb = processor->baton;
apr_array_header_t *reversed_prop_changes = NULL;
- if (rb->prefix_relpath)
- relpath = svn_relpath_join(rb->prefix_relpath, relpath, scratch_pool);
-
if (prop_changes)
{
SVN_ERR_ASSERT(left_props != NULL && right_props != NULL);
@@ -367,9 +344,6 @@ reverse_dir_closed(const char *relpath,
{
struct reverse_tree_baton_t *rb = processor->baton;
- if (rb->prefix_relpath)
- relpath = svn_relpath_join(rb->prefix_relpath, relpath, scratch_pool);
-
SVN_ERR(rb->processor->dir_closed(relpath,
right_source,
left_source,
@@ -393,9 +367,6 @@ reverse_file_opened(void **new_file_baton,
{
struct reverse_tree_baton_t *rb = processor->baton;
- if (rb->prefix_relpath)
- relpath = svn_relpath_join(rb->prefix_relpath, relpath, scratch_pool);
-
SVN_ERR(rb->processor->file_opened(new_file_baton,
skip,
relpath,
@@ -423,9 +394,6 @@ reverse_file_added(const char *relpath,
{
struct reverse_tree_baton_t *rb = processor->baton;
- if (rb->prefix_relpath)
- relpath = svn_relpath_join(rb->prefix_relpath, relpath, scratch_pool);
-
SVN_ERR(rb->processor->file_deleted(relpath,
right_source,
right_file,
@@ -447,9 +415,6 @@ reverse_file_deleted(const char *relpath,
{
struct reverse_tree_baton_t *rb = processor->baton;
- if (rb->prefix_relpath)
- relpath = svn_relpath_join(rb->prefix_relpath, relpath, scratch_pool);
-
SVN_ERR(rb->processor->file_added(relpath,
NULL /* copyfrom src */,
left_source,
@@ -480,9 +445,6 @@ reverse_file_changed(const char *relpath,
struct reverse_tree_baton_t *rb = processor->baton;
apr_array_header_t *reversed_prop_changes = NULL;
- if (rb->prefix_relpath)
- relpath = svn_relpath_join(rb->prefix_relpath, relpath, scratch_pool);
-
if (prop_changes)
{
SVN_ERR_ASSERT(left_props != NULL && right_props != NULL);
@@ -515,9 +477,6 @@ reverse_file_closed(const char *relpath,
{
struct reverse_tree_baton_t *rb = processor->baton;
- if (rb->prefix_relpath)
- relpath = svn_relpath_join(rb->prefix_relpath, relpath, scratch_pool);
-
SVN_ERR(rb->processor->file_closed(relpath,
right_source,
left_source,
@@ -536,9 +495,6 @@ reverse_node_absent(const char *relpath,
{
struct reverse_tree_baton_t *rb = processor->baton;
- if (rb->prefix_relpath)
- relpath = svn_relpath_join(rb->prefix_relpath, relpath, scratch_pool);
-
SVN_ERR(rb->processor->node_absent(relpath,
dir_baton,
rb->processor,
@@ -549,7 +505,6 @@ reverse_node_absent(const char *relpath,
const svn_diff_tree_processor_t *
svn_diff__tree_processor_reverse_create(const svn_diff_tree_processor_t * processor,
- const char *prefix_relpath,
apr_pool_t *result_pool)
{
struct reverse_tree_baton_t *rb;
@@ -557,8 +512,6 @@ svn_diff__tree_processor_reverse_create(const svn_diff_tree_processor_t * proces
rb = apr_pcalloc(result_pool, sizeof(*rb));
rb->processor = processor;
- if (prefix_relpath)
- rb->prefix_relpath = apr_pstrdup(result_pool, prefix_relpath);
reverse = svn_diff__tree_processor_create(rb, result_pool);
diff --git a/subversion/libsvn_diff/libsvn_diff.pc.in b/subversion/libsvn_diff/libsvn_diff.pc.in
index eed9d886a9ac..34ec384f2ada 100644
--- a/subversion/libsvn_diff/libsvn_diff.pc.in
+++ b/subversion/libsvn_diff/libsvn_diff.pc.in
@@ -6,7 +6,7 @@ includedir=@includedir@
Name: libsvn_diff
Description: Subversion Diff Library
Version: @PACKAGE_VERSION@
-Requires: apr-@SVN_APR_MAJOR_VERSION@
-Requires.private: libsvn_subr
-Libs: -L${libdir} -lsvn_diff @SVN_ZLIB_LIBS@
-Cflags: -I${includedir}
+Requires: apr-@SVN_APR_MAJOR_VERSION@
+Requires.private: libsvn_subr
+Libs: -L${libdir} -lsvn_diff-1 @SVN_ZLIB_LIBS@
+Cflags: -I${includedir}/subversion-1
diff --git a/subversion/libsvn_diff/parse-diff.c b/subversion/libsvn_diff/parse-diff.c
index f2159694c4f6..4fc5bfd46d73 100644
--- a/subversion/libsvn_diff/parse-diff.c
+++ b/subversion/libsvn_diff/parse-diff.c
@@ -69,6 +69,11 @@ struct svn_diff_hunk_t {
/* APR file handle to the patch file this hunk came from. */
apr_file_t *apr_file;
+ /* Whether the hunk was interpreted as pretty-print mergeinfo. If so,
+ the hunk content is in PATCH and the rest of this hunk object is
+ mostly uninitialized. */
+ svn_boolean_t is_pretty_print_mergeinfo;
+
/* Ranges used to keep track of this hunk's texts positions within
* the patch file. */
struct svn_diff__hunk_range diff_text_range;
@@ -210,7 +215,7 @@ svn_diff_hunk__create_adds_single_line(svn_diff_hunk_t **hunk_out,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
- SVN_ERR(add_or_delete_single_line(hunk_out, line, patch,
+ SVN_ERR(add_or_delete_single_line(hunk_out, line, patch,
(!patch->reverse),
result_pool, scratch_pool));
return SVN_NO_ERROR;
@@ -899,10 +904,6 @@ parse_prop_name(const char **prop_name, const char *header,
* The hunk header has the following format:
* ## -0,NUMBER_OF_REVERSE_MERGES +0,NUMBER_OF_FORWARD_MERGES ##
*
- * At this point, the number of reverse merges has already been
- * parsed into HUNK->ORIGINAL_LENGTH, and the number of forward
- * merges has been parsed into HUNK->MODIFIED_LENGTH.
- *
* The header is followed by a list of mergeinfo, one path per line.
* This function parses such lines. Lines describing reverse merges
* appear first, and then all lines describing forward merges appear.
@@ -914,18 +915,27 @@ parse_prop_name(const char **prop_name, const char *header,
* ":r", which in turn is followed by a mergeinfo revision range,
* which is terminated by whitespace or end-of-string.
*
- * If the current line meets the above criteria and we're able
- * to parse valid mergeinfo from it, the resulting mergeinfo
- * is added to patch->mergeinfo or patch->reverse_mergeinfo,
- * and we proceed to the next line.
+ * *NUMBER_OF_REVERSE_MERGES and *NUMBER_OF_FORWARD_MERGES are the
+ * numbers of reverse and forward merges remaining to be read. This
+ * function decrements *NUMBER_OF_REVERSE_MERGES for each LINE
+ * parsed until that is zero, then *NUMBER_OF_FORWARD_MERGES for
+ * each LINE parsed until that is zero. If both are zero, it parses
+ * and discards LINE.
+ *
+ * If LINE is successfully parsed, *FOUND_MERGEINFO is set to TRUE,
+ * otherwise to FALSE.
+ *
+ * If LINE is successfully parsed and counted, the resulting mergeinfo
+ * is added to PATCH->mergeinfo or PATCH->reverse_mergeinfo.
*/
static svn_error_t *
-parse_mergeinfo(svn_boolean_t *found_mergeinfo,
- svn_stringbuf_t *line,
- svn_diff_hunk_t *hunk,
- svn_patch_t *patch,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
+parse_pretty_mergeinfo_line(svn_boolean_t *found_mergeinfo,
+ svn_linenum_t *number_of_reverse_merges,
+ svn_linenum_t *number_of_forward_merges,
+ svn_stringbuf_t *line,
+ svn_patch_t *patch,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
{
char *slash = strchr(line->data, '/');
char *colon = strrchr(line->data, ':');
@@ -972,7 +982,7 @@ parse_mergeinfo(svn_boolean_t *found_mergeinfo,
if (mergeinfo)
{
- if (hunk->original_length > 0) /* reverse merges */
+ if (*number_of_reverse_merges > 0) /* reverse merges */
{
if (patch->reverse)
{
@@ -994,9 +1004,9 @@ parse_mergeinfo(svn_boolean_t *found_mergeinfo,
result_pool,
scratch_pool));
}
- hunk->original_length--;
+ (*number_of_reverse_merges)--;
}
- else if (hunk->modified_length > 0) /* forward merges */
+ else if (number_of_forward_merges > 0) /* forward merges */
{
if (patch->reverse)
{
@@ -1018,7 +1028,7 @@ parse_mergeinfo(svn_boolean_t *found_mergeinfo,
result_pool,
scratch_pool));
}
- hunk->modified_length--;
+ (*number_of_forward_merges)--;
}
*found_mergeinfo = TRUE;
@@ -1165,18 +1175,48 @@ parse_next_hunk(svn_diff_hunk_t **hunk,
if (in_hunk && *is_property && *prop_name &&
strcmp(*prop_name, SVN_PROP_MERGEINFO) == 0)
{
- svn_boolean_t found_mergeinfo;
+ svn_boolean_t found_pretty_mergeinfo_line;
- SVN_ERR(parse_mergeinfo(&found_mergeinfo, line, *hunk, patch,
- result_pool, iterpool));
- if (found_mergeinfo)
- continue; /* Proceed to the next line in the svn:mergeinfo hunk. */
- else
+ if (! hunk_seen)
{
- /* Perhaps we can also use original_lines/modified_lines here */
+ /* We're reading the first line of the hunk, so the start
+ * of the line just read is the hunk text's byte offset. */
+ start = last_line;
+ }
- in_hunk = FALSE; /* On to next property */
+ SVN_ERR(parse_pretty_mergeinfo_line(&found_pretty_mergeinfo_line,
+ &original_lines, &modified_lines,
+ line, patch,
+ result_pool, iterpool));
+ if (found_pretty_mergeinfo_line)
+ {
+ hunk_seen = TRUE;
+ (*hunk)->is_pretty_print_mergeinfo = TRUE;
+ continue; /* Proceed to the next line in the svn:mergeinfo hunk. */
}
+
+ if ((*hunk)->is_pretty_print_mergeinfo)
+ {
+ /* We have reached the end of the pretty-print-mergeinfo hunk.
+ (This format uses only one hunk.) */
+ if (eof)
+ {
+ /* The hunk ends at EOF. */
+ end = pos;
+ }
+ else
+ {
+ /* The start of the current line marks the first byte
+ * after the hunk text. */
+ end = last_line;
+ }
+ original_end = end;
+ modified_end = end;
+ break;
+ }
+
+ /* Otherwise, this is a property diff in the
+ regular format so fall through to normal processing. */
}
if (in_hunk)
@@ -1195,7 +1235,7 @@ parse_next_hunk(svn_diff_hunk_t **hunk,
c = line->data[0];
if (c == ' '
|| ((original_lines > 0 && modified_lines > 0)
- && (
+ && (
/* Tolerate chopped leading spaces on empty lines. */
(! eof && line->len == 0)
/* Maybe tolerate chopped leading spaces on non-empty lines. */
@@ -1971,10 +2011,10 @@ parse_hunks(svn_patch_t *patch, apr_file_t *apr_file,
else
last_prop_name = prop_name;
- /* Skip svn:mergeinfo properties.
- * Mergeinfo data cannot be represented as a hunk and
+ /* Skip pretty-printed svn:mergeinfo property hunks.
+ * Pretty-printed mergeinfo data cannot be represented as a hunk and
* is therefore stored in PATCH itself. */
- if (strcmp(prop_name, SVN_PROP_MERGEINFO) == 0)
+ if (hunk->is_pretty_print_mergeinfo)
continue;
SVN_ERR(add_property_hunk(patch, prop_name, hunk, prop_operation,
@@ -2045,7 +2085,7 @@ parse_binary_patch(svn_patch_t *patch, apr_file_t *apr_file,
else if (in_src)
{
patch->binary_patch = bpatch; /* SUCCESS! */
- break;
+ break;
}
else
{
diff --git a/subversion/libsvn_fs/fs-loader.c b/subversion/libsvn_fs/fs-loader.c
index f898d8a56a6a..3840f225419c 100644
--- a/subversion/libsvn_fs/fs-loader.c
+++ b/subversion/libsvn_fs/fs-loader.c
@@ -2221,3 +2221,42 @@ svn_fs_info_dup(const void *info_void,
return apr_pmemdup(result_pool, info, sizeof(*info));
}
+svn_error_t *
+svn_fs_ioctl(svn_fs_t *fs,
+ svn_fs_ioctl_code_t ctlcode,
+ void *input,
+ void **output_p,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ void *output;
+
+ if (fs)
+ {
+ if (!fs->vtable->ioctl)
+ return svn_error_create(SVN_ERR_FS_UNRECOGNIZED_IOCTL_CODE, NULL, NULL);
+
+ SVN_ERR(fs->vtable->ioctl(fs, ctlcode, input, &output,
+ cancel_func, cancel_baton,
+ result_pool, scratch_pool));
+ }
+ else
+ {
+ fs_library_vtable_t *vtable;
+
+ SVN_ERR(get_library_vtable(&vtable, ctlcode.fs_type, scratch_pool));
+
+ if (!vtable->ioctl)
+ return svn_error_create(SVN_ERR_FS_UNRECOGNIZED_IOCTL_CODE, NULL, NULL);
+
+ SVN_ERR(vtable->ioctl(ctlcode, input, &output,
+ cancel_func, cancel_baton,
+ result_pool, scratch_pool));
+ }
+
+ if (output_p)
+ *output_p = output;
+ return SVN_NO_ERROR;
+}
diff --git a/subversion/libsvn_fs/fs-loader.h b/subversion/libsvn_fs/fs-loader.h
index 0712c23307d9..35b55d644e2b 100644
--- a/subversion/libsvn_fs/fs-loader.h
+++ b/subversion/libsvn_fs/fs-loader.h
@@ -159,6 +159,13 @@ typedef struct fs_library_vtable_t
/* For svn_fs_info_fsfs_dup(). */
void *(*info_fsap_dup)(const void *fsap_info,
apr_pool_t *result_pool);
+
+ svn_error_t *(*ioctl)(svn_fs_ioctl_code_t ctlcode,
+ void *input, void **output_p,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
} fs_library_vtable_t;
/* This is the type of symbol an FS module defines to fetch the
@@ -200,12 +207,12 @@ typedef struct fs_vtable_t
svn_error_t *(*revision_prop)(svn_string_t **value_p, svn_fs_t *fs,
svn_revnum_t rev, const char *propname,
svn_boolean_t refresh,
- apr_pool_t *result_pool,
+ apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
svn_error_t *(*revision_proplist)(apr_hash_t **table_p, svn_fs_t *fs,
svn_revnum_t rev,
svn_boolean_t refresh,
- apr_pool_t *result_pool,
+ apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
svn_error_t *(*change_rev_prop)(svn_fs_t *fs, svn_revnum_t rev,
const char *name,
@@ -266,6 +273,12 @@ typedef struct fs_vtable_t
svn_error_t *(*bdb_set_errcall)(svn_fs_t *fs,
void (*handler)(const char *errpfx,
char *msg));
+ svn_error_t *(*ioctl)(svn_fs_t *fs, svn_fs_ioctl_code_t ctlcode,
+ void *input, void **output_p,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
} fs_vtable_t;
diff --git a/subversion/libsvn_fs/libsvn_fs.pc.in b/subversion/libsvn_fs/libsvn_fs.pc.in
index 67154f01d7dc..d9a8b0b7a0b0 100644
--- a/subversion/libsvn_fs/libsvn_fs.pc.in
+++ b/subversion/libsvn_fs/libsvn_fs.pc.in
@@ -6,7 +6,7 @@ includedir=@includedir@
Name: libsvn_fs
Description: Subversion Repository Filesystem Library
Version: @PACKAGE_VERSION@
-Requires: apr-util-@SVN_APR_MAJOR_VERSION@ apr-@SVN_APR_MAJOR_VERSION@
-Requires.private: libsvn_fs_util libsvn_delta libsvn_subr
-Libs: -L${libdir} -lsvn_fs
-Cflags: -I${includedir}
+Requires: apr-util-@SVN_APR_MAJOR_VERSION@, apr-@SVN_APR_MAJOR_VERSION@
+Requires.private: libsvn_fs_util, libsvn_delta, libsvn_subr
+Libs: -L${libdir} -lsvn_fs-1
+Cflags: -I${includedir}/subversion-1
diff --git a/subversion/libsvn_fs_base/fs.c b/subversion/libsvn_fs_base/fs.c
index 903225725f06..0239a6c017c1 100644
--- a/subversion/libsvn_fs_base/fs.c
+++ b/subversion/libsvn_fs_base/fs.c
@@ -574,6 +574,7 @@ static fs_vtable_t fs_vtable = {
base_bdb_verify_root,
base_bdb_freeze,
base_bdb_set_errcall,
+ NULL /* ioctl */
};
/* Where the format number is stored. */
@@ -1515,7 +1516,8 @@ static fs_library_vtable_t library_vtable = {
base_bdb_logfiles,
svn_fs_base__id_parse,
base_set_svn_fs_open,
- NULL /* info_fsap_dup */
+ NULL /* info_fsap_dup */,
+ NULL /* ioctl */
};
svn_error_t *
diff --git a/subversion/libsvn_fs_base/libsvn_fs_base.pc.in b/subversion/libsvn_fs_base/libsvn_fs_base.pc.in
index ef44eafca7a7..0e8a1586778d 100644
--- a/subversion/libsvn_fs_base/libsvn_fs_base.pc.in
+++ b/subversion/libsvn_fs_base/libsvn_fs_base.pc.in
@@ -6,7 +6,7 @@ includedir=@includedir@
Name: libsvn_fs_base
Description: Subversion Filesystem Base Library
Version: @PACKAGE_VERSION@
-Requires: apr-util-@SVN_APR_MAJOR_VERSION@ apr-@SVN_APR_MAJOR_VERSION@
-Requires.private: libsvn_delta libsvn_subr libsvn_fs_util
-Libs: -L${libdir} -lsvn_fs_base @SVN_DB_LIBS@
-Cflags: -I${includedir}
+Requires: apr-util-@SVN_APR_MAJOR_VERSION@, apr-@SVN_APR_MAJOR_VERSION@
+Requires.private: libsvn_delta, libsvn_subr, libsvn_fs_util
+Libs: -L${libdir} -lsvn_fs_base-1 @SVN_DB_LIBS@
+Cflags: -I${includedir}/subversion-1
diff --git a/subversion/libsvn_fs_fs/cached_data.c b/subversion/libsvn_fs_fs/cached_data.c
index 1bd82481daa6..9778dba908f0 100644
--- a/subversion/libsvn_fs_fs/cached_data.c
+++ b/subversion/libsvn_fs_fs/cached_data.c
@@ -2337,7 +2337,7 @@ svn_fs_fs__get_contents_from_file(svn_stream_t **contents_p,
rb->filehandle_pool));
/* Insert the access to REP as the first element of the delta chain. */
- svn_sort__array_insert(rb->rs_list, &rs, 0);
+ SVN_ERR(svn_sort__array_insert2(rb->rs_list, &rs, 0));
}
/* Now, the baton is complete and we can assemble the stream around it. */
diff --git a/subversion/libsvn_fs_fs/cached_data.h b/subversion/libsvn_fs_fs/cached_data.h
index 7b25fcf43cda..cdf3bfbc166f 100644
--- a/subversion/libsvn_fs_fs/cached_data.h
+++ b/subversion/libsvn_fs_fs/cached_data.h
@@ -171,7 +171,7 @@ svn_fs_fs__get_proplist(apr_hash_t **proplist,
apr_pool_t *pool);
/* Create a changes retrieval context object in *RESULT_POOL and return it
- * in *CONTEXT. It will allow svn_fs_x__get_changes to fetch consecutive
+ * in *CONTEXT. It will allow svn_fs_fs__get_changes to fetch consecutive
* blocks (one per invocation) from REV's changed paths list in FS. */
svn_error_t *
svn_fs_fs__create_changes_context(svn_fs_fs__changes_context_t **context,
diff --git a/subversion/libsvn_fs_fs/dag.c b/subversion/libsvn_fs_fs/dag.c
index 714235dd0ee0..2630af5605cf 100644
--- a/subversion/libsvn_fs_fs/dag.c
+++ b/subversion/libsvn_fs_fs/dag.c
@@ -1166,7 +1166,7 @@ svn_fs_fs__dag_serialize(void **data,
(const void * const *)&node->node_pool);
/* serialize other sub-structures */
- svn_fs_fs__id_serialize(context, (const svn_fs_id_t **)&node->id);
+ svn_fs_fs__id_serialize(context, (const svn_fs_id_t *const *)&node->id);
svn_fs_fs__id_serialize(context, &node->fresh_root_predecessor_id);
svn_temp_serializer__add_string(context, &node->created_path);
diff --git a/subversion/libsvn_fs_fs/dump-index.c b/subversion/libsvn_fs_fs/dump-index.c
index c97be10a41fc..c62622b6491b 100644
--- a/subversion/libsvn_fs_fs/dump-index.c
+++ b/subversion/libsvn_fs_fs/dump-index.c
@@ -21,8 +21,8 @@
*/
#include "svn_pools.h"
-#include "private/svn_fs_fs_private.h"
+#include "fs_fs.h"
#include "index.h"
#include "rev_file.h"
#include "util.h"
diff --git a/subversion/libsvn_fs_fs/fs.c b/subversion/libsvn_fs_fs/fs.c
index 508ecdbaba33..5174da2e4941 100644
--- a/subversion/libsvn_fs_fs/fs.c
+++ b/subversion/libsvn_fs_fs/fs.c
@@ -47,6 +47,7 @@
#include "verify.h"
#include "svn_private_config.h"
#include "private/svn_fs_util.h"
+#include "private/svn_fs_fs_private.h"
#include "../libsvn_fs/fs-loader.h"
@@ -254,6 +255,83 @@ fs_set_uuid(svn_fs_t *fs,
}
+static svn_error_t *
+fs_ioctl(svn_fs_t *fs, svn_fs_ioctl_code_t ctlcode,
+ void *input_void, void **output_p,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ if (strcmp(ctlcode.fs_type, SVN_FS_TYPE_FSFS) == 0)
+ {
+ if (ctlcode.code == SVN_FS_FS__IOCTL_GET_STATS.code)
+ {
+ svn_fs_fs__ioctl_get_stats_input_t *input = input_void;
+ svn_fs_fs__ioctl_get_stats_output_t *output;
+
+ output = apr_pcalloc(result_pool, sizeof(*output));
+ SVN_ERR(svn_fs_fs__get_stats(&output->stats, fs,
+ input->progress_func,
+ input->progress_baton,
+ cancel_func, cancel_baton,
+ result_pool, scratch_pool));
+ *output_p = output;
+ return SVN_NO_ERROR;
+ }
+ else if (ctlcode.code == SVN_FS_FS__IOCTL_DUMP_INDEX.code)
+ {
+ svn_fs_fs__ioctl_dump_index_input_t *input = input_void;
+
+ SVN_ERR(svn_fs_fs__dump_index(fs, input->revision,
+ input->callback_func,
+ input->callback_baton,
+ cancel_func, cancel_baton,
+ scratch_pool));
+ *output_p = NULL;
+ return SVN_NO_ERROR;
+ }
+ else if (ctlcode.code == SVN_FS_FS__IOCTL_LOAD_INDEX.code)
+ {
+ svn_fs_fs__ioctl_load_index_input_t *input = input_void;
+
+ SVN_ERR(svn_fs_fs__load_index(fs, input->revision, input->entries,
+ scratch_pool));
+ *output_p = NULL;
+ return SVN_NO_ERROR;
+ }
+ else if (ctlcode.code == SVN_FS_FS__IOCTL_REVISION_SIZE.code)
+ {
+ svn_fs_fs__ioctl_revision_size_input_t *input = input_void;
+ svn_fs_fs__ioctl_revision_size_output_t *output
+ = apr_pcalloc(result_pool, sizeof(*output));
+
+ SVN_ERR(svn_fs_fs__revision_size(&output->rev_size,
+ fs, input->revision,
+ scratch_pool));
+ *output_p = output;
+ return SVN_NO_ERROR;
+ }
+ else if (ctlcode.code == SVN_FS_FS__IOCTL_BUILD_REP_CACHE.code)
+ {
+ svn_fs_fs__ioctl_build_rep_cache_input_t *input = input_void;
+
+ SVN_ERR(svn_fs_fs__build_rep_cache(fs,
+ input->start_rev,
+ input->end_rev,
+ input->progress_func,
+ input->progress_baton,
+ cancel_func,
+ cancel_baton,
+ scratch_pool));
+
+ *output_p = NULL;
+ return SVN_NO_ERROR;
+ }
+ }
+
+ return svn_error_create(SVN_ERR_FS_UNRECOGNIZED_IOCTL_CODE, NULL, NULL);
+}
/* The vtable associated with a specific open filesystem. */
static fs_vtable_t fs_vtable = {
@@ -279,7 +357,8 @@ static fs_vtable_t fs_vtable = {
fs_info,
svn_fs_fs__verify_root,
fs_freeze,
- fs_set_errcall
+ fs_set_errcall,
+ fs_ioctl
};
@@ -602,7 +681,8 @@ static fs_library_vtable_t library_vtable = {
fs_logfiles,
NULL /* parse_id */,
fs_set_svn_fs_open,
- fs_info_dup
+ fs_info_dup,
+ NULL /* ioctl */
};
svn_error_t *
diff --git a/subversion/libsvn_fs_fs/fs_fs.c b/subversion/libsvn_fs_fs/fs_fs.c
index 5cb1362d8451..76b053e23229 100644
--- a/subversion/libsvn_fs_fs/fs_fs.c
+++ b/subversion/libsvn_fs_fs/fs_fs.c
@@ -37,6 +37,7 @@
#include "cached_data.h"
#include "id.h"
#include "index.h"
+#include "low_level.h"
#include "rep-cache.h"
#include "revprops.h"
#include "transaction.h"
@@ -2343,3 +2344,172 @@ svn_fs_fs__info_config_files(apr_array_header_t **files,
result_pool);
return SVN_NO_ERROR;
}
+
+static svn_error_t *
+ensure_representation_sha1(svn_fs_t *fs,
+ representation_t *rep,
+ apr_pool_t *pool)
+{
+ if (!rep->has_sha1)
+ {
+ svn_stream_t *contents;
+ svn_checksum_t *checksum;
+
+ SVN_ERR(svn_fs_fs__get_contents(&contents, fs, rep, FALSE, pool));
+ SVN_ERR(svn_stream_contents_checksum(&checksum, contents,
+ svn_checksum_sha1, pool, pool));
+
+ memcpy(rep->sha1_digest, checksum->digest, APR_SHA1_DIGESTSIZE);
+ rep->has_sha1 = TRUE;
+ }
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+reindex_node(svn_fs_t *fs,
+ const svn_fs_id_t *id,
+ svn_revnum_t rev,
+ svn_fs_fs__revision_file_t *rev_file,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ apr_pool_t *pool)
+{
+ node_revision_t *noderev;
+ apr_off_t offset;
+
+ if (svn_fs_fs__id_rev(id) != rev)
+ {
+ return SVN_NO_ERROR;
+ }
+
+ if (cancel_func)
+ SVN_ERR(cancel_func(cancel_baton));
+
+ SVN_ERR(svn_fs_fs__item_offset(&offset, fs, rev_file, rev, NULL,
+ svn_fs_fs__id_item(id), pool));
+
+ SVN_ERR(svn_io_file_seek(rev_file->file, APR_SET, &offset, pool));
+ SVN_ERR(svn_fs_fs__read_noderev(&noderev, rev_file->stream,
+ pool, pool));
+
+ /* Make sure EXPANDED_SIZE has the correct value for every rep. */
+ SVN_ERR(svn_fs_fs__fixup_expanded_size(fs, noderev->data_rep, pool));
+ SVN_ERR(svn_fs_fs__fixup_expanded_size(fs, noderev->prop_rep, pool));
+
+ /* First reindex sub-directory to match write_final_rev() behavior. */
+ if (noderev->kind == svn_node_dir)
+ {
+ apr_array_header_t *entries;
+
+ SVN_ERR(svn_fs_fs__rep_contents_dir(&entries, fs, noderev, pool, pool));
+
+ if (entries->nelts > 0)
+ {
+ int i;
+ apr_pool_t *iterpool;
+
+ iterpool = svn_pool_create(pool);
+ for (i = 0; i < entries->nelts; i++)
+ {
+ const svn_fs_dirent_t *dirent;
+
+ svn_pool_clear(iterpool);
+
+ dirent = APR_ARRAY_IDX(entries, i, svn_fs_dirent_t *);
+
+ SVN_ERR(reindex_node(fs, dirent->id, rev, rev_file,
+ cancel_func, cancel_baton, iterpool));
+ }
+ svn_pool_destroy(iterpool);
+ }
+ }
+
+ if (noderev->data_rep && noderev->data_rep->revision == rev &&
+ noderev->kind == svn_node_file)
+ {
+ SVN_ERR(ensure_representation_sha1(fs, noderev->data_rep, pool));
+ SVN_ERR(svn_fs_fs__set_rep_reference(fs, noderev->data_rep, pool));
+ }
+
+ if (noderev->prop_rep && noderev->prop_rep->revision == rev)
+ {
+ SVN_ERR(ensure_representation_sha1(fs, noderev->prop_rep, pool));
+ SVN_ERR(svn_fs_fs__set_rep_reference(fs, noderev->prop_rep, pool));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_fs_fs__build_rep_cache(svn_fs_t *fs,
+ svn_revnum_t start_rev,
+ svn_revnum_t end_rev,
+ svn_fs_progress_notify_func_t progress_func,
+ void *progress_baton,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ apr_pool_t *pool)
+{
+ fs_fs_data_t *ffd = fs->fsap_data;
+ apr_pool_t *iterpool;
+ svn_revnum_t rev;
+
+ if (ffd->format < SVN_FS_FS__MIN_REP_SHARING_FORMAT)
+ {
+ return svn_error_createf(SVN_ERR_FS_REP_SHARING_NOT_SUPPORTED, NULL,
+ _("FSFS format (%d) too old for rep-sharing; "
+ "please upgrade the filesystem."),
+ ffd->format);
+ }
+
+ if (!ffd->rep_sharing_allowed)
+ {
+ return svn_error_create(SVN_ERR_FS_REP_SHARING_NOT_ALLOWED, NULL,
+ _("Filesystem does not allow rep-sharing."));
+ }
+
+ /* Do not build rep-cache for revision zero to match
+ * svn_fs_fs__create() behavior. */
+ if (start_rev == SVN_INVALID_REVNUM)
+ start_rev = 1;
+
+ if (end_rev == SVN_INVALID_REVNUM)
+ SVN_ERR(svn_fs_fs__youngest_rev(&end_rev, fs, pool));
+
+ /* Do nothing for empty FS. */
+ if (start_rev > end_rev)
+ {
+ return SVN_NO_ERROR;
+ }
+
+ if (!ffd->rep_cache_db)
+ SVN_ERR(svn_fs_fs__open_rep_cache(fs, pool));
+
+ iterpool = svn_pool_create(pool);
+ for (rev = start_rev; rev <= end_rev; rev++)
+ {
+ svn_fs_id_t *root_id;
+ svn_fs_fs__revision_file_t *file;
+ svn_error_t *err;
+
+ svn_pool_clear(iterpool);
+
+ if (progress_func)
+ progress_func(rev, progress_baton, iterpool);
+
+ SVN_ERR(svn_fs_fs__open_pack_or_rev_file(&file, fs, rev,
+ iterpool, iterpool));
+ SVN_ERR(svn_fs_fs__rev_get_root(&root_id, fs, rev, iterpool, iterpool));
+
+ SVN_ERR(svn_sqlite__begin_transaction(ffd->rep_cache_db));
+ err = reindex_node(fs, root_id, rev, file, cancel_func, cancel_baton, iterpool);
+ SVN_ERR(svn_sqlite__finish_transaction(ffd->rep_cache_db, err));
+
+ SVN_ERR(svn_fs_fs__close_revision_file(file));
+ }
+
+ svn_pool_destroy(iterpool);
+
+ return SVN_NO_ERROR;
+}
diff --git a/subversion/libsvn_fs_fs/fs_fs.h b/subversion/libsvn_fs_fs/fs_fs.h
index cef95fe3209e..b233be1b2ea1 100644
--- a/subversion/libsvn_fs_fs/fs_fs.h
+++ b/subversion/libsvn_fs_fs/fs_fs.h
@@ -304,4 +304,75 @@ svn_fs_fs__initialize_txn_caches(svn_fs_t *fs,
void
svn_fs_fs__reset_txn_caches(svn_fs_t *fs);
+/* Scan all contents of the repository FS and return statistics in *STATS,
+ * allocated in RESULT_POOL. Report progress through PROGRESS_FUNC with
+ * PROGRESS_BATON, if PROGRESS_FUNC is not NULL.
+ * Use SCRATCH_POOL for temporary allocations.
+ */
+svn_error_t *
+svn_fs_fs__get_stats(svn_fs_fs__stats_t **stats,
+ svn_fs_t *fs,
+ svn_fs_progress_notify_func_t progress_func,
+ void *progress_baton,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/* Read the P2L index for the rev / pack file containing REVISION in FS.
+ * For each index entry, invoke CALLBACK_FUNC with CALLBACK_BATON.
+ * If not NULL, call CANCEL_FUNC with CANCEL_BATON from time to time.
+ * Use SCRATCH_POOL for temporary allocations.
+ */
+svn_error_t *
+svn_fs_fs__dump_index(svn_fs_t *fs,
+ svn_revnum_t revision,
+ svn_fs_fs__dump_index_func_t callback_func,
+ void *callback_baton,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ apr_pool_t *scratch_pool);
+
+
+/* Rewrite the respective index information of the rev / pack file in FS
+ * containing REVISION and use the svn_fs_fs__p2l_entry_t * array ENTRIES
+ * as the new index contents. Allocate temporaries from SCRATCH_POOL.
+ *
+ * Note that this becomes a no-op if ENTRIES is empty. You may use a zero-
+ * sized empty entry instead.
+ */
+svn_error_t *
+svn_fs_fs__load_index(svn_fs_t *fs,
+ svn_revnum_t revision,
+ apr_array_header_t *entries,
+ apr_pool_t *scratch_pool);
+
+/* Set *REV_SIZE to the total size of objects belonging to revision REVISION
+ * in FS. The size includes revision properties and excludes indexes.
+ */
+svn_error_t *
+svn_fs_fs__revision_size(apr_off_t *rev_size,
+ svn_fs_t *fs,
+ svn_revnum_t revision,
+ apr_pool_t *scratch_pool);
+
+/* Add missing entries to the rep-cache on the filesystem FS. Process data
+ * in revisions START_REV through END_REV inclusive. If START_REV is
+ * SVN_INVALID_REVNUM, start at revision 1; if END_REV is SVN_INVALID_REVNUM,
+ * end at the head revision. If the rep-cache does not exist, then create it.
+ *
+ * Indicate progress via the optional PROGRESS_FUNC callback using
+ * PROGRESS_BATON. The optional CANCEL_FUNC will periodically be called with
+ * CANCEL_BATON to allow cancellation. Use POOL for temporary allocations.
+ */
+svn_error_t *
+svn_fs_fs__build_rep_cache(svn_fs_t *fs,
+ svn_revnum_t start_rev,
+ svn_revnum_t end_rev,
+ svn_fs_progress_notify_func_t progress_func,
+ void *progress_baton,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ apr_pool_t *pool);
+
#endif
diff --git a/subversion/libsvn_fs_fs/id.c b/subversion/libsvn_fs_fs/id.c
index d22b8f776359..5f2730305a06 100644
--- a/subversion/libsvn_fs_fs/id.c
+++ b/subversion/libsvn_fs_fs/id.c
@@ -591,7 +591,8 @@ svn_fs_fs__id_parse(const svn_fs_id_t **id_p,
svn_fs_id_t *id = id_parse(data, pool);
if (id == NULL)
return svn_error_createf(SVN_ERR_FS_MALFORMED_NODEREV_ID, NULL,
- "Malformed node revision ID string");
+ "Malformed node revision ID string '%s'",
+ data);
*id_p = id;
diff --git a/subversion/libsvn_fs_fs/index.c b/subversion/libsvn_fs_fs/index.c
index 1cb8fba80ad6..b7ba79f96313 100644
--- a/subversion/libsvn_fs_fs/index.c
+++ b/subversion/libsvn_fs_fs/index.c
@@ -3191,9 +3191,9 @@ compare_p2l_entry_revision(const void *lhs,
const void *rhs)
{
const svn_fs_fs__p2l_entry_t *lhs_entry
- =*(const svn_fs_fs__p2l_entry_t **)lhs;
+ =*(const svn_fs_fs__p2l_entry_t *const *)lhs;
const svn_fs_fs__p2l_entry_t *rhs_entry
- =*(const svn_fs_fs__p2l_entry_t **)rhs;
+ =*(const svn_fs_fs__p2l_entry_t *const *)rhs;
if (lhs_entry->item.revision < rhs_entry->item.revision)
return -1;
diff --git a/subversion/libsvn_fs_fs/libsvn_fs_fs.pc.in b/subversion/libsvn_fs_fs/libsvn_fs_fs.pc.in
index 324a709eedea..2a2d624d9b21 100644
--- a/subversion/libsvn_fs_fs/libsvn_fs_fs.pc.in
+++ b/subversion/libsvn_fs_fs/libsvn_fs_fs.pc.in
@@ -6,7 +6,7 @@ includedir=@includedir@
Name: libsvn_fs_fs
Description: Subversion FSFS Repository Filesystem Library
Version: @PACKAGE_VERSION@
-Requires: apr-util-@SVN_APR_MAJOR_VERSION@ apr-@SVN_APR_MAJOR_VERSION@
-Requires.private: libsvn_delta libsvn_subr libsvn_fs_util
-Libs: -L${libdir} -lsvn_fs_fs
-Cflags: -I${includedir}
+Requires: apr-util-@SVN_APR_MAJOR_VERSION@, apr-@SVN_APR_MAJOR_VERSION@
+Requires.private: libsvn_delta, libsvn_subr, libsvn_fs_util
+Libs: -L${libdir} -lsvn_fs_fs-1
+Cflags: -I${includedir}/subversion-1
diff --git a/subversion/libsvn_fs_fs/load-index.c b/subversion/libsvn_fs_fs/load-index.c
index 0ba66725d35c..8608cb204dd2 100644
--- a/subversion/libsvn_fs_fs/load-index.c
+++ b/subversion/libsvn_fs_fs/load-index.c
@@ -22,9 +22,9 @@
#include "svn_pools.h"
-#include "private/svn_fs_fs_private.h"
#include "private/svn_sorts_private.h"
+#include "fs_fs.h"
#include "index.h"
#include "util.h"
#include "transaction.h"
@@ -83,9 +83,9 @@ compare_p2l_entry_revision(const void *lhs,
const void *rhs)
{
const svn_fs_fs__p2l_entry_t *lhs_entry
- =*(const svn_fs_fs__p2l_entry_t **)lhs;
+ =*(const svn_fs_fs__p2l_entry_t *const *)lhs;
const svn_fs_fs__p2l_entry_t *rhs_entry
- =*(const svn_fs_fs__p2l_entry_t **)rhs;
+ =*(const svn_fs_fs__p2l_entry_t *const *)rhs;
if (lhs_entry->offset < rhs_entry->offset)
return -1;
diff --git a/subversion/libsvn_fs_fs/low_level.c b/subversion/libsvn_fs_fs/low_level.c
index 2854bc6e2d84..906f47fc22dc 100644
--- a/subversion/libsvn_fs_fs/low_level.c
+++ b/subversion/libsvn_fs_fs/low_level.c
@@ -254,10 +254,10 @@ svn_fs_fs__parse_footer(apr_off_t *l2p_offset,
"P2L offset %s must be larger than L2P offset %s"
" in r%ld footer",
apr_psprintf(result_pool,
- "%" APR_UINT64_T_HEX_FMT,
+ "0x%" APR_UINT64_T_HEX_FMT,
(apr_uint64_t)*p2l_offset),
apr_psprintf(result_pool,
- "%" APR_UINT64_T_HEX_FMT,
+ "0x%" APR_UINT64_T_HEX_FMT,
(apr_uint64_t)*l2p_offset),
rev);
@@ -506,7 +506,7 @@ svn_fs_fs__read_changes(apr_array_header_t **changes,
SVN_ERR(read_change(&change, stream, result_pool, iterpool));
if (!change)
break;
-
+
APR_ARRAY_PUSH(*changes, change_t*) = change;
}
svn_pool_destroy(iterpool);
@@ -670,7 +670,7 @@ svn_fs_fs__write_changes(svn_stream_t *stream,
}
if (terminate_list)
- svn_stream_puts(stream, "\n");
+ SVN_ERR(svn_stream_puts(stream, "\n"));
svn_pool_destroy(iterpool);
diff --git a/subversion/libsvn_fs_fs/pack.c b/subversion/libsvn_fs_fs/pack.c
index 1119857998fc..c9e2b4dd4e55 100644
--- a/subversion/libsvn_fs_fs/pack.c
+++ b/subversion/libsvn_fs_fs/pack.c
@@ -315,12 +315,12 @@ initialize_pack_context(pack_context_t *context,
context->file_props = apr_array_make(pool, max_items,
sizeof(svn_fs_fs__p2l_entry_t *));
SVN_ERR(svn_io_open_unique_file3(&context->file_props_file, NULL, temp_dir,
- svn_io_file_del_on_close,
+ svn_io_file_del_on_close,
context->info_pool, pool));
context->dir_props = apr_array_make(pool, max_items,
sizeof(svn_fs_fs__p2l_entry_t *));
SVN_ERR(svn_io_open_unique_file3(&context->dir_props_file, NULL, temp_dir,
- svn_io_file_del_on_close,
+ svn_io_file_del_on_close,
context->info_pool, pool));
/* noderev and representation item bucket */
@@ -2067,9 +2067,9 @@ pack_body(void *baton,
if (fully_packed)
{
if (pb->notify_func)
- (*pb->notify_func)(pb->notify_baton,
- ffd->min_unpacked_rev / ffd->max_files_per_dir,
- svn_fs_pack_notify_noop, pool);
+ SVN_ERR(pb->notify_func(pb->notify_baton,
+ ffd->min_unpacked_rev / ffd->max_files_per_dir,
+ svn_fs_pack_notify_noop, pool));
return SVN_NO_ERROR;
}
@@ -2122,7 +2122,7 @@ svn_fs_fs__pack(svn_fs_t *fs,
if (!ffd->max_files_per_dir)
{
if (notify_func)
- (*notify_func)(notify_baton, -1, svn_fs_pack_notify_noop, pool);
+ SVN_ERR(notify_func(notify_baton, -1, svn_fs_pack_notify_noop, pool));
return SVN_NO_ERROR;
}
@@ -2132,9 +2132,9 @@ svn_fs_fs__pack(svn_fs_t *fs,
if (fully_packed)
{
if (notify_func)
- (*notify_func)(notify_baton,
- ffd->min_unpacked_rev / ffd->max_files_per_dir,
- svn_fs_pack_notify_noop, pool);
+ SVN_ERR(notify_func(notify_baton,
+ ffd->min_unpacked_rev / ffd->max_files_per_dir,
+ svn_fs_pack_notify_noop, pool));
return SVN_NO_ERROR;
}
diff --git a/subversion/libsvn_fs_fs/recovery.c b/subversion/libsvn_fs_fs/recovery.c
index eef06f65942a..09030f4e6f97 100644
--- a/subversion/libsvn_fs_fs/recovery.c
+++ b/subversion/libsvn_fs_fs/recovery.c
@@ -471,9 +471,15 @@ recover_body(void *baton, apr_pool_t *pool)
}
/* Prune younger-than-(newfound-youngest) revisions from the rep
- cache if sharing is enabled taking care not to create the cache
- if it does not exist. */
- if (ffd->rep_sharing_allowed)
+ cache, taking care not to create the cache if it does not exist.
+
+ We do this whenever rep-cache.db exists, whether it's currently enabled
+ or not, to prevent a data loss that could result from having revisions
+ created after this 'recover' operation referring to rep-cache.db rows
+ that were created before the recover and that point to revisions younger-
+ than-(newfound-youngest).
+ */
+ if (ffd->format >= SVN_FS_FS__MIN_REP_SHARING_FORMAT)
{
svn_boolean_t rep_cache_exists;
diff --git a/subversion/libsvn_fs_fs/rep-cache-db.h b/subversion/libsvn_fs_fs/rep-cache-db.h
index e66253810c9d..4cad0667a8fe 100644
--- a/subversion/libsvn_fs_fs/rep-cache-db.h
+++ b/subversion/libsvn_fs_fs/rep-cache-db.h
@@ -1,4 +1,4 @@
-/* This file is automatically generated from rep-cache-db.sql and subversion/libsvn_fs_fs/token-map.h.
+/* This file is automatically generated from rep-cache-db.sql and token-map.h.
* Do not edit this file -- edit the source and rerun gen-make.py */
#define STMT_CREATE_SCHEMA_V1 0
@@ -38,7 +38,7 @@
#define STMT_SET_REP 3
#define STMT_3_INFO {"STMT_SET_REP", NULL}
#define STMT_3 \
- "INSERT OR FAIL INTO rep_cache (hash, revision, offset, size, expanded_size) " \
+ "INSERT OR IGNORE INTO rep_cache (hash, revision, offset, size, expanded_size) " \
"VALUES (?1, ?2, ?3, ?4, ?5) " \
""
diff --git a/subversion/libsvn_fs_fs/rep-cache-db.sql b/subversion/libsvn_fs_fs/rep-cache-db.sql
index cd89f35c63ee..a700a9dcd026 100644
--- a/subversion/libsvn_fs_fs/rep-cache-db.sql
+++ b/subversion/libsvn_fs_fs/rep-cache-db.sql
@@ -61,7 +61,7 @@ WHERE hash = ?1
-- STMT_SET_REP
/* Works for both V1 and V2 schemas. */
-INSERT OR FAIL INTO rep_cache (hash, revision, offset, size, expanded_size)
+INSERT OR IGNORE INTO rep_cache (hash, revision, offset, size, expanded_size)
VALUES (?1, ?2, ?3, ?4, ?5)
-- STMT_GET_REPS_FOR_RANGE
diff --git a/subversion/libsvn_fs_fs/rep-cache.c b/subversion/libsvn_fs_fs/rep-cache.c
index b0b81fad9ac3..c51cde3954b4 100644
--- a/subversion/libsvn_fs_fs/rep-cache.c
+++ b/subversion/libsvn_fs_fs/rep-cache.c
@@ -328,7 +328,6 @@ svn_fs_fs__set_rep_reference(svn_fs_t *fs,
{
fs_fs_data_t *ffd = fs->fsap_data;
svn_sqlite__stmt_t *stmt;
- svn_error_t *err;
svn_checksum_t checksum;
checksum.kind = svn_checksum_sha1;
checksum.digest = rep->sha1_digest;
@@ -351,28 +350,7 @@ svn_fs_fs__set_rep_reference(svn_fs_t *fs,
(apr_int64_t) rep->size,
(apr_int64_t) rep->expanded_size));
- err = svn_sqlite__insert(NULL, stmt);
- if (err)
- {
- representation_t *old_rep;
-
- if (err->apr_err != SVN_ERR_SQLITE_CONSTRAINT)
- return svn_error_trace(err);
-
- svn_error_clear(err);
-
- /* Constraint failed so the mapping for SHA1_CHECKSUM->REP
- should exist. If so that's cool -- just do nothing. If not,
- that's a red flag! */
- SVN_ERR(svn_fs_fs__get_rep_reference(&old_rep, fs, &checksum, pool));
-
- if (!old_rep)
- {
- /* Something really odd at this point, we failed to insert the
- checksum AND failed to read an existing checksum. Do we need
- to flag this? */
- }
- }
+ SVN_ERR(svn_sqlite__insert(NULL, stmt));
return SVN_NO_ERROR;
}
diff --git a/subversion/libsvn_fs_fs/revprops.c b/subversion/libsvn_fs_fs/revprops.c
index 6d41fd882d7e..bba40ce82027 100644
--- a/subversion/libsvn_fs_fs/revprops.c
+++ b/subversion/libsvn_fs_fs/revprops.c
@@ -261,7 +261,7 @@ cache_revprops(svn_boolean_t *is_cached,
}
/* Read the non-packed revprops for revision REV in FS, put them into the
- * revprop cache if PROPULATE_CACHE is set and return them in *PROPERTIES.
+ * revprop cache if PROPULATE_CACHE is set and return them in *PROPERTIES.
*
* If the data could not be read due to an otherwise recoverable error,
* leave *PROPERTIES unchanged. No error will be returned in that case.
@@ -672,6 +672,64 @@ read_pack_revprop(packed_revprops_t **revprops,
return SVN_NO_ERROR;
}
+svn_error_t *
+svn_fs_fs__get_revision_props_size(apr_off_t *props_size_p,
+ svn_fs_t *fs,
+ svn_revnum_t rev,
+ apr_pool_t *scratch_pool)
+{
+ fs_fs_data_t *ffd = fs->fsap_data;
+
+ /* should they be available at all? */
+ SVN_ERR(svn_fs_fs__ensure_revision_exists(rev, fs, scratch_pool));
+
+ /* if REV had not been packed when we began, try reading it from the
+ * non-packed shard. If that fails, we will fall through to packed
+ * shard reads. */
+ if (!svn_fs_fs__is_packed_revprop(fs, rev))
+ {
+ const char *path = svn_fs_fs__path_revprops(fs, rev, scratch_pool);
+ svn_error_t *err;
+ apr_file_t *file;
+ svn_filesize_t file_size;
+
+ err = svn_io_file_open(&file, path, APR_FOPEN_READ, APR_OS_DEFAULT,
+ scratch_pool);
+ if (!err)
+ err = svn_io_file_size_get(&file_size, file, scratch_pool);
+ if (!err)
+ {
+ *props_size_p = (apr_off_t)file_size;
+ return SVN_NO_ERROR;
+ }
+ else if (!APR_STATUS_IS_ENOENT(err->apr_err)
+ || ffd->format < SVN_FS_FS__MIN_PACKED_REVPROP_FORMAT)
+ {
+ return svn_error_trace(err);
+ }
+
+ /* fall through: maybe the revision got packed while we were looking */
+ svn_error_clear(err);
+ }
+
+ /* Try reading packed revprops. If that fails, REV is most
+ * likely invalid (or its revprops highly contested). */
+ {
+ packed_revprops_t *revprops;
+
+ /* ### This is inefficient -- reading all the revprops in a pack. We
+ should just read the index. */
+ SVN_ERR(read_pack_revprop(&revprops, fs, rev,
+ TRUE /*read_all*/, FALSE /*populate_cache*/,
+ scratch_pool));
+ *props_size_p = (apr_off_t)APR_ARRAY_IDX(revprops->sizes,
+ rev - revprops->start_revision,
+ apr_size_t);
+ }
+
+ return SVN_NO_ERROR;
+}
+
/* Read the revprops for revision REV in FS and return them in *PROPERTIES_P.
*
* Allocations will be done in POOL.
diff --git a/subversion/libsvn_fs_fs/revprops.h b/subversion/libsvn_fs_fs/revprops.h
index 37063f96e9ae..32df18387a68 100644
--- a/subversion/libsvn_fs_fs/revprops.h
+++ b/subversion/libsvn_fs_fs/revprops.h
@@ -62,6 +62,15 @@ svn_fs_fs__upgrade_cleanup_pack_revprops(svn_fs_t *fs,
void
svn_fs_fs__reset_revprop_cache(svn_fs_t *fs);
+/* Set *PROPS_SIZE_P to the size in bytes on disk of the revprops for
+ * revision REV in FS. The size excludes indexes.
+ */
+svn_error_t *
+svn_fs_fs__get_revision_props_size(apr_off_t *props_size_p,
+ svn_fs_t *fs,
+ svn_revnum_t rev,
+ apr_pool_t *scratch_pool);
+
/* Read the revprops for revision REV in FS and return them in *PROPERTIES_P.
* If REFRESH is set, clear the revprop cache before accessing the data.
*
diff --git a/subversion/libsvn_fs_fs/stats.c b/subversion/libsvn_fs_fs/stats.c
index 36992dbaeb66..98a421f20a86 100644
--- a/subversion/libsvn_fs_fs/stats.c
+++ b/subversion/libsvn_fs_fs/stats.c
@@ -28,7 +28,6 @@
#include "private/svn_cache.h"
#include "private/svn_sorts_private.h"
#include "private/svn_string_private.h"
-#include "private/svn_fs_fs_private.h"
#include "index.h"
#include "pack.h"
@@ -37,6 +36,7 @@
#include "fs_fs.h"
#include "cached_data.h"
#include "low_level.h"
+#include "revprops.h"
#include "../libsvn_fs/fs-loader.h"
@@ -488,7 +488,7 @@ parse_representation(rep_stats_t **representation,
}
}
- svn_sort__array_insert(revision_info->representations, &result, idx);
+ SVN_ERR(svn_sort__array_insert2(revision_info->representations, &result, idx));
}
*representation = result;
@@ -1397,3 +1397,96 @@ svn_fs_fs__get_stats(svn_fs_fs__stats_t **stats,
return SVN_NO_ERROR;
}
+
+/* Baton for rev_size_index_entry_cb. */
+struct rev_size_baton_t {
+ svn_revnum_t revision;
+ apr_off_t rev_size;
+};
+
+/* Implements svn_fs_fs__dump_index_func_t, summing object sizes for
+ * revision BATON->revision into BATON->rev_size.
+ */
+static svn_error_t *
+rev_size_index_entry_cb(const svn_fs_fs__p2l_entry_t *entry,
+ void *baton,
+ apr_pool_t *scratch_pool)
+{
+ struct rev_size_baton_t *b = baton;
+
+ if (entry->item.revision == b->revision)
+ b->rev_size += entry->size;
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_fs_fs__revision_size(apr_off_t *rev_size,
+ svn_fs_t *fs,
+ svn_revnum_t revision,
+ apr_pool_t *scratch_pool)
+{
+ /* Get the size of the revision (excluding rev-props) */
+ if (svn_fs_fs__use_log_addressing(fs))
+ {
+ /* This works for a packed or a non-packed revision.
+ We could provide an optimized case for a non-packed revision
+ using svn_fs_fs__p2l_get_max_offset(). */
+ struct rev_size_baton_t b = { 0, 0 };
+
+ b.revision = revision;
+ SVN_ERR(svn_fs_fs__dump_index(fs, revision,
+ rev_size_index_entry_cb, &b,
+ NULL, NULL, scratch_pool));
+ *rev_size = b.rev_size;
+ }
+ else
+ {
+ svn_fs_fs__revision_file_t *rev_file;
+ svn_revnum_t min_unpacked_rev;
+
+ SVN_ERR(svn_fs_fs__open_pack_or_rev_file(&rev_file, fs, revision,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_fs_fs__min_unpacked_rev(&min_unpacked_rev, fs,
+ scratch_pool));
+ if (revision < min_unpacked_rev)
+ {
+ int shard_size = svn_fs_fs__shard_size(fs);
+ apr_off_t start_offset, end_offset;
+
+ SVN_ERR(svn_fs_fs__get_packed_offset(&start_offset, fs, revision,
+ scratch_pool));
+ if (((revision + 1) % shard_size) == 0)
+ {
+ svn_filesize_t file_size;
+
+ SVN_ERR(svn_io_file_size_get(&file_size, rev_file->file, scratch_pool));
+ end_offset = (apr_off_t)file_size;
+ }
+ else
+ {
+ SVN_ERR(svn_fs_fs__get_packed_offset(&end_offset, fs,
+ revision + 1, scratch_pool));
+ }
+ *rev_size = (end_offset - start_offset);
+ }
+ else
+ {
+ svn_filesize_t file_size;
+
+ SVN_ERR(svn_io_file_size_get(&file_size, rev_file->file, scratch_pool));
+ *rev_size = (apr_off_t)file_size;
+ }
+
+ SVN_ERR(svn_fs_fs__close_revision_file(rev_file));
+ }
+
+ /* Add the size of the rev-props */
+ {
+ apr_off_t size;
+
+ SVN_ERR(svn_fs_fs__get_revision_props_size(&size, fs, revision, scratch_pool));
+ *rev_size += size;
+ }
+
+ return SVN_NO_ERROR;
+}
diff --git a/subversion/libsvn_fs_fs/temp_serializer.c b/subversion/libsvn_fs_fs/temp_serializer.c
index f6e9e3a0971c..b4f6b86d8ed1 100644
--- a/subversion/libsvn_fs_fs/temp_serializer.c
+++ b/subversion/libsvn_fs_fs/temp_serializer.c
@@ -1013,13 +1013,13 @@ slowly_replace_dir_entry(void **data,
APR_ARRAY_IDX(entries, idx, svn_fs_dirent_t *)
= replace_baton->new_entry;
else
- svn_sort__array_insert(entries, &replace_baton->new_entry, idx);
+ SVN_ERR(svn_sort__array_insert2(entries, &replace_baton->new_entry, idx));
}
else
{
/* Remove the old ENTRY. */
if (entry)
- svn_sort__array_delete(entries, idx, 1);
+ SVN_ERR(svn_sort__array_delete2(entries, idx, 1));
}
return svn_fs_fs__serialize_dir_entries(data, data_len, dir, pool);
diff --git a/subversion/libsvn_fs_fs/temp_serializer.h b/subversion/libsvn_fs_fs/temp_serializer.h
index 187c8d000206..32bb554ba87c 100644
--- a/subversion/libsvn_fs_fs/temp_serializer.h
+++ b/subversion/libsvn_fs_fs/temp_serializer.h
@@ -53,7 +53,7 @@ svn_fs_fs__noderev_deserialize(void *buffer,
/**
* Adds position information to the raw window data in WINDOW.
*/
-typedef struct
+typedef struct svn_fs_fs__raw_cached_window_t
{
/* the (unprocessed) txdelta window byte sequence cached / to be cached */
svn_string_t window;
@@ -89,7 +89,7 @@ svn_fs_fs__deserialize_raw_window(void **item,
* #svn_txdelta_window_t is not sufficient for caching the data it
* represents because data read process needs auxiliary information.
*/
-typedef struct
+typedef struct svn_fs_fs__txdelta_cached_window_t
{
/* the txdelta window information cached / to be cached */
svn_txdelta_window_t *window;
@@ -377,7 +377,7 @@ typedef struct svn_fs_fs__changes_list_t
of elements in the list is a multiple of our block / range size. */
svn_boolean_t eol;
- /* Array of #svn_fs_x__change_t * representing a consecutive sub-range of
+ /* Array of #svn_fs_fs__change_t * representing a consecutive sub-range of
elements in a changed paths list. */
/* number of entries in the array */
diff --git a/subversion/libsvn_fs_fs/transaction.c b/subversion/libsvn_fs_fs/transaction.c
index eb6fefaeae22..9e1e40c86ce9 100644
--- a/subversion/libsvn_fs_fs/transaction.c
+++ b/subversion/libsvn_fs_fs/transaction.c
@@ -587,7 +587,7 @@ unparse_dir_entry(svn_fs_dirent_t *dirent,
: sizeof(SVN_FS_FS__KIND_DIR);
apr_size_t value_len = type_len + id_str->len;
- /* A buffer with sufficient space for
+ /* A buffer with sufficient space for
* - both string lines
* - 4 newlines
* - 2 lines K/V lines containing a number each
diff --git a/subversion/libsvn_fs_fs/tree.c b/subversion/libsvn_fs_fs/tree.c
index 76209f368bf9..764052b3fa89 100644
--- a/subversion/libsvn_fs_fs/tree.c
+++ b/subversion/libsvn_fs_fs/tree.c
@@ -920,6 +920,25 @@ try_match_last_node(dag_node_t **node_p,
return SVN_NO_ERROR;
}
+/* Helper for open_path() that constructs and returns an appropriate
+ SVN_ERR_FS_NOT_DIRECTORY error. */
+static svn_error_t *
+err_not_directory(svn_fs_root_t *root,
+ const char *path,
+ apr_pool_t *scratch_pool)
+{
+ const char *msg;
+
+ msg = root->is_txn_root
+ ? apr_psprintf(scratch_pool,
+ _("Failure opening '%s' in transaction '%s'"),
+ path, root->txn)
+ : apr_psprintf(scratch_pool,
+ _("Failure opening '%s' in revision %ld"),
+ path, root->rev);
+
+ return svn_error_quick_wrap(SVN_FS__ERR_NOT_DIRECTORY(root->fs, path), msg);
+}
/* Open the node identified by PATH in ROOT, allocating in POOL. Set
*PARENT_PATH_P to a path from the node up to ROOT. The resulting
@@ -1016,12 +1035,26 @@ open_path(parent_path_t **parent_path_p,
SVN_ERR(dag_node_cache_get(&here, root, directory, pool));
/* Did the shortcut work? */
- if (here)
+ if (here && svn_fs_fs__dag_node_kind(here) == svn_node_dir)
{
apr_size_t dirname_len = strlen(directory);
path_so_far->len = dirname_len;
rest = path + dirname_len + 1;
}
+ else if (here)
+ {
+ /* The parent node is not a directory. We are looking for some
+ sub-path, so that sub-path will not exist. That will be o.k.
+ if we are just here to check for the path's existence, but
+ should result in an error otherwise. */
+ if (flags & open_path_allow_null)
+ {
+ *parent_path_p = NULL;
+ return SVN_NO_ERROR;
+ }
+ else
+ return svn_error_trace(err_not_directory(root, directory, pool));
+ }
}
}
@@ -1144,8 +1177,6 @@ open_path(parent_path_t **parent_path_p,
/* The path isn't finished yet; we'd better be in a directory. */
if (svn_fs_fs__dag_node_kind(child) != svn_node_dir)
{
- const char *msg;
-
/* Since this is not a directory and we are looking for some
sub-path, that sub-path will not exist. That will be o.k.,
if we are just here to check for the path's existence. */
@@ -1156,14 +1187,8 @@ open_path(parent_path_t **parent_path_p,
}
/* It's really a problem ... */
- msg = root->is_txn_root
- ? apr_psprintf(iterpool,
- _("Failure opening '%s' in transaction '%s'"),
- path, root->txn)
- : apr_psprintf(iterpool,
- _("Failure opening '%s' in revision %ld"),
- path, root->rev);
- SVN_ERR_W(SVN_FS__ERR_NOT_DIRECTORY(fs, path_so_far->data), msg);
+ return svn_error_trace(
+ err_not_directory(root, path_so_far->data, iterpool));
}
rest = next;
@@ -4619,7 +4644,7 @@ make_txn_root(svn_fs_root_t **root_p,
svn_fs_fs__dag_deserialize,
APR_HASH_KEY_STRING,
32, 20, FALSE,
- apr_pstrcat(pool, txn, ":TXN",
+ apr_pstrcat(pool, root->txn, ":TXN",
SVN_VA_NULL),
root->pool));
diff --git a/subversion/libsvn_fs_fs/verify.c b/subversion/libsvn_fs_fs/verify.c
index 7fe5ecbbd494..9d70d6cfbc8d 100644
--- a/subversion/libsvn_fs_fs/verify.c
+++ b/subversion/libsvn_fs_fs/verify.c
@@ -681,10 +681,10 @@ compare_p2l_to_rev(svn_fs_t *fs,
NULL,
_("p2l index entry for revision r%ld"
" at offset %s contains invalid item"
- " type %d"),
+ " type %u"),
start,
apr_off_t_toa(pool, offset),
- entry->type);
+ (unsigned int)entry->type);
/* There can be only one changes entry and that has a fixed type
* and item number. Its presence and parse-ability will be checked
@@ -694,11 +694,12 @@ compare_p2l_to_rev(svn_fs_t *fs,
return svn_error_createf(SVN_ERR_FS_INDEX_CORRUPTION,
NULL,
_("p2l index entry for changes in"
- " revision r%ld is item %ld of type"
- " %d at offset %s"),
+ " revision r%ld is item"
+ " %"APR_UINT64_T_FMT
+ " of type %u at offset %s"),
entry->item.revision,
entry->item.number,
- entry->type,
+ (unsigned int)entry->type,
apr_off_t_toa(pool, offset));
/* Check contents. */
diff --git a/subversion/libsvn_fs_util/libsvn_fs_util.pc.in b/subversion/libsvn_fs_util/libsvn_fs_util.pc.in
index 05a9b4f34105..258857f7f758 100644
--- a/subversion/libsvn_fs_util/libsvn_fs_util.pc.in
+++ b/subversion/libsvn_fs_util/libsvn_fs_util.pc.in
@@ -6,7 +6,7 @@ includedir=@includedir@
Name: libsvn_fs_util
Description: Subversion Filesystem Utility Library
Version: @PACKAGE_VERSION@
-Requires: apr-util-@SVN_APR_MAJOR_VERSION@ apr-@SVN_APR_MAJOR_VERSION@
-Requires.private: libsvn_subr
-Libs: -L${libdir} -lsvn_fs_util
-Cflags: -I${includedir}
+Requires: apr-util-@SVN_APR_MAJOR_VERSION@, apr-@SVN_APR_MAJOR_VERSION@
+Requires.private: libsvn_subr
+Libs: -L${libdir} -lsvn_fs_util-1
+Cflags: -I${includedir}/subversion-1
diff --git a/subversion/libsvn_fs_x/cached_data.c b/subversion/libsvn_fs_x/cached_data.c
index 909842e5c456..c9bca2f006c6 100644
--- a/subversion/libsvn_fs_x/cached_data.c
+++ b/subversion/libsvn_fs_x/cached_data.c
@@ -2229,7 +2229,7 @@ svn_fs_x__get_contents_from_file(svn_stream_t **contents_p,
rb->filehandle_pool, rb->scratch_pool));
/* Insert the access to REP as the first element of the delta chain. */
- svn_sort__array_insert(rb->rs_list, &rs, 0);
+ SVN_ERR(svn_sort__array_insert2(rb->rs_list, &rs, 0));
}
/* Now, the baton is complete and we can assemble the stream around it. */
diff --git a/subversion/libsvn_fs_x/changes.c b/subversion/libsvn_fs_x/changes.c
index c385e59da7f6..419bc41c076f 100644
--- a/subversion/libsvn_fs_x/changes.c
+++ b/subversion/libsvn_fs_x/changes.c
@@ -184,7 +184,7 @@ svn_fs_x__changes_append_list(apr_size_t *list_index,
/* simply append the list and all changes */
for (i = 0; i < list->nelts; ++i)
- append_change(changes, APR_ARRAY_IDX(list, i, svn_fs_x__change_t *));
+ SVN_ERR(append_change(changes, APR_ARRAY_IDX(list, i, svn_fs_x__change_t *)));
/* terminate the list by storing the next changes offset */
APR_ARRAY_PUSH(changes->offsets, int) = changes->changes->nelts;
diff --git a/subversion/libsvn_fs_x/dag_cache.c b/subversion/libsvn_fs_x/dag_cache.c
index 896c56fb3203..34a0117fd599 100644
--- a/subversion/libsvn_fs_x/dag_cache.c
+++ b/subversion/libsvn_fs_x/dag_cache.c
@@ -807,7 +807,7 @@ get_copy_inheritance(svn_fs_x__copy_id_inherit_t *inherit_p,
or if it is a branch point that we are accessing via its original
copy destination path. */
svn_fs_x__dag_get_copyroot(&copyroot_rev, &copyroot_path, child->node);
- SVN_ERR(svn_fs_x__revision_root(&copyroot_root, fs, copyroot_rev,
+ SVN_ERR(svn_fs_x__revision_root(&copyroot_root, fs, copyroot_rev,
scratch_pool));
SVN_ERR(svn_fs_x__get_temp_dag_node(&copyroot_node, copyroot_root,
copyroot_path, scratch_pool));
@@ -833,7 +833,7 @@ get_copy_inheritance(svn_fs_x__copy_id_inherit_t *inherit_p,
}
/* Allocate a new svn_fs_x__dag_path_t node from RESULT_POOL, containing
- NODE, ENTRY and PARENT, all copied into RESULT_POOL as well. */
+ NODE, ENTRY and PARENT; NODE and ENTRY are copied into RESULT_POOL. */
static svn_fs_x__dag_path_t *
make_parent_path(dag_node_t *node,
const svn_stringbuf_t *entry,
@@ -909,7 +909,7 @@ svn_fs_x__get_dag_path(svn_fs_x__dag_path_t **dag_path_p,
{
/* If this was the last path component, and the caller
said it was optional, then don't return an error;
- just put a NULL node pointer in the path.
+ just put a NULL node pointer in the path.
*/
if ((flags & svn_fs_x__dag_path_last_optional)
&& (path_len == path.len))
diff --git a/subversion/libsvn_fs_x/dag_cache.h b/subversion/libsvn_fs_x/dag_cache.h
index fd78bb74f9e8..9d95361b0eab 100644
--- a/subversion/libsvn_fs_x/dag_cache.h
+++ b/subversion/libsvn_fs_x/dag_cache.h
@@ -103,7 +103,7 @@ typedef struct svn_fs_x__dag_path_t
IS_TXN_PATH must be set. If IS_TXN_PATH is FALSE, no copy ID
inheritance information will be calculated for the *PARENT_PATH_P chain.
- If FLAGS & open_path_last_optional is zero, return the error
+ If FLAGS & svn_fs_x__dag_path_last_optional is zero, return the error
SVN_ERR_FS_NOT_FOUND if the node PATH refers to does not exist. If
non-zero, require all the parent directories to exist as normal,
but if the final path component doesn't exist, simply return a path
diff --git a/subversion/libsvn_fs_x/fs.c b/subversion/libsvn_fs_x/fs.c
index 7eb0add2def0..cf4613e9a9bf 100644
--- a/subversion/libsvn_fs_x/fs.c
+++ b/subversion/libsvn_fs_x/fs.c
@@ -310,7 +310,8 @@ static fs_vtable_t fs_vtable = {
x_info,
svn_fs_x__verify_root,
x_freeze,
- x_set_errcall
+ x_set_errcall,
+ NULL /* ioctl */
};
@@ -641,7 +642,8 @@ static fs_library_vtable_t library_vtable = {
x_logfiles,
NULL /* parse_id */,
x_set_svn_fs_open,
- x_info_dup
+ x_info_dup,
+ NULL /* ioctl */
};
svn_error_t *
diff --git a/subversion/libsvn_fs_x/fs_x.c b/subversion/libsvn_fs_x/fs_x.c
index ba1982f278bb..09593572a4ef 100644
--- a/subversion/libsvn_fs_x/fs_x.c
+++ b/subversion/libsvn_fs_x/fs_x.c
@@ -951,7 +951,7 @@ write_revision_zero(svn_fs_t *fs,
SVN_ERR(svn_io_file_open(&apr_file,
svn_fs_x__path_revprops(fs, 0, scratch_pool),
- APR_WRITE | APR_CREATE, APR_OS_DEFAULT,
+ APR_WRITE | APR_CREATE, APR_OS_DEFAULT,
scratch_pool));
SVN_ERR(svn_fs_x__write_non_packed_revprops(apr_file, proplist,
scratch_pool));
diff --git a/subversion/libsvn_fs_x/libsvn_fs_x.pc.in b/subversion/libsvn_fs_x/libsvn_fs_x.pc.in
index 46d93dcebcd1..5d7d58ba88d1 100644
--- a/subversion/libsvn_fs_x/libsvn_fs_x.pc.in
+++ b/subversion/libsvn_fs_x/libsvn_fs_x.pc.in
@@ -6,7 +6,7 @@ includedir=@includedir@
Name: libsvn_fs_x
Description: Subversion FSX Repository Filesystem Library
Version: @PACKAGE_VERSION@
-Requires: apr-util-@SVN_APR_MAJOR_VERSION@ apr-@SVN_APR_MAJOR_VERSION@
-Requires.private: libsvn_delta libsvn_subr libsvn_fs_util
-Libs: -L${libdir} -lsvn_fs_x
-Cflags: -I${includedir}
+Requires: apr-util-@SVN_APR_MAJOR_VERSION@, apr-@SVN_APR_MAJOR_VERSION@
+Requires.private: libsvn_delta, libsvn_subr, libsvn_fs_util
+Libs: -L${libdir} -lsvn_fs_x-1
+Cflags: -I${includedir}/subversion-1
diff --git a/subversion/libsvn_fs_x/low_level.c b/subversion/libsvn_fs_x/low_level.c
index 5c7e3ad26610..e4cf4b786f7f 100644
--- a/subversion/libsvn_fs_x/low_level.c
+++ b/subversion/libsvn_fs_x/low_level.c
@@ -167,10 +167,10 @@ svn_fs_x__parse_footer(apr_off_t *l2p_offset,
"P2L offset %s must be larger than L2P offset %s"
" in r%ld footer",
apr_psprintf(result_pool,
- "%" APR_UINT64_T_HEX_FMT,
+ "0x%" APR_UINT64_T_HEX_FMT,
(apr_uint64_t)*p2l_offset),
apr_psprintf(result_pool,
- "%" APR_UINT64_T_HEX_FMT,
+ "0x%" APR_UINT64_T_HEX_FMT,
(apr_uint64_t)*l2p_offset),
rev);
@@ -998,7 +998,7 @@ svn_fs_x__read_changes(apr_array_header_t **changes,
SVN_ERR(read_change(&change, stream, result_pool, iterpool));
if (!change)
break;
-
+
APR_ARRAY_PUSH(*changes, svn_fs_x__change_t*) = change;
}
svn_pool_destroy(iterpool);
@@ -1131,7 +1131,7 @@ svn_fs_x__write_changes(svn_stream_t *stream,
}
if (terminate_list)
- svn_stream_puts(stream, "\n");
+ SVN_ERR(svn_stream_puts(stream, "\n"));
svn_pool_destroy(iterpool);
diff --git a/subversion/libsvn_fs_x/pack.c b/subversion/libsvn_fs_x/pack.c
index 095b04ec8297..ceb9e7fccba2 100644
--- a/subversion/libsvn_fs_x/pack.c
+++ b/subversion/libsvn_fs_x/pack.c
@@ -2204,9 +2204,9 @@ pack_body(void *baton,
if (fully_packed)
{
if (pb->notify_func)
- (*pb->notify_func)(pb->notify_baton,
- ffd->min_unpacked_rev / ffd->max_files_per_dir,
- svn_fs_pack_notify_noop, scratch_pool);
+ SVN_ERR(pb->notify_func(pb->notify_baton,
+ ffd->min_unpacked_rev / ffd->max_files_per_dir,
+ svn_fs_pack_notify_noop, scratch_pool));
return SVN_NO_ERROR;
}
@@ -2258,9 +2258,9 @@ svn_fs_x__pack(svn_fs_t *fs,
svn_fs_x__data_t *ffd = fs->fsap_data;
if (notify_func)
- (*notify_func)(notify_baton,
- ffd->min_unpacked_rev / ffd->max_files_per_dir,
- svn_fs_pack_notify_noop, scratch_pool);
+ SVN_ERR(notify_func(notify_baton,
+ ffd->min_unpacked_rev / ffd->max_files_per_dir,
+ svn_fs_pack_notify_noop, scratch_pool));
return SVN_NO_ERROR;
}
diff --git a/subversion/libsvn_fs_x/rep-cache-db.h b/subversion/libsvn_fs_x/rep-cache-db.h
index c212760651d5..67ab6302126e 100644
--- a/subversion/libsvn_fs_x/rep-cache-db.h
+++ b/subversion/libsvn_fs_x/rep-cache-db.h
@@ -1,4 +1,4 @@
-/* This file is automatically generated from rep-cache-db.sql and subversion/libsvn_fs_x/token-map.h.
+/* This file is automatically generated from rep-cache-db.sql and token-map.h.
* Do not edit this file -- edit the source and rerun gen-make.py */
#define STMT_CREATE_SCHEMA 0
diff --git a/subversion/libsvn_fs_x/revprops.c b/subversion/libsvn_fs_x/revprops.c
index f98c04478f24..4b38fcefcbe2 100644
--- a/subversion/libsvn_fs_x/revprops.c
+++ b/subversion/libsvn_fs_x/revprops.c
@@ -449,7 +449,7 @@ verify_checksum(svn_stringbuf_t *content,
content->len, scratch_pool));
if (!svn_checksum_match(actual, expected))
- SVN_ERR(svn_checksum_mismatch_err(expected, actual, scratch_pool,
+ SVN_ERR(svn_checksum_mismatch_err(expected, actual, scratch_pool,
"checksum mismatch"));
return SVN_NO_ERROR;
@@ -1203,7 +1203,7 @@ repack_file_open(apr_file_t **file,
if (revprops->entry.start_rev == start_rev)
APR_ARRAY_IDX(revprops->manifest, idx, manifest_entry_t) = new_entry;
else
- svn_sort__array_insert(revprops->manifest, &new_path, idx + 1);
+ SVN_ERR(svn_sort__array_insert2(revprops->manifest, &new_path, idx + 1));
/* open the file */
new_path = get_revprop_pack_filepath(revprops, &new_entry, scratch_pool);
@@ -1424,7 +1424,7 @@ svn_fs_x__set_revision_proplist(svn_fs_t *fs,
scratch_pool));
else
SVN_ERR(write_non_packed_revprop(&final_path, &tmp_path,
- fs, rev, proplist, batch,
+ fs, rev, proplist, batch,
scratch_pool, scratch_pool));
/* We use the rev file of this revision as the perms reference,
diff --git a/subversion/libsvn_fs_x/temp_serializer.c b/subversion/libsvn_fs_x/temp_serializer.c
index efabf1b60771..b1aaa2b2f9df 100644
--- a/subversion/libsvn_fs_x/temp_serializer.c
+++ b/subversion/libsvn_fs_x/temp_serializer.c
@@ -925,13 +925,13 @@ slowly_replace_dir_entry(void **data,
APR_ARRAY_IDX(entries, idx, svn_fs_x__dirent_t *)
= replace_baton->new_entry;
else
- svn_sort__array_insert(entries, &replace_baton->new_entry, idx);
+ SVN_ERR(svn_sort__array_insert2(entries, &replace_baton->new_entry, idx));
}
else
{
/* Remove the old ENTRY. */
if (entry)
- svn_sort__array_delete(entries, idx, 1);
+ SVN_ERR(svn_sort__array_delete2(entries, idx, 1));
}
return svn_fs_x__serialize_dir_entries(data, data_len, dir, pool);
diff --git a/subversion/libsvn_fs_x/transaction.c b/subversion/libsvn_fs_x/transaction.c
index 52c958f3ece1..b54caf480c7f 100644
--- a/subversion/libsvn_fs_x/transaction.c
+++ b/subversion/libsvn_fs_x/transaction.c
@@ -881,7 +881,7 @@ unparse_dir_entry(svn_fs_x__dirent_t *dirent,
apr_size_t to_write;
apr_size_t name_len = strlen(dirent->name);
- /* A buffer with sufficient space for
+ /* A buffer with sufficient space for
* - entry name + 1 terminating NUL
* - 1 byte for the node kind
* - 2 numbers in 7b/8b encoding for the noderev-id
@@ -1259,7 +1259,7 @@ get_and_increment_txn_key_body(void *baton,
SVN_ERR(svn_io_check_path(txn_dir, &kind, iterpool));
if (kind == svn_node_none)
{
- svn_io_dir_make(txn_dir, APR_OS_DEFAULT, iterpool);
+ SVN_ERR(svn_io_dir_make(txn_dir, APR_OS_DEFAULT, iterpool));
break;
}
diff --git a/subversion/libsvn_fs_x/tree.c b/subversion/libsvn_fs_x/tree.c
index 36374afc1cce..6fe34f3d0a3c 100644
--- a/subversion/libsvn_fs_x/tree.c
+++ b/subversion/libsvn_fs_x/tree.c
@@ -2060,7 +2060,7 @@ typedef struct text_baton_t
* svn_fs_apply_text() ==> ... ==> txn_body_fulltext_finalize_edits()
*/
-/* Write function for the publically returned stream. */
+/* Write function for the publicly returned stream. */
static svn_error_t *
text_stream_writer(void *baton,
const char *data,
diff --git a/subversion/libsvn_fs_x/verify.c b/subversion/libsvn_fs_x/verify.c
index 6f03201b2b8e..c1351baff737 100644
--- a/subversion/libsvn_fs_x/verify.c
+++ b/subversion/libsvn_fs_x/verify.c
@@ -179,7 +179,7 @@ verify_index_checksum(svn_fs_x__revision_file_t *file,
SVN_ERR(svn_fs_x__rev_file_name(&file_name, file, scratch_pool));
SVN_ERR(svn_checksum_mismatch_err(index_info->checksum, actual,
- scratch_pool,
+ scratch_pool,
_("%s checksum mismatch in file %s"),
name, file_name));
}
diff --git a/subversion/libsvn_ra/compat.c b/subversion/libsvn_ra/compat.c
index f7307bf557a5..aba1c785d264 100644
--- a/subversion/libsvn_ra/compat.c
+++ b/subversion/libsvn_ra/compat.c
@@ -942,7 +942,7 @@ svn_ra__get_inherited_props_walk(svn_ra_session_t *session,
parent_url,
result_pool);
new_iprop->prop_hash = final_hash;
- svn_sort__array_insert(*inherited_props, &new_iprop, 0);
+ SVN_ERR(svn_sort__array_insert2(*inherited_props, &new_iprop, 0));
}
}
diff --git a/subversion/libsvn_ra/deprecated.c b/subversion/libsvn_ra/deprecated.c
index b7e717e8429f..2612be45d82b 100644
--- a/subversion/libsvn_ra/deprecated.c
+++ b/subversion/libsvn_ra/deprecated.c
@@ -151,6 +151,19 @@ static svn_ra_reporter2_t reporter_3in2_wrapper = {
abort_report
};
+svn_error_t *svn_ra_open4(svn_ra_session_t **session_p,
+ const char **corrected_url_p,
+ const char *repos_URL,
+ const char *uuid,
+ const svn_ra_callbacks2_t *callbacks,
+ void *callback_baton,
+ apr_hash_t *config,
+ apr_pool_t *pool)
+{
+ return svn_ra_open5(session_p, corrected_url_p, NULL, repos_URL, uuid,
+ callbacks, callback_baton, config, pool);
+}
+
svn_error_t *svn_ra_open3(svn_ra_session_t **session_p,
const char *repos_URL,
const char *uuid,
diff --git a/subversion/libsvn_ra/libsvn_ra.pc.in b/subversion/libsvn_ra/libsvn_ra.pc.in
index b7ef131365e5..3b44faee1d52 100644
--- a/subversion/libsvn_ra/libsvn_ra.pc.in
+++ b/subversion/libsvn_ra/libsvn_ra.pc.in
@@ -6,7 +6,7 @@ includedir=@includedir@
Name: libsvn_ra
Description: Subversion General Repository Access Library
Version: @PACKAGE_VERSION@
-Requires: apr-@SVN_APR_MAJOR_VERSION@
-Requires.private: libsvn_delta libsvn_subr
-Libs: -L${libdir} -lsvn_ra
-Cflags: -I${includedir}
+Requires: apr-@SVN_APR_MAJOR_VERSION@
+Requires.private: libsvn_delta, libsvn_subr
+Libs: -L${libdir} -lsvn_ra-1
+Cflags: -I${includedir}/subversion-1
diff --git a/subversion/libsvn_ra/ra_loader.c b/subversion/libsvn_ra/ra_loader.c
index ac07545e2ba0..0fc7407e4d2e 100644
--- a/subversion/libsvn_ra/ra_loader.c
+++ b/subversion/libsvn_ra/ra_loader.c
@@ -256,8 +256,9 @@ svn_ra_create_callbacks(svn_ra_callbacks2_t **callbacks,
return SVN_NO_ERROR;
}
-svn_error_t *svn_ra_open4(svn_ra_session_t **session_p,
+svn_error_t *svn_ra_open5(svn_ra_session_t **session_p,
const char **corrected_url_p,
+ const char **redirect_url_p,
const char *repos_URL,
const char *uuid,
const svn_ra_callbacks2_t *callbacks,
@@ -381,7 +382,7 @@ svn_error_t *svn_ra_open4(svn_ra_session_t **session_p,
session->pool = sesspool;
/* Ask the library to open the session. */
- err = vtable->open_session(session, corrected_url_p,
+ err = vtable->open_session(session, corrected_url_p, redirect_url_p,
repos_URL,
callbacks, callback_baton, auth_baton,
config, sesspool, scratch_pool);
@@ -406,12 +407,14 @@ svn_error_t *svn_ra_open4(svn_ra_session_t **session_p,
{
/* *session_p = NULL; */
*corrected_url_p = apr_pstrdup(pool, *corrected_url_p);
+ if (redirect_url_p && *redirect_url_p)
+ *redirect_url_p = apr_pstrdup(pool, *redirect_url_p);
svn_pool_destroy(sesspool); /* Includes scratch_pool */
return SVN_NO_ERROR;
}
if (vtable->set_svn_ra_open)
- SVN_ERR(vtable->set_svn_ra_open(session, svn_ra_open4));
+ SVN_ERR(vtable->set_svn_ra_open(session, svn_ra_open5));
/* Check the UUID. */
if (uuid)
@@ -472,7 +475,7 @@ svn_ra__dup_session(svn_ra_session_t **new_session,
scratch_pool));
if (session->vtable->set_svn_ra_open)
- SVN_ERR(session->vtable->set_svn_ra_open(session, svn_ra_open4));
+ SVN_ERR(session->vtable->set_svn_ra_open(session, svn_ra_open5));
*new_session = session;
return SVN_NO_ERROR;
diff --git a/subversion/libsvn_ra/ra_loader.h b/subversion/libsvn_ra/ra_loader.h
index c20b5bf92253..1cae42104bdb 100644
--- a/subversion/libsvn_ra/ra_loader.h
+++ b/subversion/libsvn_ra/ra_loader.h
@@ -42,6 +42,7 @@ extern "C" {
handed to the ra api to allow opening other ra sessions. */
typedef svn_error_t * (*svn_ra__open_func_t)(svn_ra_session_t **session_p,
const char **corrected_url,
+ const char **redirect_url,
const char *repos_URL,
const char *uuid,
const svn_ra_callbacks2_t *callbacks,
@@ -64,11 +65,12 @@ typedef struct svn_ra__vtable_t {
/* Implementations of the public API functions. */
- /* See svn_ra_open4(). */
+ /* See svn_ra_open5(). */
/* All fields in SESSION, except priv, have been initialized by the
time this is called. SESSION->priv may be set by this function. */
svn_error_t *(*open_session)(svn_ra_session_t *session,
const char **corrected_url,
+ const char **redirect_url,
const char *session_URL,
const svn_ra_callbacks2_t *callbacks,
void *callback_baton,
diff --git a/subversion/libsvn_ra/wrapper_template.h b/subversion/libsvn_ra/wrapper_template.h
index 0585deda87db..a74dbf17e758 100644
--- a/subversion/libsvn_ra/wrapper_template.h
+++ b/subversion/libsvn_ra/wrapper_template.h
@@ -90,7 +90,7 @@ static svn_error_t *compat_open(void **session_baton,
callbacks2->progress_func = NULL;
callbacks2->progress_baton = NULL;
- SVN_ERR(VTBL.open_session(sess, &session_url, repos_URL,
+ SVN_ERR(VTBL.open_session(sess, &session_url, NULL, repos_URL,
callbacks2, callback_baton,
callbacks ? callbacks->auth_baton : NULL,
config, sesspool, sesspool));
diff --git a/subversion/libsvn_ra_local/libsvn_ra_local.pc.in b/subversion/libsvn_ra_local/libsvn_ra_local.pc.in
index 1333df0b7de5..bef11b2b4da5 100644
--- a/subversion/libsvn_ra_local/libsvn_ra_local.pc.in
+++ b/subversion/libsvn_ra_local/libsvn_ra_local.pc.in
@@ -6,7 +6,7 @@ includedir=@includedir@
Name: libsvn_ra_local
Description: Subversion Local Repository Access Library
Version: @PACKAGE_VERSION@
-Requires: apr-@SVN_APR_MAJOR_VERSION@
-Requires.private: libsvn_repos libsvn_fs libsvn_delta libsvn_subr
-Libs: -L${libdir} -lsvn_ra_local
-Cflags: -I${includedir}
+Requires: apr-@SVN_APR_MAJOR_VERSION@
+Requires.private: libsvn_repos, libsvn_fs, libsvn_delta, libsvn_subr
+Libs: -L${libdir} -lsvn_ra_local-1
+Cflags: -I${includedir}/subversion-1
diff --git a/subversion/libsvn_ra_local/ra_plugin.c b/subversion/libsvn_ra_local/ra_plugin.c
index 7bff85f3b84a..8dcb3a99fbcc 100644
--- a/subversion/libsvn_ra_local/ra_plugin.c
+++ b/subversion/libsvn_ra_local/ra_plugin.c
@@ -554,6 +554,7 @@ ignore_warnings(void *baton,
static svn_error_t *
svn_ra_local__open(svn_ra_session_t *session,
const char **corrected_url,
+ const char **redirect_url,
const char *repos_URL,
const svn_ra_callbacks2_t *callbacks,
void *callback_baton,
@@ -576,6 +577,8 @@ svn_ra_local__open(svn_ra_session_t *session,
/* We don't support redirections in ra-local. */
if (corrected_url)
*corrected_url = NULL;
+ if (redirect_url)
+ *redirect_url = NULL;
/* Allocate and stash the session_sess args we have already. */
sess = apr_pcalloc(pool, sizeof(*sess));
diff --git a/subversion/libsvn_ra_serf/commit.c b/subversion/libsvn_ra_serf/commit.c
index 63a6f0bfa45b..1b25ab4b8ab1 100644
--- a/subversion/libsvn_ra_serf/commit.c
+++ b/subversion/libsvn_ra_serf/commit.c
@@ -311,7 +311,7 @@ checkout_node(const char **working_url,
fails due to an SVN_ERR_APMOD_BAD_BASELINE error return from the
server.
- See http://subversion.tigris.org/issues/show_bug.cgi?id=4127 for
+ See https://issues.apache.org/jira/browse/SVN-4127 for
details.
*/
static svn_error_t *
@@ -677,7 +677,7 @@ write_prop_xml(const proppatch_context_t *proppatch,
explicitly deleted in this commit already, then mod_dav removed its
lock token when it fielded the DELETE request, so we don't want to
set the lock precondition again. (See
- http://subversion.tigris.org/issues/show_bug.cgi?id=3674 for details.)
+ https://issues.apache.org/jira/browse/SVN-3674 for details.)
*/
static svn_error_t *
maybe_set_lock_token_header(serf_bucket_t *headers,
diff --git a/subversion/libsvn_ra_serf/inherited_props.c b/subversion/libsvn_ra_serf/inherited_props.c
index 6edafb1027cf..f4e9e5ed7951 100644
--- a/subversion/libsvn_ra_serf/inherited_props.c
+++ b/subversion/libsvn_ra_serf/inherited_props.c
@@ -340,7 +340,7 @@ get_iprops_via_more_requests(svn_ra_session_t *ra_session,
new_iprop = apr_palloc(result_pool, sizeof(*new_iprop));
new_iprop->path_or_url = apr_pstrdup(result_pool, rq->relpath);
new_iprop->prop_hash = svn_prop_hash_dup(node_props, result_pool);
- svn_sort__array_insert(*iprops, &new_iprop, 0);
+ SVN_ERR(svn_sort__array_insert2(*iprops, &new_iprop, 0));
}
return SVN_NO_ERROR;
diff --git a/subversion/libsvn_ra_serf/libsvn_ra_serf.pc.in b/subversion/libsvn_ra_serf/libsvn_ra_serf.pc.in
index 81285ed468d3..eb46915a8a82 100644
--- a/subversion/libsvn_ra_serf/libsvn_ra_serf.pc.in
+++ b/subversion/libsvn_ra_serf/libsvn_ra_serf.pc.in
@@ -6,7 +6,7 @@ includedir=@includedir@
Name: libsvn_ra_serf
Description: Subversion HTTP/WebDAV Protocol Repository Access Library
Version: @PACKAGE_VERSION@
-Requires: apr-util-@SVN_APR_MAJOR_VERSION@ apr-@SVN_APR_MAJOR_VERSION@
-Requires.private: libsvn_delta libsvn_subr serf-1
-Libs: -L${libdir} -lsvn_ra_serf @SVN_ZLIB_LIBS@
-Cflags: -I${includedir}
+Requires: apr-util-@SVN_APR_MAJOR_VERSION@, apr-@SVN_APR_MAJOR_VERSION@
+Requires.private: libsvn_delta, libsvn_subr, serf-1
+Libs: -L${libdir} -lsvn_ra_serf-1 @SVN_ZLIB_LIBS@
+Cflags: -I${includedir}/subversion-1
diff --git a/subversion/libsvn_ra_serf/list.c b/subversion/libsvn_ra_serf/list.c
index 722a946d3645..3b2ac9fdbe75 100644
--- a/subversion/libsvn_ra_serf/list.c
+++ b/subversion/libsvn_ra_serf/list.c
@@ -21,26 +21,13 @@
* ====================================================================
*/
-
-
-
-#include <apr_uri.h>
#include <serf.h>
#include "svn_hash.h"
-#include "svn_pools.h"
-#include "svn_ra.h"
-#include "svn_dav.h"
#include "svn_base64.h"
#include "svn_xml.h"
-#include "svn_config.h"
-#include "svn_path.h"
-#include "svn_props.h"
#include "svn_time.h"
-#include "private/svn_dav_protocol.h"
-#include "private/svn_string_private.h"
-#include "private/svn_subr_private.h"
#include "svn_private_config.h"
#include "ra_serf.h"
diff --git a/subversion/libsvn_ra_serf/lock.c b/subversion/libsvn_ra_serf/lock.c
index d303104b3684..a9d599260a4d 100644
--- a/subversion/libsvn_ra_serf/lock.c
+++ b/subversion/libsvn_ra_serf/lock.c
@@ -354,7 +354,7 @@ run_locks(svn_ra_serf__session_t *sess,
SVN_ERR(cb_err);
waittime_left = sess->timeout;
- svn_sort__array_delete(lock_ctxs, i, 1);
+ SVN_ERR(svn_sort__array_delete2(lock_ctxs, i, 1));
i--;
svn_pool_destroy(ctx->pool);
diff --git a/subversion/libsvn_ra_serf/options.c b/subversion/libsvn_ra_serf/options.c
index 9cb507c8f470..a3d321a64715 100644
--- a/subversion/libsvn_ra_serf/options.c
+++ b/subversion/libsvn_ra_serf/options.c
@@ -71,6 +71,9 @@ typedef struct options_context_t {
svn_ra_serf__response_handler_t inner_handler;
void *inner_baton;
+ /* Have we received any DAV headers at all? */
+ svn_boolean_t received_dav_header;
+
const char *activity_collection;
svn_revnum_t youngest_rev;
@@ -165,6 +168,8 @@ capabilities_headers_iterator_callback(void *baton,
apr_array_header_t *vals = svn_cstring_split(val, ",", TRUE,
opt_ctx->pool);
+ opt_ctx->received_dav_header = TRUE;
+
/* Right now we only have a few capabilities to detect, so just
seek for them directly. This could be written slightly more
efficiently, but that wouldn't be worth it until we have many
@@ -396,6 +401,19 @@ options_response_handler(serf_request_t *request,
serf_bucket_headers_do(hdrs, capabilities_headers_iterator_callback,
opt_ctx);
+ /* Bail out early if we're not talking to a DAV server.
+ Note that this check is only valid if we've received a success
+ response; redirects and errors don't count. */
+ if (opt_ctx->handler->sline.code >= 200
+ && opt_ctx->handler->sline.code < 300
+ && !opt_ctx->received_dav_header)
+ {
+ return svn_error_createf
+ (SVN_ERR_RA_DAV_OPTIONS_REQ_FAILED, NULL,
+ _("The server at '%s' does not support the HTTP/DAV protocol"),
+ session->session_url_str);
+ }
+
/* Assume mergeinfo capability unsupported, if didn't receive information
about server or repository mergeinfo capability. */
if (!svn_hash_gets(session->capabilities, SVN_RA_CAPABILITY_MERGEINFO))
@@ -528,6 +546,7 @@ svn_ra_serf__v1_get_activity_collection(const char **activity_url,
svn_error_t *
svn_ra_serf__exchange_capabilities(svn_ra_serf__session_t *serf_sess,
const char **corrected_url,
+ const char **redirect_url,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
@@ -535,6 +554,8 @@ svn_ra_serf__exchange_capabilities(svn_ra_serf__session_t *serf_sess,
if (corrected_url)
*corrected_url = NULL;
+ if (redirect_url)
+ *redirect_url = NULL;
/* This routine automatically fills in serf_sess->capabilities */
SVN_ERR(create_options_req(&opt_ctx, serf_sess, scratch_pool));
@@ -557,8 +578,11 @@ svn_ra_serf__exchange_capabilities(svn_ra_serf__session_t *serf_sess,
}
else if (svn_path_is_url(opt_ctx->handler->location))
{
- *corrected_url = svn_uri_canonicalize(opt_ctx->handler->location,
- result_pool);
+ SVN_ERR(svn_uri_canonicalize_safe(corrected_url, NULL,
+ opt_ctx->handler->location, result_pool, scratch_pool));
+ if (redirect_url)
+ *redirect_url = apr_pstrdup(result_pool,
+ opt_ctx->handler->location);
}
else
{
@@ -569,11 +593,14 @@ svn_ra_serf__exchange_capabilities(svn_ra_serf__session_t *serf_sess,
See issue #3775 for details. */
apr_uri_t corrected_URI = serf_sess->session_url;
+ char *absolute_uri;
corrected_URI.path = (char *)corrected_url;
- *corrected_url = svn_uri_canonicalize(
- apr_uri_unparse(scratch_pool, &corrected_URI, 0),
- result_pool);
+ absolute_uri = apr_uri_unparse(scratch_pool, &corrected_URI, 0);
+ SVN_ERR(svn_uri_canonicalize_safe(corrected_url, NULL,
+ absolute_uri, result_pool, scratch_pool));
+ if (redirect_url)
+ *redirect_url = apr_pstrdup(result_pool, absolute_uri);
}
return SVN_NO_ERROR;
@@ -681,7 +708,8 @@ svn_ra_serf__has_capability(svn_ra_session_t *ra_session,
/* If any capability is unknown, they're all unknown, so ask. */
if (cap_result == NULL)
- SVN_ERR(svn_ra_serf__exchange_capabilities(serf_sess, NULL, pool, pool));
+ SVN_ERR(svn_ra_serf__exchange_capabilities(serf_sess, NULL, NULL,
+ pool, pool));
/* Try again, now that we've fetched the capabilities. */
cap_result = svn_hash_gets(serf_sess->capabilities, capability);
diff --git a/subversion/libsvn_ra_serf/ra_serf.h b/subversion/libsvn_ra_serf/ra_serf.h
index 9191d073bbc4..0135e8137a70 100644
--- a/subversion/libsvn_ra_serf/ra_serf.h
+++ b/subversion/libsvn_ra_serf/ra_serf.h
@@ -1472,6 +1472,7 @@ svn_ra_serf__get_mergeinfo(svn_ra_session_t *ra_session,
svn_error_t *
svn_ra_serf__exchange_capabilities(svn_ra_serf__session_t *serf_sess,
const char **corrected_url,
+ const char **redirect_url,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
diff --git a/subversion/libsvn_ra_serf/replay.c b/subversion/libsvn_ra_serf/replay.c
index bb90ad4a8041..27b4bdce9656 100644
--- a/subversion/libsvn_ra_serf/replay.c
+++ b/subversion/libsvn_ra_serf/replay.c
@@ -666,7 +666,7 @@ svn_ra_serf__replay_range(svn_ra_session_t *ra_session,
apr_pool_t *subpool = svn_pool_create(scratch_pool);
if (session->http20) {
- /* ### Auch... this doesn't work yet...
+ /* ### Auch... this doesn't work yet...
This code relies on responses coming in in an exact order, while
http2 does everything to deliver responses as fast as possible.
@@ -701,7 +701,7 @@ svn_ra_serf__replay_range(svn_ra_session_t *ra_session,
wish for the best.
See issue #4287:
- http://subversion.tigris.org/issues/show_bug.cgi?id=4287
+ https://issues.apache.org/jira/browse/SVN-4287
*/
if (session->supports_rev_rsrc_replay)
{
diff --git a/subversion/libsvn_ra_serf/serf.c b/subversion/libsvn_ra_serf/serf.c
index 830e5cad532e..1a79bdc00121 100644
--- a/subversion/libsvn_ra_serf/serf.c
+++ b/subversion/libsvn_ra_serf/serf.c
@@ -363,7 +363,7 @@ load_config(svn_ra_serf__session_t *session,
{
apr_int64_t timeout;
svn_error_t *err;
-
+
err = svn_cstring_strtoi64(&timeout, timeout_str, 0, APR_INT64_MAX, 10);
if (err)
return svn_error_createf(SVN_ERR_BAD_CONFIG_VALUE, err,
@@ -476,6 +476,7 @@ get_user_agent_string(apr_pool_t *pool)
static svn_error_t *
svn_ra_serf__open(svn_ra_session_t *session,
const char **corrected_url,
+ const char **redirect_url,
const char *session_URL,
const svn_ra_callbacks2_t *callbacks,
void *callback_baton,
@@ -492,6 +493,8 @@ svn_ra_serf__open(svn_ra_session_t *session,
if (corrected_url)
*corrected_url = NULL;
+ if (redirect_url)
+ *redirect_url = NULL;
serf_sess = apr_pcalloc(result_pool, sizeof(*serf_sess));
serf_sess->pool = result_pool;
@@ -588,7 +591,7 @@ svn_ra_serf__open(svn_ra_session_t *session,
Luckily our caller now passes us two pools which handle this case.
*/
#if defined(SVN_DEBUG) && !SERF_VERSION_AT_LEAST(1,4,0)
- /* Currently ensured by svn_ra_open4().
+ /* Currently ensured by svn_ra_open5().
If failing causes segfault in basic_tests.py 48, "basic auth test" */
SVN_ERR_ASSERT((serf_sess->pool != scratch_pool)
&& apr_pool_is_ancestor(serf_sess->pool, scratch_pool));
@@ -599,6 +602,7 @@ svn_ra_serf__open(svn_ra_session_t *session,
serf_sess->conn_latency = -1;
err = svn_ra_serf__exchange_capabilities(serf_sess, corrected_url,
+ redirect_url,
result_pool, scratch_pool);
/* serf should produce a usable error code instead of APR_EGENERAL */
diff --git a/subversion/libsvn_ra_serf/update.c b/subversion/libsvn_ra_serf/update.c
index 63091f2ebd21..fc68adffbe33 100644
--- a/subversion/libsvn_ra_serf/update.c
+++ b/subversion/libsvn_ra_serf/update.c
@@ -603,7 +603,7 @@ get_best_connection(report_context_t *ctx)
### simply can't handle the way ra_serf violates the editor v1
### drive ordering requirements.
###
- ### See http://subversion.tigris.org/issues/show_bug.cgi?id=4116.
+ ### See https://issues.apache.org/jira/browse/SVN-4116.
*/
if (ctx->report_received && (ctx->sess->max_connections > 2))
first_conn = 0;
diff --git a/subversion/libsvn_ra_serf/util.c b/subversion/libsvn_ra_serf/util.c
index 52bf93b3a9b1..e545d77f1be9 100644
--- a/subversion/libsvn_ra_serf/util.c
+++ b/subversion/libsvn_ra_serf/util.c
@@ -756,6 +756,9 @@ handle_client_cert_pw(void *data,
if (creds)
{
+ /* At this stage we are unable to check whether the password
+ is correct; if it is incorrect serf will fail to establish
+ an SSL connection and will return a generic SSL error. */
svn_auth_cred_ssl_client_cert_pw_t *pw_creds;
pw_creds = creds;
*password = pw_creds->password;
@@ -1113,19 +1116,17 @@ response_get_location(serf_bucket_t *response,
return NULL;
/* Replace the path path with what we got */
- uri.path = (char*)svn_urlpath__canonicalize(location, scratch_pool);
+ uri.path = apr_pstrdup(scratch_pool, location);
/* And make APR produce a proper full url for us */
- location = apr_uri_unparse(scratch_pool, &uri, 0);
-
- /* Fall through to ensure our canonicalization rules */
+ return apr_uri_unparse(result_pool, &uri, 0);
}
else if (!svn_path_is_url(location))
{
return NULL; /* Any other formats we should support? */
}
- return svn_uri_canonicalize(location, result_pool);
+ return apr_pstrdup(result_pool, location);
}
@@ -1445,6 +1446,23 @@ handle_response(serf_request_t *request,
process_body:
+ /* A client cert file password was obtained and worked (any HTTP
+ response means that the SSL connection was established.) */
+ if (handler->conn->ssl_client_pw_auth_state)
+ {
+ SVN_ERR(svn_auth_save_credentials(handler->conn->ssl_client_pw_auth_state,
+ handler->session->pool));
+ handler->conn->ssl_client_pw_auth_state = NULL;
+ }
+ if (handler->conn->ssl_client_auth_state)
+ {
+ /* The cert file provider doesn't have any code to save creds so
+ this is currently a no-op. */
+ SVN_ERR(svn_auth_save_credentials(handler->conn->ssl_client_auth_state,
+ handler->session->pool));
+ handler->conn->ssl_client_auth_state = NULL;
+ }
+
/* We've been instructed to ignore the body. Drain whatever is present. */
if (handler->discard_body)
{
diff --git a/subversion/libsvn_ra_svn/client.c b/subversion/libsvn_ra_svn/client.c
index ab1aa58cdc48..f48451900aaf 100644
--- a/subversion/libsvn_ra_svn/client.c
+++ b/subversion/libsvn_ra_svn/client.c
@@ -841,6 +841,7 @@ is_valid_hostinfo(const char *hostinfo)
static svn_error_t *ra_svn_open(svn_ra_session_t *session,
const char **corrected_url,
+ const char **redirect_url,
const char *url,
const svn_ra_callbacks2_t *callbacks,
void *callback_baton,
@@ -858,6 +859,8 @@ static svn_error_t *ra_svn_open(svn_ra_session_t *session,
/* We don't support server-prescribed redirections in ra-svn. */
if (corrected_url)
*corrected_url = NULL;
+ if (redirect_url)
+ *redirect_url = NULL;
SVN_ERR(parse_url(url, &uri, sess_pool));
@@ -913,7 +916,7 @@ static svn_error_t *ra_svn_dup_session(svn_ra_session_t *new_session,
{
svn_ra_svn__session_baton_t *old_sess = old_session->priv;
- SVN_ERR(ra_svn_open(new_session, NULL, new_session_url,
+ SVN_ERR(ra_svn_open(new_session, NULL, NULL, new_session_url,
old_sess->callbacks, old_sess->callbacks_baton,
old_sess->auth_baton, old_sess->config,
result_pool, scratch_pool));
@@ -3105,6 +3108,7 @@ ra_svn_get_deleted_rev(svn_ra_session_t *session,
{
svn_ra_svn__session_baton_t *sess_baton = session->priv;
svn_ra_svn_conn_t *conn = sess_baton->conn;
+ svn_error_t *err;
path = reparent_path(session, path, pool);
@@ -3116,8 +3120,20 @@ ra_svn_get_deleted_rev(svn_ra_session_t *session,
SVN_ERR(handle_unsupported_cmd(handle_auth_request(sess_baton, pool),
N_("'get-deleted-rev' not implemented")));
- return svn_error_trace(svn_ra_svn__read_cmd_response(conn, pool, "r",
- revision_deleted));
+ err = svn_error_trace(svn_ra_svn__read_cmd_response(conn, pool, "r",
+ revision_deleted));
+ /* The protocol does not allow for a reply of SVN_INVALID_REVNUM directly.
+ Instead, a new enough server returns SVN_ERR_ENTRY_MISSING_REVISION to
+ indicate the answer to the query is SVN_INVALID_REVNUM. (An older server
+ closes the connection and returns SVN_ERR_RA_SVN_CONNECTION_CLOSED.) */
+ if (err && err->apr_err == SVN_ERR_ENTRY_MISSING_REVISION)
+ {
+ *revision_deleted = SVN_INVALID_REVNUM;
+ svn_error_clear(err);
+ }
+ else
+ SVN_ERR(err);
+ return SVN_NO_ERROR;
}
static svn_error_t *
diff --git a/subversion/libsvn_ra_svn/editorp.c b/subversion/libsvn_ra_svn/editorp.c
index 10c8a2b04a63..438bbfc4d490 100644
--- a/subversion/libsvn_ra_svn/editorp.c
+++ b/subversion/libsvn_ra_svn/editorp.c
@@ -118,7 +118,7 @@ make_token(char type,
char buffer[1 + SVN_INT64_BUFFER_SIZE];
buffer[0] = type;
len = 1 + svn__ui64toa(&buffer[1], eb->next_token++);
-
+
return svn_string_ncreate(buffer, len, pool);
}
diff --git a/subversion/libsvn_ra_svn/libsvn_ra_svn.pc.in b/subversion/libsvn_ra_svn/libsvn_ra_svn.pc.in
index 4d6768986f13..39666c0d1dd1 100644
--- a/subversion/libsvn_ra_svn/libsvn_ra_svn.pc.in
+++ b/subversion/libsvn_ra_svn/libsvn_ra_svn.pc.in
@@ -6,7 +6,7 @@ includedir=@includedir@
Name: libsvn_ra_svn
Description: Subversion SVN Protocol Repository Access Library
Version: @PACKAGE_VERSION@
-Requires: apr-util-@SVN_APR_MAJOR_VERSION@ apr-@SVN_APR_MAJOR_VERSION@
-Requires.private: libsvn_delta libsvn_subr
-Libs: -L${libdir} -lsvn_ra_svn @SVN_SASL_LIBS@
-Cflags: -I${includedir}
+Requires: apr-util-@SVN_APR_MAJOR_VERSION@, apr-@SVN_APR_MAJOR_VERSION@
+Requires.private: libsvn_delta, libsvn_subr
+Libs: -L${libdir} -lsvn_ra_svn-1 @SVN_SASL_LIBS@
+Cflags: -I${includedir}/subversion-1
diff --git a/subversion/libsvn_ra_svn/protocol b/subversion/libsvn_ra_svn/protocol
index dfa7bc4585ac..b067d8744d8c 100644
--- a/subversion/libsvn_ra_svn/protocol
+++ b/subversion/libsvn_ra_svn/protocol
@@ -342,7 +342,7 @@ second place for auth-request point as noted below.
stat
params: ( path:string [ rev:number ] )
response: ( ? entry:dirent )
- dirent: ( name:string kind:node-kind size:number has-props:bool
+ dirent: ( kind:node-kind size:number has-props:bool
created-rev:number [ created-date:string ]
[ last-author:string ] )
New in svn 1.2. If path is non-existent, an empty response is returned.
diff --git a/subversion/libsvn_repos/authz.c b/subversion/libsvn_repos/authz.c
index 668d78dd5993..9f8dbc5a08f7 100644
--- a/subversion/libsvn_repos/authz.c
+++ b/subversion/libsvn_repos/authz.c
@@ -81,11 +81,11 @@ typedef struct limited_rights_t
*/
path_access_t access;
- /* Minimal access rights that the user has on this or any other node in
+ /* Minimal access rights that the user has on this or any other node in
* the sub-tree. This does not take inherited rights into account. */
authz_access_t min_rights;
- /* Maximal access rights that the user has on this or any other node in
+ /* Maximal access rights that the user has on this or any other node in
* the sub-tree. This does not take inherited rights into account. */
authz_access_t max_rights;
@@ -369,7 +369,7 @@ ensure_node_in_array(apr_array_header_t **array,
* Create one and insert it into the sorted array. */
entry.node = create_node(segment, result_pool);
entry.next = NULL;
- svn_sort__array_insert(*array, &entry, idx);
+ svn_error_clear(svn_sort__array_insert2(*array, &entry, idx));
return entry.node;
}
@@ -889,7 +889,7 @@ create_user_authz(authz_full_t *authz,
/* Use a separate sub-pool to keep memory usage tight. */
apr_pool_t *subpool = svn_pool_create(scratch_pool);
- /* Find all ACLs for REPOSITORY.
+ /* Find all ACLs for REPOSITORY.
* Note that repo-specific rules replace global rules,
* even if they don't apply to the current user. */
apr_array_header_t *acls = apr_array_make(subpool, authz->acls->nelts,
@@ -947,7 +947,7 @@ create_user_authz(authz_full_t *authz,
svn_pool_clear(subpool);
trim_tree(root, NO_SEQUENCE_NUMBER, subpool);
- /* Calculate recursive rights.
+ /* Calculate recursive rights.
*
* This is a bottom-up calculation of the range of access rights
* specified anywhere in the respective sub-tree, including the base
@@ -999,7 +999,7 @@ static lookup_state_t *
create_lookup_state(apr_pool_t *result_pool)
{
lookup_state_t *state = apr_pcalloc(result_pool, sizeof(*state));
-
+
state->next = apr_array_make(result_pool, 4, sizeof(node_t *));
state->current = apr_array_make(result_pool, 4, sizeof(node_t *));
@@ -1548,6 +1548,8 @@ authz_read(authz_full_t **authz_p,
const char *groups_path,
svn_boolean_t must_exist,
svn_repos_t *repos_hint,
+ svn_repos_authz_warning_func_t warning_func,
+ void *warning_baton,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
@@ -1587,7 +1589,8 @@ authz_read(authz_full_t **authz_p,
/* Parse the configuration(s) and construct the full authz model
* from it. */
err = svn_authz__parse(authz_p, rules_stream, groups_stream,
- item_pool, scratch_pool);
+ warning_func, warning_baton,
+ item_pool, scratch_pool);
if (err != SVN_NO_ERROR)
{
/* That pool would otherwise never get destroyed. */
@@ -1611,11 +1614,11 @@ authz_read(authz_full_t **authz_p,
{
/* Parse the configuration(s) and construct the full authz model from
* it. */
- err = svn_error_quick_wrapf(svn_authz__parse(authz_p, rules_stream,
- groups_stream,
- result_pool, scratch_pool),
- "Error while parsing authz file: '%s':",
- path);
+ err = svn_error_quick_wrapf(
+ svn_authz__parse(authz_p, rules_stream, groups_stream,
+ warning_func, warning_baton,
+ result_pool, scratch_pool),
+ "Error while parsing authz file: '%s':", path);
}
svn_repos__destroy_config_access(config_access);
@@ -1628,11 +1631,13 @@ authz_read(authz_full_t **authz_p,
/*** Public functions. ***/
svn_error_t *
-svn_repos_authz_read3(svn_authz_t **authz_p,
+svn_repos_authz_read4(svn_authz_t **authz_p,
const char *path,
const char *groups_path,
svn_boolean_t must_exist,
svn_repos_t *repos_hint,
+ svn_repos_authz_warning_func_t warning_func,
+ void *warning_baton,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
@@ -1640,7 +1645,8 @@ svn_repos_authz_read3(svn_authz_t **authz_p,
authz->pool = result_pool;
SVN_ERR(authz_read(&authz->full, &authz->authz_id, path, groups_path,
- must_exist, repos_hint, result_pool, scratch_pool));
+ must_exist, repos_hint, warning_func, warning_baton,
+ result_pool, scratch_pool));
*authz_p = authz;
return SVN_NO_ERROR;
@@ -1648,18 +1654,21 @@ svn_repos_authz_read3(svn_authz_t **authz_p,
svn_error_t *
-svn_repos_authz_parse(svn_authz_t **authz_p, svn_stream_t *stream,
- svn_stream_t *groups_stream, apr_pool_t *pool)
+svn_repos_authz_parse2(svn_authz_t **authz_p,
+ svn_stream_t *stream,
+ svn_stream_t *groups_stream,
+ svn_repos_authz_warning_func_t warning_func,
+ void *warning_baton,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
{
- apr_pool_t *scratch_pool = svn_pool_create(pool);
- svn_authz_t *authz = apr_pcalloc(pool, sizeof(*authz));
- authz->pool = pool;
+ svn_authz_t *authz = apr_pcalloc(result_pool, sizeof(*authz));
+ authz->pool = result_pool;
/* Parse the configuration and construct the full authz model from it. */
- SVN_ERR(svn_authz__parse(&authz->full, stream, groups_stream, pool,
- scratch_pool));
-
- svn_pool_destroy(scratch_pool);
+ SVN_ERR(svn_authz__parse(&authz->full, stream, groups_stream,
+ warning_func, warning_baton,
+ result_pool, scratch_pool));
*authz_p = authz;
return SVN_NO_ERROR;
diff --git a/subversion/libsvn_repos/authz.h b/subversion/libsvn_repos/authz.h
index 7187335a94fd..4a62a768cb7a 100644
--- a/subversion/libsvn_repos/authz.h
+++ b/subversion/libsvn_repos/authz.h
@@ -139,6 +139,10 @@ typedef struct authz_full_t
svn_boolean_t has_authn_rights;
authz_global_rights_t authn_rights;
+ /* Globally accumulated rights from inverted selectors. */
+ svn_boolean_t has_neg_rights;
+ authz_global_rights_t neg_rights;
+
/* Globally accumulated rights, for all concrete users mentioned
in the authz file. The key is the user name, the value is
an authz_global_rights_t*. */
@@ -257,14 +261,19 @@ typedef struct authz_acl_t
/* The parsed rule. */
authz_rule_t rule;
- /* Access rights for anonymous users */
+
+ /* Access rights for anonymous users. */
svn_boolean_t has_anon_access;
authz_access_t anon_access;
- /* Access rights for authenticated users */
+ /* Access rights for authenticated users. */
svn_boolean_t has_authn_access;
authz_access_t authn_access;
+ /* Access rights from inverted selectors. */
+ svn_boolean_t has_neg_access;
+ authz_access_t neg_access;
+
/* All other user- or group-specific access rights.
Aliases are replaced with their definitions, rules for the same
user or group are merged. */
@@ -303,6 +312,8 @@ svn_error_t *
svn_authz__parse(authz_full_t **authz,
svn_stream_t *rules,
svn_stream_t *groups,
+ svn_repos_authz_warning_func_t warning_func,
+ void *warning_baton,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
diff --git a/subversion/libsvn_repos/authz_info.c b/subversion/libsvn_repos/authz_info.c
index 8f3a8b63b12a..ff102fd4bef3 100644
--- a/subversion/libsvn_repos/authz_info.c
+++ b/subversion/libsvn_repos/authz_info.c
@@ -148,37 +148,50 @@ svn_authz__get_global_rights(authz_rights_t *rights_p,
{
/* Check if we have explicit rights for anonymous access. */
if (authz->has_anon_rights)
- return resolve_global_rights(rights_p, &authz->anon_rights, repos);
+ {
+ return resolve_global_rights(rights_p, &authz->anon_rights, repos);
+ }
+ else
+ {
+ /* Return the implicit rights, i.e., none. */
+ rights_p->min_access = authz_access_none;
+ rights_p->max_access = authz_access_none;
+ return FALSE;
+ }
}
else
{
+ svn_boolean_t combine_user_rights = FALSE;
+ svn_boolean_t access = FALSE;
+
/* Check if we have explicit rights for this user. */
const authz_global_rights_t *const user_rights =
svn_hash_gets(authz->user_rights, user);
if (user_rights)
{
- svn_boolean_t explicit
- = resolve_global_rights(rights_p, user_rights, repos);
-
- /* Rights given to _any_ authenticated user may apply, too. */
- if (authz->has_authn_rights)
- {
- authz_rights_t authn;
- explicit |= resolve_global_rights(&authn, &authz->authn_rights,
- repos);
- combine_rights(rights_p, rights_p, &authn);
- }
- return explicit;
+ access = resolve_global_rights(rights_p, user_rights, repos);
+ combine_user_rights = TRUE;
+ }
+ else if (authz->has_neg_rights)
+ {
+ /* Check if inverted-rule rights apply */
+ access = resolve_global_rights(rights_p, &authz->neg_rights, repos);
+ combine_user_rights = TRUE;
}
- /* Check if we have explicit rights for authenticated access. */
+ /* Rights given to _any_ authenticated user may apply, too. */
if (authz->has_authn_rights)
- return resolve_global_rights(rights_p, &authz->authn_rights, repos);
- }
+ {
+ authz_rights_t authn;
+ access |= resolve_global_rights(&authn, &authz->authn_rights, repos);
- /* Fall-through: return the implicit rights, i.e., none. */
- rights_p->min_access = authz_access_none;
- rights_p->max_access = authz_access_none;
- return FALSE;
+ if (combine_user_rights)
+ combine_rights(rights_p, rights_p, &authn);
+ else
+ *rights_p = authn;
+ }
+
+ return access;
+ }
}
diff --git a/subversion/libsvn_repos/authz_parse.c b/subversion/libsvn_repos/authz_parse.c
index 8b5893ea576a..4fb064d5a855 100644
--- a/subversion/libsvn_repos/authz_parse.c
+++ b/subversion/libsvn_repos/authz_parse.c
@@ -127,6 +127,10 @@ typedef struct ctor_baton_t
svn_membuf_t rule_path_buffer;
svn_stringbuf_t *rule_string_buffer;
+ /* The warning callback and its baton. */
+ svn_repos_authz_warning_func_t warning_func;
+ void *warning_baton;
+
/* The parser's scratch pool. This may not be the same pool as
passed to the constructor callbacks, that is supposed to be an
iteration pool maintained by the generic parser.
@@ -154,6 +158,8 @@ static const char anon_access_token[] = "$anonymous";
/* The authenticated access token. */
static const char authn_access_token[] = "$authenticated";
+/* Fake token for inverted rights. */
+static const char neg_access_token[] = "~~$inverted";
/* Initialize a rights structure.
The minimum rights start with all available access and are later
@@ -191,6 +197,8 @@ insert_default_acl(ctor_baton_t *cb)
acl->acl.has_anon_access = TRUE;
acl->acl.authn_access = authz_access_none;
acl->acl.has_authn_access = TRUE;
+ acl->acl.neg_access = authz_access_none;
+ acl->acl.has_neg_access = TRUE;
acl->acl.user_access = NULL;
acl->aces = svn_hash__make(cb->parser_pool);
acl->alias_aces = svn_hash__make(cb->parser_pool);
@@ -199,7 +207,9 @@ insert_default_acl(ctor_baton_t *cb)
/* Initialize a constuctor baton. */
static ctor_baton_t *
-create_ctor_baton(apr_pool_t *result_pool,
+create_ctor_baton(svn_repos_authz_warning_func_t warning_func,
+ void *warning_baton,
+ apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
apr_pool_t *const parser_pool = svn_pool_create(scratch_pool);
@@ -208,6 +218,7 @@ create_ctor_baton(apr_pool_t *result_pool,
authz_full_t *const authz = apr_pcalloc(result_pool, sizeof(*authz));
init_global_rights(&authz->anon_rights, anon_access_token, result_pool);
init_global_rights(&authz->authn_rights, authn_access_token, result_pool);
+ init_global_rights(&authz->neg_rights, neg_access_token, result_pool);
authz->user_rights = svn_hash__make(result_pool);
authz->pool = result_pool;
@@ -229,6 +240,9 @@ create_ctor_baton(apr_pool_t *result_pool,
svn_membuf__create(&cb->rule_path_buffer, 0, parser_pool);
cb->rule_string_buffer = svn_stringbuf_create_empty(parser_pool);
+ cb->warning_func = warning_func;
+ cb->warning_baton = warning_baton;
+
cb->parser_pool = parser_pool;
insert_default_acl(cb);
@@ -237,6 +251,25 @@ create_ctor_baton(apr_pool_t *result_pool,
}
+/* Emit a warning. Clears ERROR */
+static void
+emit_parser_warning(const ctor_baton_t *cb,
+ svn_error_t *error,
+ apr_pool_t *scratch_pool)
+{
+ if (cb->warning_func)
+ cb->warning_func(cb->warning_baton, error, scratch_pool);
+ svn_error_clear(error);
+}
+
+/* Avoid creating an error struct if there is no warning function. */
+#define SVN_AUTHZ_PARSE_WARN(cb, err, pool) \
+ do { \
+ if ((cb) && (cb)->warning_func) \
+ emit_parser_warning((cb), (err), (pool)); \
+ } while(0)
+
+
/* Create and store per-user global rights.
The USER string must be interned or statically initialized. */
static void
@@ -536,7 +569,7 @@ parse_rule_path(authz_rule_t *rule,
|| (pattern->len == 2 && pattern->data[1] == '*'))
{
/* Process * and **, applying normalization as per
- https://wiki.apache.org/subversion/AuthzImprovements. */
+ https://cwiki.apache.org/confluence/display/SVN/Authz+Improvements. */
authz_rule_segment_t *const prev =
(nseg > 1 ? segment - 1 : NULL);
@@ -758,6 +791,8 @@ rules_open_section(void *baton, svn_stringbuf_t *section)
acl.acl.has_anon_access = FALSE;
acl.acl.authn_access = authz_access_none;
acl.acl.has_authn_access = FALSE;
+ acl.acl.neg_access = authz_access_none;
+ acl.acl.has_neg_access = FALSE;
acl.acl.user_access = NULL;
acl.aces = svn_hash__make(cb->parser_pool);
@@ -958,6 +993,14 @@ add_access_entry(ctor_baton_t *cb, svn_stringbuf_t *section,
if (!aliased && *ace->name != '@')
prepare_global_rights(cb, ace->name);
}
+
+ /* Propagate rights for inverted selectors to the global rights, otherwise
+ an access check can bail out early. See: SVN-4793 */
+ if (inverted)
+ {
+ acl->acl.has_neg_access = TRUE;
+ acl->acl.neg_access |= access;
+ }
}
return SVN_NO_ERROR;
@@ -996,7 +1039,8 @@ close_section(void *baton, svn_stringbuf_t *section)
/* Add a user to GROUP.
- GROUP is never internalized, but USER always is. */
+ GROUP is never internalized, but USER always is.
+ Adding a NULL user will create an empty group, if it doesn't exist. */
static void
add_to_group(ctor_baton_t *cb, const char *group, const char *user)
{
@@ -1007,7 +1051,8 @@ add_to_group(ctor_baton_t *cb, const char *group, const char *user)
members = svn_hash__make(cb->authz->pool);
svn_hash_sets(cb->expanded_groups, group, members);
}
- svn_hash_sets(members, user, interned_empty_string);
+ if (user)
+ svn_hash_sets(members, user, interned_empty_string);
}
@@ -1023,8 +1068,15 @@ expand_group_callback(void *baton,
ctor_baton_t *const cb = baton;
const char *const group = key;
apr_array_header_t *members = value;
-
int i;
+
+ if (0 == members->nelts)
+ {
+ /* Create the group with no members. */
+ add_to_group(cb, group, NULL);
+ return SVN_NO_ERROR;
+ }
+
for (i = 0; i < members->nelts; ++i)
{
const char *member = APR_ARRAY_IDX(members, i, const char*);
@@ -1154,10 +1206,24 @@ array_insert_ace(void *baton,
SVN_ERR_ASSERT(ace->members == NULL);
ace->members = svn_hash_gets(iab->cb->expanded_groups, ace->name);
if (!ace->members)
- return svn_error_createf(
- SVN_ERR_AUTHZ_INVALID_CONFIG, NULL,
- _("Access entry refers to undefined group '%s'"),
- ace->name);
+ {
+ return svn_error_createf(
+ SVN_ERR_AUTHZ_INVALID_CONFIG, NULL,
+ _("Access entry refers to undefined group '%s'"),
+ ace->name);
+ }
+ else if (0 == apr_hash_count(ace->members))
+ {
+ /* An ACE for an empty group has no effect, so ignore it. */
+ SVN_AUTHZ_PARSE_WARN(
+ iab->cb,
+ svn_error_createf(
+ SVN_ERR_AUTHZ_INVALID_CONFIG, NULL,
+ _("Ignoring access entry for empty group '%s'"),
+ ace->name),
+ scratch_pool);
+ return SVN_NO_ERROR;
+ }
}
APR_ARRAY_PUSH(iab->ace_array, authz_ace_t) = *ace;
@@ -1271,6 +1337,12 @@ expand_acl_callback(void *baton,
update_global_rights(&cb->authz->authn_rights,
acl->rule.repos, acl->authn_access);
}
+ if (acl->has_neg_access)
+ {
+ cb->authz->has_neg_rights = TRUE;
+ update_global_rights(&cb->authz->neg_rights,
+ acl->rule.repos, acl->neg_access);
+ }
SVN_ERR(svn_iter_apr_hash(NULL, cb->authz->user_rights,
update_user_rights, acl, scratch_pool));
return SVN_NO_ERROR;
@@ -1297,10 +1369,13 @@ svn_error_t *
svn_authz__parse(authz_full_t **authz,
svn_stream_t *rules,
svn_stream_t *groups,
+ svn_repos_authz_warning_func_t warning_func,
+ void *warning_baton,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
- ctor_baton_t *const cb = create_ctor_baton(result_pool, scratch_pool);
+ ctor_baton_t *const cb = create_ctor_baton(warning_func, warning_baton,
+ result_pool, scratch_pool);
/*
* Pass 1: Parse the authz file.
diff --git a/subversion/libsvn_repos/commit.c b/subversion/libsvn_repos/commit.c
index 6ce4cc6f7ffd..515600d4f94f 100644
--- a/subversion/libsvn_repos/commit.c
+++ b/subversion/libsvn_repos/commit.c
@@ -189,7 +189,7 @@ check_out_of_date(struct edit_baton *eb,
else if (base_rev > created_rev)
{
if (base_rev > svn_fs_txn_base_revision(eb->txn))
- return svn_error_createf(SVN_ERR_FS_NO_SUCH_REVISION, NULL,
+ return svn_error_createf(SVN_ERR_FS_NO_SUCH_REVISION, NULL,
_("No such revision %ld"),
base_rev);
}
@@ -306,13 +306,14 @@ add_file_or_directory(const char *path,
struct edit_baton *eb = pb->edit_baton;
apr_pool_t *subpool = svn_pool_create(pool);
svn_boolean_t was_copied = FALSE;
- const char *full_path;
+ const char *full_path, *canonicalized_path;
/* Reject paths which contain control characters (related to issue #4340). */
SVN_ERR(svn_path_check_valid(path, pool));
- full_path = svn_fspath__join(eb->base_path,
- svn_relpath_canonicalize(path, pool), pool);
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonicalized_path, NULL, path,
+ pool, pool));
+ full_path = svn_fspath__join(eb->base_path, canonicalized_path, pool);
/* Sanity check. */
if (copy_path && (! SVN_IS_VALID_REVNUM(copy_revision)))
@@ -477,10 +478,11 @@ delete_entry(const char *path,
struct edit_baton *eb = parent->edit_baton;
svn_node_kind_t kind;
svn_repos_authz_access_t required = svn_authz_write;
- const char *full_path;
+ const char *full_path, *canonicalized_path;
- full_path = svn_fspath__join(eb->base_path,
- svn_relpath_canonicalize(path, pool), pool);
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonicalized_path, NULL, path,
+ pool, pool));
+ full_path = svn_fspath__join(eb->base_path, canonicalized_path, pool);
/* Check PATH in our transaction. */
SVN_ERR(svn_fs_check_path(&kind, eb->txn_root, full_path, pool));
@@ -538,10 +540,11 @@ open_directory(const char *path,
struct dir_baton *pb = parent_baton;
struct edit_baton *eb = pb->edit_baton;
svn_node_kind_t kind;
- const char *full_path;
+ const char *full_path, *canonicalized_path;
- full_path = svn_fspath__join(eb->base_path,
- svn_relpath_canonicalize(path, pool), pool);
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonicalized_path, NULL, path,
+ pool, pool));
+ full_path = svn_fspath__join(eb->base_path, canonicalized_path, pool);
/* Check PATH in our transaction. If it does not exist,
return a 'Path not present' error. */
@@ -611,10 +614,11 @@ open_file(const char *path,
struct edit_baton *eb = pb->edit_baton;
svn_revnum_t cr_rev;
apr_pool_t *subpool = svn_pool_create(pool);
- const char *full_path;
+ const char *full_path, *canonicalized_path;
- full_path = svn_fspath__join(eb->base_path,
- svn_relpath_canonicalize(path, pool), pool);
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonicalized_path, NULL, path,
+ pool, pool));
+ full_path = svn_fspath__join(eb->base_path, canonicalized_path, pool);
/* Check for read authorization. */
SVN_ERR(check_authz(eb, full_path, eb->txn_root,
diff --git a/subversion/libsvn_repos/config_file.c b/subversion/libsvn_repos/config_file.c
index 918727796eb7..4bec766e3dd5 100644
--- a/subversion/libsvn_repos/config_file.c
+++ b/subversion/libsvn_repos/config_file.c
@@ -342,7 +342,7 @@ svn_repos__create_config_access(svn_repos_t *repos_hint,
return result;
}
-void
+void
svn_repos__destroy_config_access(config_access_t *access)
{
svn_pool_destroy(access->pool);
diff --git a/subversion/libsvn_repos/config_file.h b/subversion/libsvn_repos/config_file.h
index 7fce18f13608..745b637f408d 100644
--- a/subversion/libsvn_repos/config_file.h
+++ b/subversion/libsvn_repos/config_file.h
@@ -48,7 +48,7 @@ svn_repos__create_config_access(svn_repos_t *repos_hint,
apr_pool_t *result_pool);
/* Release all resources allocated while using ACCESS. */
-void
+void
svn_repos__destroy_config_access(config_access_t *access);
/* Using ACCESS as a helper object, access the textual configuration at PATH,
diff --git a/subversion/libsvn_repos/delta.c b/subversion/libsvn_repos/delta.c
index 9b1448d91bfd..b7d4ffa7fb36 100644
--- a/subversion/libsvn_repos/delta.c
+++ b/subversion/libsvn_repos/delta.c
@@ -215,7 +215,7 @@ svn_repos_dir_delta2(svn_fs_root_t *src_root,
{
void *root_baton = NULL;
struct context c;
- const char *src_fullpath;
+ const char *src_fullpath, *canonicalized_path;
svn_node_kind_t src_kind, tgt_kind;
svn_revnum_t rootrev;
svn_fs_node_relation_t relation;
@@ -223,14 +223,22 @@ svn_repos_dir_delta2(svn_fs_root_t *src_root,
/* SRC_PARENT_DIR must be valid. */
if (src_parent_dir)
- src_parent_dir = svn_relpath_canonicalize(src_parent_dir, pool);
+ {
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonicalized_path, NULL,
+ src_parent_dir, pool, pool));
+ src_parent_dir = canonicalized_path;
+ }
else
return svn_error_create(SVN_ERR_FS_NOT_DIRECTORY, 0,
"Invalid source parent directory '(null)'");
/* TGT_FULLPATH must be valid. */
if (tgt_fullpath)
- tgt_fullpath = svn_relpath_canonicalize(tgt_fullpath, pool);
+ {
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonicalized_path, NULL,
+ tgt_fullpath, pool, pool));
+ tgt_fullpath = canonicalized_path;
+ }
else
return svn_error_create(SVN_ERR_FS_PATH_SYNTAX, 0,
_("Invalid target path"));
diff --git a/subversion/libsvn_repos/deprecated.c b/subversion/libsvn_repos/deprecated.c
index f502623a20ea..7ca0e17120f0 100644
--- a/subversion/libsvn_repos/deprecated.c
+++ b/subversion/libsvn_repos/deprecated.c
@@ -1273,6 +1273,21 @@ svn_repos_fs_begin_txn_for_update(svn_fs_txn_t **txn_p,
/*** From authz.c ***/
svn_error_t *
+svn_repos_authz_read3(svn_authz_t **authz_p,
+ const char *path,
+ const char *groups_path,
+ svn_boolean_t must_exist,
+ svn_repos_t *repos_hint,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ return svn_error_trace(svn_repos_authz_read4(authz_p, path, groups_path,
+ must_exist, repos_hint,
+ NULL, NULL, result_pool,
+ scratch_pool));
+}
+
+svn_error_t *
svn_repos_authz_read2(svn_authz_t **authz_p,
const char *path,
const char *groups_path,
@@ -1300,3 +1315,17 @@ svn_repos_authz_read(svn_authz_t **authz_p, const char *file,
return svn_error_trace(svn_repos_authz_read2(authz_p, file, NULL,
must_exist, pool));
}
+
+svn_error_t *
+svn_repos_authz_parse(svn_authz_t **authz_p,
+ svn_stream_t *stream,
+ svn_stream_t *groups_stream,
+ apr_pool_t *pool)
+{
+ apr_pool_t *scratch_pool = svn_pool_create(pool);
+ svn_error_t *err = svn_repos_authz_parse2(authz_p, stream, groups_stream,
+ NULL, NULL, pool, scratch_pool);
+ svn_pool_destroy(scratch_pool);
+
+ return svn_error_trace(err);
+}
diff --git a/subversion/libsvn_repos/dump.c b/subversion/libsvn_repos/dump.c
index 960bba5816f1..ab318c6397ca 100644
--- a/subversion/libsvn_repos/dump.c
+++ b/subversion/libsvn_repos/dump.c
@@ -44,6 +44,7 @@
#include "private/svn_sorts_private.h"
#include "private/svn_utf_private.h"
#include "private/svn_cache.h"
+#include "private/svn_fspath.h"
#define ARE_VALID_COPY_ARGS(p,r) ((p) && SVN_IS_VALID_REVNUM(r))
@@ -512,6 +513,30 @@ svn_repos__dump_headers(svn_stream_t *stream,
}
svn_error_t *
+svn_repos__dump_magic_header_record(svn_stream_t *dump_stream,
+ int version,
+ apr_pool_t *pool)
+{
+ SVN_ERR(svn_stream_printf(dump_stream, pool,
+ SVN_REPOS_DUMPFILE_MAGIC_HEADER ": %d\n\n",
+ version));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_repos__dump_uuid_header_record(svn_stream_t *dump_stream,
+ const char *uuid,
+ apr_pool_t *pool)
+{
+ if (uuid)
+ {
+ SVN_ERR(svn_stream_printf(dump_stream, pool, SVN_REPOS_DUMPFILE_UUID
+ ": %s\n\n", uuid));
+ }
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
svn_repos__dump_revision_record(svn_stream_t *dump_stream,
svn_revnum_t revision,
apr_hash_t *extra_headers,
@@ -713,8 +738,9 @@ struct dir_baton
or NULL if this is the top-level directory of the edit.
Perform all allocations in POOL. */
-static struct dir_baton *
-make_dir_baton(const char *path,
+static struct svn_error_t *
+make_dir_baton(struct dir_baton **dbp,
+ const char *path,
const char *cmp_path,
svn_revnum_t cmp_rev,
void *edit_baton,
@@ -723,10 +749,10 @@ make_dir_baton(const char *path,
{
struct edit_baton *eb = edit_baton;
struct dir_baton *new_db = apr_pcalloc(pool, sizeof(*new_db));
- const char *full_path;
+ const char *full_path, *canonicalized_path;
/* A path relative to nothing? I don't think so. */
- SVN_ERR_ASSERT_NO_RETURN(!path || pb);
+ SVN_ERR_ASSERT(!path || pb);
/* Construct the full path of this node. */
if (pb)
@@ -736,7 +762,11 @@ make_dir_baton(const char *path,
/* Remove leading slashes from copyfrom paths. */
if (cmp_path)
- cmp_path = svn_relpath_canonicalize(cmp_path, pool);
+ {
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonicalized_path, NULL,
+ cmp_path, pool, pool));
+ cmp_path = canonicalized_path;
+ }
new_db->edit_baton = eb;
new_db->path = full_path;
@@ -747,7 +777,8 @@ make_dir_baton(const char *path,
new_db->check_name_collision = FALSE;
new_db->pool = pool;
- return new_db;
+ *dbp = new_db;
+ return SVN_NO_ERROR;
}
static svn_error_t *
@@ -1143,7 +1174,12 @@ dump_node(struct edit_baton *eb,
/* Remove leading slashes from copyfrom paths. */
if (cmp_path)
- cmp_path = svn_relpath_canonicalize(cmp_path, pool);
+ {
+ const char *canonicalized_path;
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonicalized_path, NULL,
+ cmp_path, pool, pool));
+ cmp_path = canonicalized_path;
+ }
/* Validate the comparison path/rev. */
if (ARE_VALID_COPY_ARGS(cmp_path, cmp_rev))
@@ -1513,9 +1549,9 @@ open_root(void *edit_baton,
apr_pool_t *pool,
void **root_baton)
{
- *root_baton = make_dir_baton(NULL, NULL, SVN_INVALID_REVNUM,
- edit_baton, NULL, pool);
- return SVN_NO_ERROR;
+ return svn_error_trace(make_dir_baton((struct dir_baton **)root_baton,
+ NULL, NULL, SVN_INVALID_REVNUM,
+ edit_baton, NULL, pool));
}
@@ -1547,8 +1583,10 @@ add_directory(const char *path,
struct edit_baton *eb = pb->edit_baton;
void *was_deleted;
svn_boolean_t is_copy = FALSE;
- struct dir_baton *new_db
- = make_dir_baton(path, copyfrom_path, copyfrom_rev, eb, pb, pool);
+ struct dir_baton *new_db;
+
+ SVN_ERR(make_dir_baton(&new_db, path, copyfrom_path, copyfrom_rev, eb,
+ pb, pool));
/* This might be a replacement -- is the path already deleted? */
was_deleted = svn_hash_gets(pb->deleted_entries, path);
@@ -1605,7 +1643,7 @@ open_directory(const char *path,
cmp_rev = pb->cmp_rev;
}
- new_db = make_dir_baton(path, cmp_path, cmp_rev, eb, pb, pool);
+ SVN_ERR(make_dir_baton(&new_db, path, cmp_path, cmp_rev, eb, pb, pool));
*child_baton = new_db;
return SVN_NO_ERROR;
}
@@ -1936,25 +1974,11 @@ write_revision_record(svn_stream_t *stream,
apr_pool_t *pool)
{
apr_hash_t *props;
- apr_time_t timetemp;
- svn_string_t *datevalue;
if (include_revprops)
{
SVN_ERR(svn_repos_fs_revision_proplist(&props, repos, rev,
authz_func, authz_baton, pool));
-
- /* Run revision date properties through the time conversion to
- canonicalize them. */
- /* ### Remove this when it is no longer needed for sure. */
- datevalue = svn_hash_gets(props, SVN_PROP_REVISION_DATE);
- if (datevalue)
- {
- SVN_ERR(svn_time_from_cstring(&timetemp, datevalue->data, pool));
- datevalue = svn_string_create(svn_time_to_cstring(timetemp, pool),
- pool);
- svn_hash_sets(props, SVN_PROP_REVISION_DATE, datevalue);
- }
}
else
{
@@ -1986,6 +2010,11 @@ dump_filter_authz_func(svn_boolean_t *allowed,
{
dump_filter_baton_t *b = baton;
+ /* For some nodes (e.g. files under copied directory) PATH may be
+ * non-canonical (missing leading '/'). Canonicalize PATH before
+ * passing it to FILTER_FUNC. */
+ path = svn_fspath__canonicalize(path, pool);
+
return svn_error_trace(b->filter_func(allowed, root, path, b->filter_baton,
pool));
}
@@ -2076,11 +2105,8 @@ svn_repos_dump_fs4(svn_repos_t *repos,
/* Write out "general" metadata for the dumpfile. In this case, a
magic header followed by a dumpfile format version. */
- SVN_ERR(svn_stream_printf(stream, pool,
- SVN_REPOS_DUMPFILE_MAGIC_HEADER ": %d\n\n",
- version));
- SVN_ERR(svn_stream_printf(stream, pool, SVN_REPOS_DUMPFILE_UUID
- ": %s\n\n", uuid));
+ SVN_ERR(svn_repos__dump_magic_header_record(stream, version, pool));
+ SVN_ERR(svn_repos__dump_uuid_header_record(stream, uuid, pool));
/* Create a notify object that we can reuse in the loop. */
if (notify_func)
diff --git a/subversion/libsvn_repos/dump_editor.c b/subversion/libsvn_repos/dump_editor.c
new file mode 100644
index 000000000000..c1ece570a499
--- /dev/null
+++ b/subversion/libsvn_repos/dump_editor.c
@@ -0,0 +1,1040 @@
+/*
+ * dump_editor.c: A svn_delta_editor_t editor used to dump revisions.
+ *
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ */
+
+#include "svn_repos.h"
+#include "svn_hash.h"
+#include "svn_pools.h"
+#include "svn_path.h"
+#include "svn_props.h"
+#include "svn_subst.h"
+#include "svn_dirent_uri.h"
+
+#include "private/svn_repos_private.h"
+
+#include <assert.h>
+
+#define ARE_VALID_COPY_ARGS(p,r) ((p) && SVN_IS_VALID_REVNUM(r))
+
+
+/* Normalize the line ending style of the values of properties in PROPS
+ * that "need translation" (according to svn_prop_needs_translation(),
+ * currently all svn:* props) so that they contain only LF (\n) line endings.
+ *
+ * Put the normalized props into NORMAL_PROPS, allocated in RESULT_POOL.
+ */
+static svn_error_t *
+normalize_props(apr_hash_t **normal_props,
+ apr_hash_t *props,
+ apr_pool_t *result_pool)
+{
+ apr_hash_index_t *hi;
+ apr_pool_t *iterpool;
+
+ *normal_props = apr_hash_make(result_pool);
+
+ iterpool = svn_pool_create(result_pool);
+ for (hi = apr_hash_first(result_pool, props); hi; hi = apr_hash_next(hi))
+ {
+ const char *key = apr_hash_this_key(hi);
+ const svn_string_t *value = apr_hash_this_val(hi);
+
+ svn_pool_clear(iterpool);
+
+ SVN_ERR(svn_repos__normalize_prop(&value, NULL, key, value,
+ iterpool, iterpool));
+ svn_hash_sets(*normal_props, key, svn_string_dup(value, result_pool));
+ }
+ svn_pool_destroy(iterpool);
+
+ return SVN_NO_ERROR;
+}
+
+/* A directory baton used by all directory-related callback functions
+ * in the dump editor. */
+struct dir_baton
+{
+ struct dump_edit_baton *eb;
+
+ /* Pool for per-directory allocations */
+ apr_pool_t *pool;
+
+ /* the path to this directory */
+ const char *repos_relpath; /* a relpath */
+
+ /* Copyfrom info for the node, if any. */
+ const char *copyfrom_path; /* a relpath */
+ svn_revnum_t copyfrom_rev;
+
+ /* Headers accumulated so far for this directory */
+ svn_repos__dumpfile_headers_t *headers;
+
+ /* Properties which were modified during change_dir_prop. */
+ apr_hash_t *props;
+
+ /* Properties which were deleted during change_dir_prop. */
+ apr_hash_t *deleted_props;
+
+ /* Hash of paths that need to be deleted, though some -might- be
+ replaced. Maps const char * paths to this dir_baton. Note that
+ they're full paths, because that's what the editor driver gives
+ us, although they're all really within this directory. */
+ apr_hash_t *deleted_entries;
+
+ /* Flag to trigger dumping props. */
+ svn_boolean_t dump_props;
+};
+
+/* A file baton used by all file-related callback functions in the dump
+ * editor */
+struct file_baton
+{
+ struct dump_edit_baton *eb;
+
+ /* Pool for per-file allocations */
+ apr_pool_t *pool;
+
+ /* the path to this file */
+ const char *repos_relpath; /* a relpath */
+
+ /* Properties which were modified during change_file_prop. */
+ apr_hash_t *props;
+
+ /* Properties which were deleted during change_file_prop. */
+ apr_hash_t *deleted_props;
+
+ /* The checksum of the file the delta is being applied to */
+ const char *base_checksum;
+
+ /* Copy state and source information (if any). */
+ svn_boolean_t is_copy;
+ const char *copyfrom_path;
+ svn_revnum_t copyfrom_rev;
+
+ /* The action associate with this node. */
+ enum svn_node_action action;
+
+ /* Flags to trigger dumping props and text. */
+ svn_boolean_t dump_text;
+ svn_boolean_t dump_props;
+};
+
+/* The baton used by the dump editor. */
+struct dump_edit_baton {
+ /* The output stream we write the dumpfile to */
+ svn_stream_t *stream;
+
+ /* The repository relpath of the anchor of the editor when driven
+ via the RA update mechanism; NULL otherwise. (When the editor is
+ driven via the RA "replay" mechanism instead, the editor is
+ always anchored at the repository, we don't need to prepend an
+ anchor path to the dumped node paths, and open_root() doesn't
+ need to manufacture directory additions.) */
+ const char *update_anchor_relpath;
+
+ /* Pool for per-revision allocations */
+ apr_pool_t *pool;
+
+ /* Temporary file used for textdelta application along with its
+ absolute path; these two variables should be allocated in the
+ per-edit-session pool */
+ const char *delta_abspath;
+ apr_file_t *delta_file;
+
+ /* The baton of the directory node whose block of
+ dump stream data has not been fully completed; NULL if there's no
+ such item. */
+ struct dir_baton *pending_db;
+};
+
+/* Make a directory baton to represent the directory at PATH (relative
+ * to the EDIT_BATON).
+ *
+ * COPYFROM_PATH/COPYFROM_REV are the path/revision against which this
+ * directory should be compared for changes. If the copyfrom
+ * information is valid, the directory will be compared against its
+ * copy source.
+ *
+ * PB is the directory baton of this directory's parent, or NULL if
+ * this is the top-level directory of the edit.
+ *
+ * Perform all allocations in POOL. */
+static struct svn_error_t *
+make_dir_baton(struct dir_baton **dbp,
+ const char *path,
+ const char *copyfrom_path,
+ svn_revnum_t copyfrom_rev,
+ void *edit_baton,
+ struct dir_baton *pb,
+ apr_pool_t *pool)
+{
+ struct dump_edit_baton *eb = edit_baton;
+ struct dir_baton *new_db = apr_pcalloc(pool, sizeof(*new_db));
+ const char *repos_relpath;
+
+ /* Construct the full path of this node. */
+ if (pb)
+ SVN_ERR(svn_relpath_canonicalize_safe(&repos_relpath, NULL, path,
+ pool, pool));
+ else
+ repos_relpath = "";
+
+ /* Strip leading slash from copyfrom_path so that the path is
+ canonical and svn_relpath_join can be used */
+ if (copyfrom_path)
+ copyfrom_path = svn_relpath_canonicalize(copyfrom_path, pool);
+
+ new_db->eb = eb;
+ new_db->pool = pool;
+ new_db->repos_relpath = repos_relpath;
+ new_db->copyfrom_path = copyfrom_path
+ ? svn_relpath_canonicalize(copyfrom_path, pool)
+ : NULL;
+ new_db->copyfrom_rev = copyfrom_rev;
+ new_db->headers = NULL;
+ new_db->props = apr_hash_make(pool);
+ new_db->deleted_props = apr_hash_make(pool);
+ new_db->deleted_entries = apr_hash_make(pool);
+
+ *dbp = new_db;
+ return SVN_NO_ERROR;
+}
+
+/* Make a file baton to represent the directory at PATH (relative to
+ * PB->eb). PB is the directory baton of this directory's parent, or
+ * NULL if this is the top-level directory of the edit. Perform all
+ * allocations in POOL. */
+static struct file_baton *
+make_file_baton(const char *path,
+ struct dir_baton *pb,
+ apr_pool_t *pool)
+{
+ struct file_baton *new_fb = apr_pcalloc(pool, sizeof(*new_fb));
+
+ new_fb->eb = pb->eb;
+ new_fb->pool = pool;
+ new_fb->repos_relpath = svn_relpath_canonicalize(path, pool);
+ new_fb->props = apr_hash_make(pool);
+ new_fb->deleted_props = apr_hash_make(pool);
+ new_fb->is_copy = FALSE;
+ new_fb->copyfrom_path = NULL;
+ new_fb->copyfrom_rev = SVN_INVALID_REVNUM;
+ new_fb->action = svn_node_action_change;
+
+ return new_fb;
+}
+
+/* Append to HEADERS the required headers, and set *CONTENT to the property
+ * content section, to represent the property delta of PROPS/DELETED_PROPS.
+ */
+static svn_error_t *
+get_props_content(svn_repos__dumpfile_headers_t *headers,
+ svn_stringbuf_t **content,
+ apr_hash_t *props,
+ apr_hash_t *deleted_props,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ svn_stream_t *content_stream;
+ apr_hash_t *normal_props;
+
+ *content = svn_stringbuf_create_empty(result_pool);
+
+ content_stream = svn_stream_from_stringbuf(*content, scratch_pool);
+
+ SVN_ERR(normalize_props(&normal_props, props, scratch_pool));
+ SVN_ERR(svn_hash_write_incremental(normal_props, deleted_props,
+ content_stream, "PROPS-END",
+ scratch_pool));
+ SVN_ERR(svn_stream_close(content_stream));
+
+ /* Prop-delta: true */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_PROP_DELTA, "true");
+
+ return SVN_NO_ERROR;
+}
+
+/* A special case of dump_node(), for a delete record.
+ *
+ * The only thing special about this version is it only writes one blank
+ * line, not two, after the headers. Why? Historical precedent for the
+ * case where a delete record is used as part of a (delete + add-with-history)
+ * in implementing a replacement.
+ */
+static svn_error_t *
+dump_node_delete(svn_stream_t *stream,
+ const char *node_relpath,
+ apr_pool_t *pool)
+{
+ svn_repos__dumpfile_headers_t *headers
+ = svn_repos__dumpfile_headers_create(pool);
+
+ assert(svn_relpath_is_canonical(node_relpath));
+
+ /* Node-path: ... */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_PATH, node_relpath);
+
+ /* Node-action: delete */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_ACTION, "delete");
+
+ SVN_ERR(svn_repos__dump_node_record(stream, headers,
+ NULL, FALSE, 0, /* props & text */
+ FALSE /*content_length_always*/, pool));
+ return SVN_NO_ERROR;
+}
+
+/* Set *HEADERS_P to contain some headers for the node at PATH of type KIND.
+ *
+ * ACTION describes what is happening to the node (see enum
+ * svn_node_action).
+ *
+ * If the node was itself copied, IS_COPY is TRUE and the
+ * path/revision of the copy source are in COPYFROM_PATH/COPYFROM_REV.
+ * If IS_COPY is FALSE, yet COPYFROM_PATH/COPYFROM_REV are valid, this
+ * node is part of a copied subtree.
+ *
+ * Iff ACTION is svn_node_action_replace and IS_COPY, then first write a
+ * complete deletion record to the dump stream.
+ *
+ * If ACTION is svn_node_action_delete, then the node record will be
+ * complete. (The caller may want to write two blank lines after the
+ * header block.)
+ */
+static svn_error_t *
+dump_node(svn_repos__dumpfile_headers_t **headers_p,
+ struct dump_edit_baton *eb,
+ const char *repos_relpath,
+ struct dir_baton *db,
+ struct file_baton *fb,
+ enum svn_node_action action,
+ svn_boolean_t is_copy,
+ const char *copyfrom_path,
+ svn_revnum_t copyfrom_rev,
+ apr_pool_t *pool)
+{
+ const char *node_relpath = repos_relpath;
+ svn_repos__dumpfile_headers_t *headers
+ = svn_repos__dumpfile_headers_create(pool);
+
+ assert(svn_relpath_is_canonical(repos_relpath));
+ assert(!copyfrom_path || svn_relpath_is_canonical(copyfrom_path));
+ assert(! (db && fb));
+
+ /* Add the edit root relpath prefix if necessary. */
+ if (eb->update_anchor_relpath)
+ node_relpath = svn_relpath_join(eb->update_anchor_relpath,
+ node_relpath, pool);
+
+ /* Node-path: ... */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_PATH, node_relpath);
+
+ /* Node-kind: "file" | "dir" */
+ if (fb)
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_KIND, "file");
+ else if (db)
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_KIND, "dir");
+
+
+ /* Write the appropriate Node-action header */
+ switch (action)
+ {
+ case svn_node_action_change:
+ /* We are here after a change_file_prop or change_dir_prop. They
+ set up whatever dump_props they needed to- nothing to
+ do here but print node action information.
+
+ Node-action: change. */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_ACTION, "change");
+ break;
+
+ case svn_node_action_delete:
+ /* Node-action: delete */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_ACTION, "delete");
+ break;
+
+ case svn_node_action_replace:
+ if (! is_copy)
+ {
+ /* Node-action: replace */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_ACTION, "replace");
+
+ /* Wait for a change_*_prop to be called before dumping
+ anything */
+ if (fb)
+ fb->dump_props = TRUE;
+ else if (db)
+ db->dump_props = TRUE;
+ break;
+ }
+ else
+ {
+ /* More complex case: is_copy is true, and copyfrom_path/
+ copyfrom_rev are present: delete the original, and then re-add
+ it */
+ /* ### Why not write a 'replace' record? Don't know. */
+
+ /* ### Unusually, we end this 'delete' node record with only a single
+ blank line after the header block -- no extra blank line. */
+ SVN_ERR(dump_node_delete(eb->stream, repos_relpath, pool));
+
+ /* The remaining action is a non-replacing add-with-history */
+ /* action = svn_node_action_add; */
+ }
+ /* FALL THROUGH to 'add' */
+
+ case svn_node_action_add:
+ /* Node-action: add */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_ACTION, "add");
+
+ if (is_copy)
+ {
+ /* Node-copyfrom-rev / Node-copyfrom-path */
+ svn_repos__dumpfile_header_pushf(
+ headers, SVN_REPOS_DUMPFILE_NODE_COPYFROM_REV, "%ld", copyfrom_rev);
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_COPYFROM_PATH, copyfrom_path);
+ }
+ else
+ {
+ /* fb->dump_props (for files) is handled in close_file()
+ which is called immediately.
+
+ However, directories are not closed until all the work
+ inside them has been done; db->dump_props (for directories)
+ is handled (via dump_pending()) in all the functions that
+ can possibly be called after add_directory():
+
+ - add_directory()
+ - open_directory()
+ - delete_entry()
+ - close_directory()
+ - add_file()
+ - open_file()
+
+ change_dir_prop() is a special case. */
+ if (fb)
+ fb->dump_props = TRUE;
+ else if (db)
+ db->dump_props = TRUE;
+ }
+
+ break;
+ }
+
+ /* Return the headers so far. We don't necessarily have all the headers
+ yet -- there may be property-related and content length headers to
+ come, if this was not a 'delete' record. */
+ *headers_p = headers;
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+dump_mkdir(struct dump_edit_baton *eb,
+ const char *repos_relpath,
+ apr_pool_t *pool)
+{
+ svn_stringbuf_t *prop_content;
+ svn_repos__dumpfile_headers_t *headers
+ = svn_repos__dumpfile_headers_create(pool);
+
+ /* Node-path: ... */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_PATH, repos_relpath);
+
+ /* Node-kind: dir */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_KIND, "dir");
+
+ /* Node-action: add */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_ACTION, "add");
+
+ /* Dump the (empty) property block. */
+ SVN_ERR(get_props_content(headers, &prop_content,
+ apr_hash_make(pool), apr_hash_make(pool),
+ pool, pool));
+ SVN_ERR(svn_repos__dump_node_record(eb->stream, headers, prop_content,
+ FALSE, 0, FALSE /*content_length_always*/,
+ pool));
+
+ /* Newlines to tie it all off. */
+ SVN_ERR(svn_stream_puts(eb->stream, "\n\n"));
+
+ return SVN_NO_ERROR;
+}
+
+/* Dump pending headers and properties for the directory EB->pending_db (if
+ * not null), to allow starting the dump of a child node */
+static svn_error_t *
+dump_pending_dir(struct dump_edit_baton *eb,
+ apr_pool_t *scratch_pool)
+{
+ struct dir_baton *db = eb->pending_db;
+ svn_stringbuf_t *prop_content = NULL;
+
+ if (! db)
+ return SVN_NO_ERROR;
+
+ /* Some pending properties to dump? */
+ if (db->dump_props)
+ {
+ SVN_ERR(get_props_content(db->headers, &prop_content,
+ db->props, db->deleted_props,
+ scratch_pool, scratch_pool));
+ }
+ SVN_ERR(svn_repos__dump_node_record(eb->stream, db->headers, prop_content,
+ FALSE, 0, FALSE /*content_length_always*/,
+ scratch_pool));
+
+ /* No text is going to be dumped. Write a couple of newlines and
+ wait for the next node/ revision. */
+ SVN_ERR(svn_stream_puts(eb->stream, "\n\n"));
+
+ if (db->dump_props)
+ {
+ /* Cleanup so that data is never dumped twice. */
+ apr_hash_clear(db->props);
+ apr_hash_clear(db->deleted_props);
+ db->dump_props = FALSE;
+ }
+
+ /* Anything that was pending is pending no longer. */
+ eb->pending_db = NULL;
+
+ return SVN_NO_ERROR;
+}
+
+
+
+/*** Editor Function Implementations ***/
+
+static svn_error_t *
+open_root(void *edit_baton,
+ svn_revnum_t base_revision,
+ apr_pool_t *pool,
+ void **root_baton)
+{
+ struct dump_edit_baton *eb = edit_baton;
+ struct dir_baton *new_db = NULL;
+
+ /* Clear the per-revision pool after each revision */
+ svn_pool_clear(eb->pool);
+
+ if (eb->update_anchor_relpath)
+ {
+ int i;
+ const char *parent_path = eb->update_anchor_relpath;
+ apr_array_header_t *dirs_to_add =
+ apr_array_make(pool, 4, sizeof(const char *));
+ apr_pool_t *iterpool = svn_pool_create(pool);
+
+ while (! svn_path_is_empty(parent_path))
+ {
+ APR_ARRAY_PUSH(dirs_to_add, const char *) = parent_path;
+ parent_path = svn_relpath_dirname(parent_path, pool);
+ }
+
+ for (i = dirs_to_add->nelts; i; --i)
+ {
+ const char *dir_to_add =
+ APR_ARRAY_IDX(dirs_to_add, i - 1, const char *);
+
+ svn_pool_clear(iterpool);
+
+ /* For parents of the source directory, we just manufacture
+ the adds ourselves. */
+ if (i > 1)
+ {
+ SVN_ERR(dump_mkdir(eb, dir_to_add, iterpool));
+ }
+ else
+ {
+ /* ... but for the source directory itself, we'll defer
+ to letting the typical plumbing handle this task. */
+ SVN_ERR(make_dir_baton(&new_db, NULL, NULL, SVN_INVALID_REVNUM,
+ edit_baton, NULL, pool));
+ SVN_ERR(dump_node(&new_db->headers,
+ eb, new_db->repos_relpath, new_db,
+ NULL, svn_node_action_add, FALSE,
+ NULL, SVN_INVALID_REVNUM, pool));
+
+ /* Remember that we've started but not yet finished
+ handling this directory. */
+ eb->pending_db = new_db;
+ }
+ }
+ svn_pool_destroy(iterpool);
+ }
+
+ if (! new_db)
+ {
+ SVN_ERR(make_dir_baton(&new_db, NULL, NULL, SVN_INVALID_REVNUM,
+ edit_baton, NULL, pool));
+ }
+
+ *root_baton = new_db;
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+delete_entry(const char *path,
+ svn_revnum_t revision,
+ void *parent_baton,
+ apr_pool_t *pool)
+{
+ struct dir_baton *pb = parent_baton;
+
+ SVN_ERR(dump_pending_dir(pb->eb, pool));
+
+ /* We don't dump this deletion immediate. Rather, we add this path
+ to the deleted_entries of the parent directory baton. That way,
+ we can tell (later) an addition from a replacement. All the real
+ deletions get handled in close_directory(). */
+ svn_hash_sets(pb->deleted_entries, apr_pstrdup(pb->pool, path), pb);
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+add_directory(const char *path,
+ void *parent_baton,
+ const char *copyfrom_path,
+ svn_revnum_t copyfrom_rev,
+ apr_pool_t *pool,
+ void **child_baton)
+{
+ struct dir_baton *pb = parent_baton;
+ void *was_deleted;
+ struct dir_baton *new_db;
+ svn_boolean_t is_copy;
+
+ SVN_ERR(dump_pending_dir(pb->eb, pool));
+
+ SVN_ERR(make_dir_baton(&new_db, path, copyfrom_path, copyfrom_rev, pb->eb,
+ pb, pb->pool));
+
+ /* This might be a replacement -- is the path already deleted? */
+ was_deleted = svn_hash_gets(pb->deleted_entries, path);
+
+ /* Detect an add-with-history */
+ is_copy = ARE_VALID_COPY_ARGS(copyfrom_path, copyfrom_rev);
+
+ /* Dump the node */
+ SVN_ERR(dump_node(&new_db->headers,
+ pb->eb, new_db->repos_relpath, new_db, NULL,
+ was_deleted ? svn_node_action_replace : svn_node_action_add,
+ is_copy,
+ is_copy ? new_db->copyfrom_path : NULL,
+ is_copy ? copyfrom_rev : SVN_INVALID_REVNUM,
+ pool));
+
+ if (was_deleted)
+ /* Delete the path, it's now been dumped */
+ svn_hash_sets(pb->deleted_entries, path, NULL);
+
+ /* Remember that we've started, but not yet finished handling this
+ directory. */
+ pb->eb->pending_db = new_db;
+
+ *child_baton = new_db;
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+open_directory(const char *path,
+ void *parent_baton,
+ svn_revnum_t base_revision,
+ apr_pool_t *pool,
+ void **child_baton)
+{
+ struct dir_baton *pb = parent_baton;
+ struct dir_baton *new_db;
+ const char *copyfrom_path = NULL;
+ svn_revnum_t copyfrom_rev = SVN_INVALID_REVNUM;
+
+ SVN_ERR(dump_pending_dir(pb->eb, pool));
+
+ /* If the parent directory has explicit comparison path and rev,
+ record the same for this one. */
+ if (ARE_VALID_COPY_ARGS(pb->copyfrom_path, pb->copyfrom_rev))
+ {
+ copyfrom_path = svn_relpath_join(pb->copyfrom_path,
+ svn_relpath_basename(path, NULL),
+ pb->pool);
+ copyfrom_rev = pb->copyfrom_rev;
+ }
+
+ SVN_ERR(make_dir_baton(&new_db, path, copyfrom_path, copyfrom_rev,
+ pb->eb, pb, pb->pool));
+
+ *child_baton = new_db;
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+close_directory(void *dir_baton,
+ apr_pool_t *pool)
+{
+ struct dir_baton *db = dir_baton;
+ apr_hash_index_t *hi;
+ svn_boolean_t this_pending;
+
+ /* Remember if this directory is the one currently pending. */
+ this_pending = (db->eb->pending_db == db);
+
+ SVN_ERR(dump_pending_dir(db->eb, pool));
+
+ /* If this directory was pending, then dump_pending() should have
+ taken care of all the props and such. Of course, the only way
+ that would be the case is if this directory was added/replaced.
+
+ Otherwise, if stuff for this directory has already been written
+ out (at some point in the past, prior to our handling other
+ nodes), we might need to generate a second "change" record just
+ to carry the information we've since learned about the
+ directory. */
+ if ((! this_pending) && (db->dump_props))
+ {
+ SVN_ERR(dump_node(&db->headers,
+ db->eb, db->repos_relpath, db, NULL,
+ svn_node_action_change, FALSE,
+ NULL, SVN_INVALID_REVNUM, pool));
+ db->eb->pending_db = db;
+ SVN_ERR(dump_pending_dir(db->eb, pool));
+ }
+
+ /* Dump the deleted directory entries */
+ for (hi = apr_hash_first(pool, db->deleted_entries); hi;
+ hi = apr_hash_next(hi))
+ {
+ const char *path = apr_hash_this_key(hi);
+
+ SVN_ERR(dump_node_delete(db->eb->stream, path, pool));
+ /* This deletion record is complete -- write an extra newline */
+ SVN_ERR(svn_stream_puts(db->eb->stream, "\n"));
+ }
+
+ /* ### should be unnecessary */
+ apr_hash_clear(db->deleted_entries);
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+add_file(const char *path,
+ void *parent_baton,
+ const char *copyfrom_path,
+ svn_revnum_t copyfrom_rev,
+ apr_pool_t *pool,
+ void **file_baton)
+{
+ struct dir_baton *pb = parent_baton;
+ struct file_baton *fb;
+ void *was_deleted;
+
+ SVN_ERR(dump_pending_dir(pb->eb, pool));
+
+ /* Make the file baton. */
+ fb = make_file_baton(path, pb, pool);
+
+ /* This might be a replacement -- is the path already deleted? */
+ was_deleted = svn_hash_gets(pb->deleted_entries, path);
+
+ /* Detect add-with-history. */
+ if (ARE_VALID_COPY_ARGS(copyfrom_path, copyfrom_rev))
+ {
+ fb->copyfrom_path = svn_relpath_canonicalize(copyfrom_path, fb->pool);
+ fb->copyfrom_rev = copyfrom_rev;
+ fb->is_copy = TRUE;
+ }
+ fb->action = was_deleted ? svn_node_action_replace : svn_node_action_add;
+
+ /* Delete the path, it's now been dumped. */
+ if (was_deleted)
+ svn_hash_sets(pb->deleted_entries, path, NULL);
+
+ *file_baton = fb;
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+open_file(const char *path,
+ void *parent_baton,
+ svn_revnum_t ancestor_revision,
+ apr_pool_t *pool,
+ void **file_baton)
+{
+ struct dir_baton *pb = parent_baton;
+ struct file_baton *fb;
+
+ SVN_ERR(dump_pending_dir(pb->eb, pool));
+
+ /* Make the file baton. */
+ fb = make_file_baton(path, pb, pool);
+
+ /* If the parent directory has explicit copyfrom path and rev,
+ record the same for this one. */
+ if (ARE_VALID_COPY_ARGS(pb->copyfrom_path, pb->copyfrom_rev))
+ {
+ fb->copyfrom_path = svn_relpath_join(pb->copyfrom_path,
+ svn_relpath_basename(path, NULL),
+ pb->pool);
+ fb->copyfrom_rev = pb->copyfrom_rev;
+ }
+
+ *file_baton = fb;
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+change_dir_prop(void *parent_baton,
+ const char *name,
+ const svn_string_t *value,
+ apr_pool_t *pool)
+{
+ struct dir_baton *db = parent_baton;
+ svn_boolean_t this_pending;
+
+ /* This directory is not pending, but something else is, so handle
+ the "something else". */
+ this_pending = (db->eb->pending_db == db);
+ if (! this_pending)
+ SVN_ERR(dump_pending_dir(db->eb, pool));
+
+ if (svn_property_kind2(name) != svn_prop_regular_kind)
+ return SVN_NO_ERROR;
+
+ if (value)
+ svn_hash_sets(db->props,
+ apr_pstrdup(db->pool, name),
+ svn_string_dup(value, db->pool));
+ else
+ svn_hash_sets(db->deleted_props, apr_pstrdup(db->pool, name), "");
+
+ /* Make sure we eventually output the props */
+ db->dump_props = TRUE;
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+change_file_prop(void *file_baton,
+ const char *name,
+ const svn_string_t *value,
+ apr_pool_t *pool)
+{
+ struct file_baton *fb = file_baton;
+
+ if (svn_property_kind2(name) != svn_prop_regular_kind)
+ return SVN_NO_ERROR;
+
+ if (value)
+ svn_hash_sets(fb->props,
+ apr_pstrdup(fb->pool, name),
+ svn_string_dup(value, fb->pool));
+ else
+ svn_hash_sets(fb->deleted_props, apr_pstrdup(fb->pool, name), "");
+
+ /* Dump the property headers and wait; close_file might need
+ to write text headers too depending on whether
+ apply_textdelta is called */
+ fb->dump_props = TRUE;
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+apply_textdelta(void *file_baton, const char *base_checksum,
+ apr_pool_t *pool,
+ svn_txdelta_window_handler_t *handler,
+ void **handler_baton)
+{
+ struct file_baton *fb = file_baton;
+ struct dump_edit_baton *eb = fb->eb;
+ svn_stream_t *delta_filestream;
+
+ /* Use a temporary file to measure the Text-content-length */
+ delta_filestream = svn_stream_from_aprfile2(eb->delta_file, TRUE, pool);
+
+ /* Prepare to write the delta to the delta_filestream */
+ svn_txdelta_to_svndiff3(handler, handler_baton,
+ delta_filestream, 0,
+ SVN_DELTA_COMPRESSION_LEVEL_DEFAULT, pool);
+
+ /* Record that there's text to be dumped, and its base checksum. */
+ fb->dump_text = TRUE;
+ fb->base_checksum = apr_pstrdup(fb->pool, base_checksum);
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+close_file(void *file_baton,
+ const char *text_checksum,
+ apr_pool_t *pool)
+{
+ struct file_baton *fb = file_baton;
+ struct dump_edit_baton *eb = fb->eb;
+ svn_filesize_t text_content_length = 0;
+ svn_stringbuf_t *propstring = NULL;
+ svn_repos__dumpfile_headers_t *headers;
+
+ SVN_ERR(dump_pending_dir(eb, pool));
+
+ /* Start dumping this node, by collecting some basic headers for it. */
+ SVN_ERR(dump_node(&headers, eb, fb->repos_relpath, NULL, fb,
+ fb->action, fb->is_copy, fb->copyfrom_path,
+ fb->copyfrom_rev, pool));
+
+ /* Some pending properties to dump? We'll dump just the headers for
+ now, then dump the actual propchange content only after dumping
+ the text headers too (if present). */
+ if (fb->dump_props)
+ {
+ SVN_ERR(get_props_content(headers, &propstring,
+ fb->props, fb->deleted_props,
+ pool, pool));
+ }
+
+ /* Dump the text headers */
+ if (fb->dump_text)
+ {
+ /* Text-delta: true */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_TEXT_DELTA, "true");
+
+ SVN_ERR(svn_io_file_size_get(&text_content_length, eb->delta_file,
+ pool));
+
+ if (fb->base_checksum)
+ /* Text-delta-base-md5: */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_TEXT_DELTA_BASE_MD5, fb->base_checksum);
+
+ /* Text-content-md5: 82705804337e04dcd0e586bfa2389a7f */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_TEXT_CONTENT_MD5, text_checksum);
+ }
+
+ /* Dump the headers and props now */
+ SVN_ERR(svn_repos__dump_node_record(eb->stream, headers, propstring,
+ fb->dump_text, text_content_length,
+ FALSE /*content_length_always*/,
+ pool));
+
+ if (fb->dump_props)
+ {
+ /* Cleanup */
+ fb->dump_props = FALSE;
+ apr_hash_clear(fb->props);
+ apr_hash_clear(fb->deleted_props);
+ }
+
+ /* Dump the text */
+ if (fb->dump_text)
+ {
+ /* Seek to the beginning of the delta file, map it to a stream,
+ and copy the stream to eb->stream. Then close the stream and
+ truncate the file so we can reuse it for the next textdelta
+ application. Note that the file isn't created, opened or
+ closed here */
+ svn_stream_t *delta_filestream;
+ apr_off_t offset = 0;
+
+ SVN_ERR(svn_io_file_seek(eb->delta_file, APR_SET, &offset, pool));
+ delta_filestream = svn_stream_from_aprfile2(eb->delta_file, TRUE, pool);
+ SVN_ERR(svn_stream_copy3(delta_filestream,
+ svn_stream_disown(eb->stream, pool),
+ NULL, NULL, pool));
+
+ /* Cleanup */
+ SVN_ERR(svn_stream_close(delta_filestream));
+ SVN_ERR(svn_io_file_trunc(eb->delta_file, 0, pool));
+ }
+
+ /* Write a couple of blank lines for matching output with `svnadmin
+ dump` */
+ SVN_ERR(svn_stream_puts(eb->stream, "\n\n"));
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+close_edit(void *edit_baton, apr_pool_t *pool)
+{
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_repos__get_dump_editor(const svn_delta_editor_t **editor,
+ void **edit_baton,
+ svn_stream_t *stream,
+ const char *update_anchor_relpath,
+ apr_pool_t *pool)
+{
+ struct dump_edit_baton *eb;
+ svn_delta_editor_t *de;
+
+ eb = apr_pcalloc(pool, sizeof(struct dump_edit_baton));
+ eb->stream = stream;
+ eb->update_anchor_relpath = update_anchor_relpath;
+ eb->pending_db = NULL;
+
+ /* Create a special per-revision pool */
+ eb->pool = svn_pool_create(pool);
+
+ /* Open a unique temporary file for all textdelta applications in
+ this edit session. The file is automatically closed and cleaned
+ up when the edit session is done. */
+ SVN_ERR(svn_io_open_unique_file3(&(eb->delta_file), &(eb->delta_abspath),
+ NULL, svn_io_file_del_on_close, pool, pool));
+
+ de = svn_delta_default_editor(pool);
+ de->open_root = open_root;
+ de->delete_entry = delete_entry;
+ de->add_directory = add_directory;
+ de->open_directory = open_directory;
+ de->close_directory = close_directory;
+ de->change_dir_prop = change_dir_prop;
+ de->change_file_prop = change_file_prop;
+ de->apply_textdelta = apply_textdelta;
+ de->add_file = add_file;
+ de->open_file = open_file;
+ de->close_file = close_file;
+ de->close_edit = close_edit;
+
+ /* Set the edit_baton and editor. */
+ *edit_baton = eb;
+ *editor = de;
+
+ return SVN_NO_ERROR;
+}
diff --git a/subversion/libsvn_repos/fs-wrap.c b/subversion/libsvn_repos/fs-wrap.c
index f895d5aa0c22..c5cecdc56c84 100644
--- a/subversion/libsvn_repos/fs-wrap.c
+++ b/subversion/libsvn_repos/fs-wrap.c
@@ -282,7 +282,7 @@ svn_repos__normalize_prop(const svn_string_t **result_p,
}
else
{
- *result_p = svn_string_dup(value, result_pool);
+ *result_p = value;
if (normalized_p)
*normalized_p = FALSE;
}
@@ -1106,7 +1106,7 @@ svn_repos_fs_get_inherited_props(apr_array_header_t **inherited_props_p,
apr_pstrdup(result_pool, parent_path + 1);
i_props->prop_hash = parent_properties;
/* Build the output array in depth-first order. */
- svn_sort__array_insert(inherited_props, &i_props, 0);
+ SVN_ERR(svn_sort__array_insert2(inherited_props, &i_props, 0));
}
}
}
diff --git a/subversion/libsvn_repos/libsvn_repos.pc.in b/subversion/libsvn_repos/libsvn_repos.pc.in
index af70b94d98bd..b4fcf0549927 100644
--- a/subversion/libsvn_repos/libsvn_repos.pc.in
+++ b/subversion/libsvn_repos/libsvn_repos.pc.in
@@ -6,7 +6,7 @@ includedir=@includedir@
Name: libsvn_repos
Description: Subversion Repository Library
Version: @PACKAGE_VERSION@
-Requires: apr-@SVN_APR_MAJOR_VERSION@
-Requires.private: libsvn_fs libsvn_delta libsvn_subr
-Libs: -L${libdir} -lsvn_repos
-Cflags: -I${includedir}
+Requires: apr-@SVN_APR_MAJOR_VERSION@
+Requires.private: libsvn_fs, libsvn_delta, libsvn_subr
+Libs: -L${libdir} -lsvn_repos-1
+Cflags: -I${includedir}/subversion-1
diff --git a/subversion/libsvn_repos/list.c b/subversion/libsvn_repos/list.c
index ef8ac32b1b38..f620b3f62489 100644
--- a/subversion/libsvn_repos/list.c
+++ b/subversion/libsvn_repos/list.c
@@ -324,7 +324,7 @@ svn_repos_list(svn_fs_root_t *root,
svn_membuf__create(&scratch_buffer, 256, scratch_pool);
/* Actually report PATH, if it passes the filters. */
- if (matches_any(svn_dirent_dirname(path, scratch_pool), patterns,
+ if (matches_any(svn_dirent_basename(path, scratch_pool), patterns,
&scratch_buffer))
SVN_ERR(report_dirent(root, path, kind, path_info_only,
receiver, receiver_baton, scratch_pool));
diff --git a/subversion/libsvn_repos/load-fs-vtable.c b/subversion/libsvn_repos/load-fs-vtable.c
index f6c6bf660b12..17c0d27107a2 100644
--- a/subversion/libsvn_repos/load-fs-vtable.c
+++ b/subversion/libsvn_repos/load-fs-vtable.c
@@ -75,7 +75,7 @@ struct parse_baton
(svn_revnum_t *) in the dump stream to their corresponding revisions
(svn_revnum_t *) in the loaded repository. The hash and its
contents are allocated in POOL. */
- /* ### See http://subversion.tigris.org/issues/show_bug.cgi?id=3903
+ /* ### See https://issues.apache.org/jira/browse/SVN-3903
### for discussion about improving the memory costs of this mapping. */
apr_hash_t *rev_map;
@@ -155,9 +155,11 @@ get_revision_mapping(apr_hash_t *rev_map,
}
-/* Change revision property NAME to VALUE for REVISION in REPOS. If
- VALIDATE_PROPS is set, use functions which perform validation of
- the property value. Otherwise, bypass those checks. */
+/* Change revision property NAME to VALUE for REVISION in REPOS.
+ If NORMALIZE_PROPS is set, attempt to normalize properties before
+ changing them, if that is needed. If VALIDATE_PROPS is set, use
+ functions which perform validation of the property value.
+ Otherwise, bypass those checks. */
static svn_error_t *
change_rev_prop(svn_repos_t *repos,
svn_revnum_t revision,
@@ -179,17 +181,23 @@ change_rev_prop(svn_repos_t *repos,
NULL, value, pool);
}
-/* Change property NAME to VALUE for PATH in TXN_ROOT. If
- VALIDATE_PROPS is set, use functions which perform validation of
- the property value. Otherwise, bypass those checks. */
+/* Change property NAME to VALUE for PATH in TXN_ROOT.
+ If NORMALIZE_PROPS is set, attempt to normalize properties before
+ changing them, if that is needed. If VALIDATE_PROPS is set, use
+ functions which perform validation of the property value.
+ Otherwise, bypass those checks. */
static svn_error_t *
change_node_prop(svn_fs_root_t *txn_root,
const char *path,
const char *name,
const svn_string_t *value,
svn_boolean_t validate_props,
+ svn_boolean_t normalize_props,
apr_pool_t *pool)
{
+ if (normalize_props)
+ SVN_ERR(svn_repos__normalize_prop(&value, NULL, name, value, pool, pool));
+
if (validate_props)
return svn_repos_fs_change_node_prop(txn_root, path, name, value, pool);
else
@@ -213,9 +221,11 @@ prefix_mergeinfo_paths(svn_string_t **mergeinfo_val,
{
const char *merge_source = apr_hash_this_key(hi);
svn_rangelist_t *rangelist = apr_hash_this_val(hi);
- const char *path;
+ const char *path, *canonicalized_path;
- merge_source = svn_relpath_canonicalize(merge_source, pool);
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonicalized_path, NULL,
+ merge_source, pool, pool));
+ merge_source = canonicalized_path;
/* The svn:mergeinfo property syntax demands a repos abspath */
path = svn_fspath__canonicalize(svn_relpath_join(parent_dir,
@@ -253,7 +263,7 @@ renumber_mergeinfo_revs(svn_string_t **final_val,
SVN_ERR(svn_mergeinfo_parse(&mergeinfo, initial_val->data, subpool));
/* Issue #3020
- http://subversion.tigris.org/issues/show_bug.cgi?id=3020#desc16
+ https://issues.apache.org/jira/browse/SVN-3020#desc16
Remove mergeinfo older than the oldest revision in the dump stream
and adjust its revisions by the difference between the head rev of
the target repository and the current dump stream rev. */
@@ -323,7 +333,7 @@ renumber_mergeinfo_revs(svn_string_t **final_val,
mergeinfo with a start rev > end rev. If that gets into the
repository then a world of bustage breaks loose anytime that
bogus mergeinfo is parsed. See
- http://subversion.tigris.org/issues/show_bug.cgi?id=3020#desc16.
+ https://issues.apache.org/jira/browse/SVN-3020#desc16.
*/
continue;
}
@@ -377,7 +387,10 @@ make_node_baton(struct node_baton **node_baton_p,
/* Then add info from the headers. */
if ((val = svn_hash_gets(headers, SVN_REPOS_DUMPFILE_NODE_PATH)))
{
- val = svn_relpath_canonicalize(val, pool);
+ const char *canonicalized_path;
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonicalized_path, NULL,
+ val, pool, pool));
+ val = canonicalized_path;
if (rb->pb->parent_dir)
nb->path = svn_relpath_join(rb->pb->parent_dir, val, pool);
else
@@ -869,7 +882,8 @@ set_node_property(void *baton,
}
return change_node_prop(rb->txn_root, nb->path, name, value,
- pb->validate_props, nb->pool);
+ pb->validate_props, rb->pb->normalize_props,
+ nb->pool);
}
@@ -885,7 +899,8 @@ delete_node_property(void *baton,
return SVN_NO_ERROR;
return change_node_prop(rb->txn_root, nb->path, name, NULL,
- rb->pb->validate_props, nb->pool);
+ rb->pb->validate_props, rb->pb->normalize_props,
+ nb->pool);
}
@@ -909,7 +924,8 @@ remove_node_props(void *baton)
const char *key = apr_hash_this_key(hi);
SVN_ERR(change_node_prop(rb->txn_root, nb->path, key, NULL,
- rb->pb->validate_props, nb->pool));
+ rb->pb->validate_props, rb->pb->normalize_props,
+ nb->pool));
}
return SVN_NO_ERROR;
@@ -1202,7 +1218,12 @@ svn_repos_get_fs_build_parser6(const svn_repos_parse_fns3_t **callbacks,
struct parse_baton *pb = apr_pcalloc(pool, sizeof(*pb));
if (parent_dir)
- parent_dir = svn_relpath_canonicalize(parent_dir, pool);
+ {
+ const char *canonicalized_path;
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonicalized_path, NULL,
+ parent_dir, pool, pool));
+ parent_dir = canonicalized_path;
+ }
SVN_ERR_ASSERT((SVN_IS_VALID_REVNUM(start_rev) &&
SVN_IS_VALID_REVNUM(end_rev))
@@ -1400,7 +1421,7 @@ revprops_close_revision(void *baton)
* both of these values are #SVN_INVALID_REVNUM (in which case no
* revision-based filtering occurs at all), or both are valid revisions
* (where START_REV is older than or equivalent to END_REV).
- *
+ *
* START_REV and END_REV act as filters, the lower and upper (inclusive)
* range values of revisions which will
* be loaded. Either both of these values are #SVN_INVALID_REVNUM (in
diff --git a/subversion/libsvn_repos/load.c b/subversion/libsvn_repos/load.c
index 27cf4a174552..ec2699f0042b 100644
--- a/subversion/libsvn_repos/load.c
+++ b/subversion/libsvn_repos/load.c
@@ -355,24 +355,62 @@ parse_text_block(svn_stream_t *stream,
-/* Parse VERSIONSTRING and verify that we support the dumpfile format
- version number, setting *VERSION appropriately. */
+/* Parse VERSIONSTRING from STREAM and verify that we support the dumpfile
+ format version number, setting *VERSION appropriately. */
static svn_error_t *
parse_format_version(int *version,
- const char *versionstring)
+ svn_stream_t *stream,
+ apr_pool_t *scratch_pool)
{
static const int magic_len = sizeof(SVN_REPOS_DUMPFILE_MAGIC_HEADER) - 1;
- const char *p = strchr(versionstring, ':');
+ svn_stringbuf_t *linebuf;
+ const char *p;
int value;
+ /* No svn_stream_readline() here, because malformed streams may not have
+ the EOL at all, and currently svn_stream_readline() keeps loading the
+ whole thing into memory until it encounters an EOL or the stream ends.
+ This is particularly troublesome, because users may incorrectly attempt
+ to load arbitrary large files instread of proper dump files.
+
+ As a workaround, parse the first line with a length limit. While this
+ is not a complete solution, doing so handles the common case described
+ above. For a complete solution, svn_stream_readline() may need to grow
+ a `limit` argument that would allow us to safely use it everywhere within
+ this parser.
+ */
+ linebuf = svn_stringbuf_create_empty(scratch_pool);
+ while (1)
+ {
+ apr_size_t len;
+ char c;
+
+ len = 1;
+ SVN_ERR(svn_stream_read_full(stream, &c, &len));
+ if (len != 1)
+ return stream_ran_dry();
+
+ if (c == '\n')
+ break;
+
+ if (linebuf->len + 1 > 80)
+ return svn_error_createf(SVN_ERR_STREAM_MALFORMED_DATA, NULL,
+ _("Malformed dumpfile header '%s'"),
+ linebuf->data);
+
+ svn_stringbuf_appendbyte(linebuf, c);
+ }
+
+ p = strchr(linebuf->data, ':');
+
if (p == NULL
- || p != (versionstring + magic_len)
- || strncmp(versionstring,
+ || p != (linebuf->data + magic_len)
+ || strncmp(linebuf->data,
SVN_REPOS_DUMPFILE_MAGIC_HEADER,
magic_len))
return svn_error_createf(SVN_ERR_STREAM_MALFORMED_DATA, NULL,
_("Malformed dumpfile header '%s'"),
- versionstring);
+ linebuf->data);
SVN_ERR(svn_cstring_atoi(&value, p + 1));
@@ -542,14 +580,10 @@ svn_repos_parse_dumpstream3(svn_stream_t *stream,
parse_fns = complete_vtable(parse_fns, pool);
/* Start parsing process. */
- SVN_ERR(svn_stream_readline(stream, &linebuf, "\n", &eof, linepool));
- if (eof)
- return stream_ran_dry();
-
/* The first two lines of the stream are the dumpfile-format version
number, and a blank line. To preserve backward compatibility,
don't assume the existence of newer parser-vtable functions. */
- SVN_ERR(parse_format_version(&version, linebuf->data));
+ SVN_ERR(parse_format_version(&version, stream, linepool));
if (parse_fns->magic_header_record != NULL)
SVN_ERR(parse_fns->magic_header_record(version, parse_baton, pool));
diff --git a/subversion/libsvn_repos/log.c b/subversion/libsvn_repos/log.c
index 7dec5dd8d5b7..d9a1fb1085e1 100644
--- a/subversion/libsvn_repos/log.c
+++ b/subversion/libsvn_repos/log.c
@@ -655,7 +655,7 @@ fs_mergeinfo_changed(svn_mergeinfo_catalog_t *deleted_mergeinfo_catalog,
because that greatly influences the costs for log processing.
So, it is faster to iterate over the changes twice - in the worst
case b/c most times there is no m/i at all and we exit out early
- without any overhead.
+ without any overhead.
*/
while (change && (!any_mergeinfo || !any_copy))
{
@@ -1227,7 +1227,7 @@ typedef struct interesting_merge_baton_t
void *inner_baton;
} interesting_merge_baton_t;
-/* Implements svn_repos_path_change_receiver_t.
+/* Implements svn_repos_path_change_receiver_t.
* *BATON is a interesting_merge_baton_t.
*
* If BATON->REV a merged revision that is not already part of
@@ -2447,7 +2447,7 @@ svn_repos_get_logs5(svn_repos_t *repos,
represents all of PATHS' history between START and END. We will use
this later to squelch duplicate log revisions that might exist in
both natural history and merged-in history. See
- http://subversion.tigris.org/issues/show_bug.cgi?id=3650#desc5 */
+ https://issues.apache.org/jira/browse/SVN-3650#desc5 */
if (include_merged_revisions)
{
apr_pool_t *subpool = svn_pool_create(scratch_pool);
diff --git a/subversion/libsvn_repos/replay.c b/subversion/libsvn_repos/replay.c
index 9bcc667f6da4..4c825697e6a6 100644
--- a/subversion/libsvn_repos/replay.c
+++ b/subversion/libsvn_repos/replay.c
@@ -126,9 +126,6 @@ struct copy_info
struct path_driver_cb_baton
{
- const svn_delta_editor_t *editor;
- void *edit_baton;
-
/* The root of the revision we're replaying. */
svn_fs_root_t *root;
@@ -454,14 +451,14 @@ fill_copyfrom(svn_fs_root_t **copyfrom_root,
static svn_error_t *
path_driver_cb_func(void **dir_baton,
+ const svn_delta_editor_t *editor,
+ void *edit_baton,
void *parent_baton,
void *callback_baton,
const char *edit_path,
apr_pool_t *pool)
{
struct path_driver_cb_baton *cb = callback_baton;
- const svn_delta_editor_t *editor = cb->editor;
- void *edit_baton = cb->edit_baton;
svn_fs_root_t *root = cb->root;
svn_fs_path_change3_t *change;
svn_boolean_t do_add = FALSE, do_delete = FALSE;
@@ -894,7 +891,7 @@ get_relevant_changes(apr_hash_t **changed_paths,
}
/* If the base_path doesn't match the top directory of this path
- we don't want anything to do with it...
+ we don't want anything to do with it...
...unless this was a change to one of the parent directories of
base_path. */
if ( svn_relpath_skip_ancestor(base_relpath, path)
@@ -957,8 +954,6 @@ svn_repos_replay2(svn_fs_root_t *root,
low_water_mark = 0;
/* Initialize our callback baton. */
- cb_baton.editor = editor;
- cb_baton.edit_baton = edit_baton;
cb_baton.root = root;
cb_baton.changed_paths = changed_paths;
cb_baton.authz_read_func = authz_read_func;
@@ -989,7 +984,7 @@ svn_repos_replay2(svn_fs_root_t *root,
}
/* Call the path-based editor driver. */
- return svn_delta_path_driver2(editor, edit_baton,
+ return svn_delta_path_driver3(editor, edit_baton,
paths, TRUE,
path_driver_cb_func, &cb_baton, pool);
#else
diff --git a/subversion/libsvn_repos/repos.c b/subversion/libsvn_repos/repos.c
index 2333f561efda..2189de823d20 100644
--- a/subversion/libsvn_repos/repos.c
+++ b/subversion/libsvn_repos/repos.c
@@ -1183,7 +1183,7 @@ svn_repos_create(svn_repos_t **repos_p,
if ((err = svn_fs_create2(&repos->fs, repos->db_path, fs_config,
result_pool, scratch_pool)))
{
- /* If there was an error making the filesytem, e.g. unknown/supported
+ /* If there was an error making the filesystem, e.g. unknown/supported
* filesystem type. Clean up after ourselves. Yes this is safe because
* create_repos_structure will fail if the path existed before we started
* so we can't accidentally remove a directory that previously existed.
@@ -1721,7 +1721,7 @@ svn_repos_recover4(const char *path,
}
struct freeze_baton_t {
- apr_array_header_t *paths;
+ const apr_array_header_t *paths;
int counter;
svn_repos_freeze_func_t freeze_func;
void *freeze_baton;
@@ -1788,7 +1788,7 @@ multi_freeze(void *baton,
and an SQLite reserved lock which means the repository is readable
while frozen. */
svn_error_t *
-svn_repos_freeze(apr_array_header_t *paths,
+svn_repos_freeze(const apr_array_header_t *paths,
svn_repos_freeze_func_t freeze_func,
void *freeze_baton,
apr_pool_t *pool)
diff --git a/subversion/libsvn_subr/cmdline.c b/subversion/libsvn_subr/cmdline.c
index 2255952189ff..d1aad71b234a 100644
--- a/subversion/libsvn_subr/cmdline.c
+++ b/subversion/libsvn_subr/cmdline.c
@@ -39,6 +39,7 @@
#include <apr.h> /* for STDIN_FILENO */
#include <apr_errno.h> /* for apr_strerror */
+#include <apr_escape.h>
#include <apr_general.h> /* for apr_initialize/apr_terminate */
#include <apr_strings.h> /* for apr_snprintf */
#include <apr_pools.h>
@@ -1233,7 +1234,7 @@ svn_cmdline__be_interactive(svn_boolean_t non_interactive,
}
-/* Helper for the next two functions. Set *EDITOR to some path to an
+/* Helper for the edit_externally functions. Set *EDITOR to some path to an
editor binary. Sources to search include: the EDITOR_CMD argument
(if not NULL), $SVN_EDITOR, the runtime CONFIG variable (if CONFIG
is not NULL), $VISUAL, $EDITOR. Return
@@ -1299,6 +1300,98 @@ find_editor_binary(const char **editor,
return SVN_NO_ERROR;
}
+/* Wrapper around apr_pescape_shell() which also escapes whitespace. */
+static const char *
+escape_path(apr_pool_t *pool, const char *orig_path)
+{
+ apr_size_t len, esc_len;
+ apr_status_t status;
+
+ len = strlen(orig_path);
+ esc_len = 0;
+
+ status = apr_escape_shell(NULL, orig_path, len, &esc_len);
+
+ if (status == APR_NOTFOUND)
+ {
+ /* No special characters found by APR, so just surround it in double
+ quotes in case there is whitespace, which APR (as of 1.6.5) doesn't
+ consider special. */
+ return apr_psprintf(pool, "\"%s\"", orig_path);
+ }
+ else
+ {
+#ifdef WIN32
+ const char *p;
+ /* Following the advice from
+ https://docs.microsoft.com/en-us/archive/blogs/twistylittlepassagesallalike/everyone-quotes-command-line-arguments-the-wrong-way
+ 1. Surround argument with double-quotes
+ 2. Escape backslashes, if they're followed by a double-quote, and double-quotes
+ 3. Escape any metacharacter, including double-quotes, with ^ */
+
+ /* Use APR's buffer size as an approximation for how large the escaped
+ string should be, plus 4 bytes for the leading/trailing ^" */
+ svn_stringbuf_t *buf = svn_stringbuf_create_ensure(esc_len + 4, pool);
+ svn_stringbuf_appendcstr(buf, "^\"");
+ for (p = orig_path; *p; p++)
+ {
+ int nr_backslash = 0;
+ while (*p && *p == '\\')
+ {
+ nr_backslash++;
+ p++;
+ }
+
+ if (!*p)
+ /* We've reached the end of the argument, so we need 2n backslash
+ characters. That will be interpreted as n backslashes and the
+ final double-quote character will be interpreted as the final
+ string delimiter. */
+ svn_stringbuf_appendfill(buf, '\\', nr_backslash * 2);
+ else if (*p == '"')
+ {
+ /* Double-quote as part of the argument means we need to double
+ any preceeding backslashes and then add one to escape the
+ double-quote. */
+ svn_stringbuf_appendfill(buf, '\\', nr_backslash * 2 + 1);
+ svn_stringbuf_appendbyte(buf, '^');
+ svn_stringbuf_appendbyte(buf, *p);
+ }
+ else
+ {
+ /* Since there's no double-quote, we just insert any backslashes
+ literally. No escaping needed. */
+ svn_stringbuf_appendfill(buf, '\\', nr_backslash);
+ if (strchr("()%!^<>&|", *p))
+ svn_stringbuf_appendbyte(buf, '^');
+ svn_stringbuf_appendbyte(buf, *p);
+ }
+ }
+ svn_stringbuf_appendcstr(buf, "^\"");
+ return buf->data;
+#else
+ char *path, *p, *esc_path;
+
+ /* Account for whitespace, since APR doesn't */
+ for (p = (char *)orig_path; *p; p++)
+ if (strchr(" \t\n\r", *p))
+ esc_len++;
+
+ path = apr_pcalloc(pool, esc_len);
+ apr_escape_shell(path, orig_path, len, NULL);
+
+ p = esc_path = apr_pcalloc(pool, len + esc_len + 1);
+ while (*path)
+ {
+ if (strchr(" \t\n\r", *path))
+ *p++ = '\\';
+ *p++ = *path++;
+ }
+
+ return esc_path;
+#endif
+ }
+}
svn_error_t *
svn_cmdline__edit_file_externally(const char *path,
@@ -1330,7 +1423,9 @@ svn_cmdline__edit_file_externally(const char *path,
return svn_error_wrap_apr
(apr_err, _("Can't change working directory to '%s'"), base_dir);
- cmd = apr_psprintf(pool, "%s %s", editor, file_name);
+ /* editor is explicitly documented as being interpreted by the user's shell,
+ and as such should already be quoted/escaped as needed. */
+ cmd = apr_psprintf(pool, "%s %s", editor, escape_path(pool, file_name));
sys_err = system(cmd);
apr_err = apr_filepath_set(old_cwd, pool);
@@ -1489,7 +1584,10 @@ svn_cmdline__edit_string_externally(svn_string_t **edited_contents /* UTF-8! */,
err = svn_utf_cstring_from_utf8(&tmpfile_native, tmpfile_name, pool);
if (err)
goto cleanup;
- cmd = apr_psprintf(pool, "%s %s", editor, tmpfile_native);
+
+ /* editor is explicitly documented as being interpreted by the user's shell,
+ and as such should already be quoted/escaped as needed. */
+ cmd = apr_psprintf(pool, "%s %s", editor, escape_path(pool, tmpfile_native));
/* If the caller wants us to leave the file around, return the path
of the file we'll use, and make a note not to destroy it. */
diff --git a/subversion/libsvn_subr/compress_lz4.c b/subversion/libsvn_subr/compress_lz4.c
index d700b3215566..7dd45263b0c4 100644
--- a/subversion/libsvn_subr/compress_lz4.c
+++ b/subversion/libsvn_subr/compress_lz4.c
@@ -27,7 +27,7 @@
#include "svn_private_config.h"
-#if SVN_INTERNAL_LZ4
+#ifdef SVN_INTERNAL_LZ4
#include "lz4/lz4internal.h"
#else
#include <lz4.h>
diff --git a/subversion/libsvn_subr/config_file.c b/subversion/libsvn_subr/config_file.c
index bd2ec828a542..9c0a83a170f8 100644
--- a/subversion/libsvn_subr/config_file.c
+++ b/subversion/libsvn_subr/config_file.c
@@ -1045,7 +1045,7 @@ svn_config_ensure(const char *config_dir, apr_pool_t *pool)
"The syntax of the configuration files is a subset of the one used by" NL
"Python's ConfigParser module; see" NL
"" NL
- " http://www.python.org/doc/current/lib/module-ConfigParser.html" NL
+ " https://docs.python.org/3/library/configparser.html" NL
"" NL
"Configuration data in the Windows registry" NL
"==========================================" NL
@@ -1155,6 +1155,7 @@ svn_config_ensure(const char *config_dir, apr_pool_t *pool)
"### HTTP operation." NL
"### http-chunked-requests Whether to use chunked transfer" NL
"### encoding for HTTP requests body." NL
+ "### http-auth-types List of HTTP authentication types."NL
"### ssl-authority-files List of files, each of a trusted CA"
NL
"### ssl-trust-default-ca Trust the system 'default' CAs" NL
@@ -1191,16 +1192,13 @@ svn_config_ensure(const char *config_dir, apr_pool_t *pool)
"### may be cached to disk." NL
"### username Specifies the default username." NL
"###" NL
- "### Set store-passwords to 'no' to avoid storing passwords on disk" NL
- "### in any way, including in password stores. It defaults to" NL
+ "### Set store-passwords to 'no' to avoid storing new passwords on" NL
+ "### disk in any way, including in password stores. It defaults to" NL
"### 'yes', but Subversion will never save your password to disk in" NL
"### plaintext unless explicitly configured to do so." NL
- "### Note that this option only prevents saving of *new* passwords;" NL
- "### it doesn't invalidate existing passwords. (To do that, remove" NL
- "### the cache files by hand as described in the Subversion book.)" NL
"###" NL
#ifndef SVN_DISABLE_PLAINTEXT_PASSWORD_STORAGE
- "### Set store-plaintext-passwords to 'no' to avoid storing" NL
+ "### Set store-plaintext-passwords to 'no' to avoid storing new" NL
"### passwords in unencrypted form in the auth/ area of your config" NL
"### directory. Set it to 'yes' to allow Subversion to store" NL
"### unencrypted passwords in the auth/ area. The default is" NL
@@ -1210,22 +1208,15 @@ svn_config_ensure(const char *config_dir, apr_pool_t *pool)
"### 'store-auth-creds' is set to 'no'." NL
"###" NL
#endif
- "### Set store-ssl-client-cert-pp to 'no' to avoid storing ssl" NL
+ "### Set store-ssl-client-cert-pp to 'no' to avoid storing new ssl" NL
"### client certificate passphrases in the auth/ area of your" NL
"### config directory. It defaults to 'yes', but Subversion will" NL
"### never save your passphrase to disk in plaintext unless" NL
"### explicitly configured to do so." NL
"###" NL
- "### Note store-ssl-client-cert-pp only prevents the saving of *new*"NL
- "### passphrases; it doesn't invalidate existing passphrases. To do"NL
- "### that, remove the cache files by hand as described in the" NL
- "### Subversion book at http://svnbook.red-bean.com/nightly/en/\\" NL
- "### svn.serverconfig.netmodel.html\\" NL
- "### #svn.serverconfig.netmodel.credcache" NL
- "###" NL
#ifndef SVN_DISABLE_PLAINTEXT_PASSWORD_STORAGE
"### Set store-ssl-client-cert-pp-plaintext to 'no' to avoid storing"NL
- "### passphrases in unencrypted form in the auth/ area of your" NL
+ "### new passphrases in unencrypted form in the auth/ area of your" NL
"### config directory. Set it to 'yes' to allow Subversion to" NL
"### store unencrypted passphrases in the auth/ area. The default" NL
"### is 'ask', which means that Subversion will prompt before" NL
@@ -1234,12 +1225,19 @@ svn_config_ensure(const char *config_dir, apr_pool_t *pool)
"### 'store-ssl-client-cert-pp' is set to 'no'." NL
"###" NL
#endif
- "### Set store-auth-creds to 'no' to avoid storing any Subversion" NL
+ "### Set store-auth-creds to 'no' to avoid storing any new Subversion"
+ NL
"### credentials in the auth/ area of your config directory." NL
"### Note that this includes SSL server certificates." NL
- "### It defaults to 'yes'. Note that this option only prevents" NL
- "### saving of *new* credentials; it doesn't invalidate existing" NL
- "### caches. (To do that, remove the cache files by hand.)" NL
+ "### It defaults to 'yes'." NL
+ "###" NL
+ "### Note that setting a 'store-*' option to 'no' only prevents" NL
+ "### saving of *new* passwords, passphrases or other credentials." NL
+ "### It does not remove or invalidate existing stored credentials." NL
+ "### To do that, see the 'svn auth --remove' command, or remove the" NL
+ "### cache files by hand as described in the Subversion book at" NL
+ "### http://svnbook.red-bean.com/nightly/en/svn.serverconfig.netmodel.html#svn.tour.initial.authn-cache-purge"
+ NL
"###" NL
"### HTTP timeouts, if given, are specified in seconds. A timeout" NL
"### of 0, i.e. zero, causes a builtin default to be used." NL
diff --git a/subversion/libsvn_subr/config_keys.inc b/subversion/libsvn_subr/config_keys.inc
index d9f448447de7..498e704d818f 100644
--- a/subversion/libsvn_subr/config_keys.inc
+++ b/subversion/libsvn_subr/config_keys.inc
@@ -1,4 +1,4 @@
-/* Automatically generated by build/generator/gen_base.pyc:write_config_keys() */
+/* Automatically generated by build/generator/gen_base.py:write_config_keys() */
static const char *svn__valid_config_files[] = {
SVN_CONFIG_CATEGORY_SERVERS,
diff --git a/subversion/libsvn_subr/config_win.c b/subversion/libsvn_subr/config_win.c
index aeab0d6b1af8..468545b4809b 100644
--- a/subversion/libsvn_subr/config_win.c
+++ b/subversion/libsvn_subr/config_win.c
@@ -137,7 +137,7 @@ parse_section(svn_config_t *cfg, HKEY hkey, const char *section,
_("Can't enumerate registry values"));
/* Ignore option names that start with '#', see
- http://subversion.tigris.org/issues/show_bug.cgi?id=671 */
+ https://issues.apache.org/jira/browse/SVN-671 */
if (type == REG_SZ && option->data[0] != '#')
{
DWORD value_len = (DWORD)value->blocksize;
diff --git a/subversion/libsvn_subr/deprecated.c b/subversion/libsvn_subr/deprecated.c
index 1110d994bb79..ef19bdbe6c4e 100644
--- a/subversion/libsvn_subr/deprecated.c
+++ b/subversion/libsvn_subr/deprecated.c
@@ -390,6 +390,30 @@ print_command_info(const svn_opt_subcommand_desc_t *cmd,
return SVN_NO_ERROR;
}
+const svn_opt_subcommand_desc2_t *
+svn_opt_get_canonical_subcommand2(const svn_opt_subcommand_desc2_t *table,
+ const char *cmd_name)
+{
+ int i = 0;
+
+ if (cmd_name == NULL)
+ return NULL;
+
+ while (table[i].name) {
+ int j;
+ if (strcmp(cmd_name, table[i].name) == 0)
+ return table + i;
+ for (j = 0; (j < SVN_OPT_MAX_ALIASES) && table[i].aliases[j]; j++)
+ if (strcmp(cmd_name, table[i].aliases[j]) == 0)
+ return table + i;
+
+ i++;
+ }
+
+ /* If we get here, there was no matching subcommand name or alias. */
+ return NULL;
+}
+
const svn_opt_subcommand_desc_t *
svn_opt_get_canonical_subcommand(const svn_opt_subcommand_desc_t *table,
const char *cmd_name)
@@ -414,6 +438,344 @@ svn_opt_get_canonical_subcommand(const svn_opt_subcommand_desc_t *table,
return NULL;
}
+const apr_getopt_option_t *
+svn_opt_get_option_from_code2(int code,
+ const apr_getopt_option_t *option_table,
+ const svn_opt_subcommand_desc2_t *command,
+ apr_pool_t *pool)
+{
+ apr_size_t i;
+
+ for (i = 0; option_table[i].optch; i++)
+ if (option_table[i].optch == code)
+ {
+ if (command)
+ {
+ int j;
+
+ for (j = 0; ((j < SVN_OPT_MAX_OPTIONS) &&
+ command->desc_overrides[j].optch); j++)
+ if (command->desc_overrides[j].optch == code)
+ {
+ apr_getopt_option_t *tmpopt =
+ apr_palloc(pool, sizeof(*tmpopt));
+ *tmpopt = option_table[i];
+ tmpopt->description = command->desc_overrides[j].desc;
+ return tmpopt;
+ }
+ }
+ return &(option_table[i]);
+ }
+
+ return NULL;
+}
+
+const apr_getopt_option_t *
+svn_opt_get_option_from_code(int code,
+ const apr_getopt_option_t *option_table)
+{
+ apr_size_t i;
+
+ for (i = 0; option_table[i].optch; i++)
+ if (option_table[i].optch == code)
+ return &(option_table[i]);
+
+ return NULL;
+}
+
+/* Like svn_opt_get_option_from_code2(), but also, if CODE appears a second
+ * time in OPTION_TABLE with a different name, then set *LONG_ALIAS to that
+ * second name, else set it to NULL. */
+static const apr_getopt_option_t *
+get_option_from_code(const char **long_alias,
+ int code,
+ const apr_getopt_option_t *option_table,
+ const svn_opt_subcommand_desc2_t *command,
+ apr_pool_t *pool)
+{
+ const apr_getopt_option_t *i;
+ const apr_getopt_option_t *opt
+ = svn_opt_get_option_from_code2(code, option_table, command, pool);
+
+ /* Find a long alias in the table, if there is one. */
+ *long_alias = NULL;
+ for (i = option_table; i->optch; i++)
+ {
+ if (i->optch == code && i->name != opt->name)
+ {
+ *long_alias = i->name;
+ break;
+ }
+ }
+
+ return opt;
+}
+
+/* Print an option OPT nicely into a STRING allocated in POOL.
+ * If OPT has a single-character short form, then print OPT->name (if not
+ * NULL) as an alias, else print LONG_ALIAS (if not NULL) as an alias.
+ * If DOC is set, include the generic documentation string of OPT,
+ * localized to the current locale if a translation is available.
+ */
+static void
+format_option(const char **string,
+ const apr_getopt_option_t *opt,
+ const char *long_alias,
+ svn_boolean_t doc,
+ apr_pool_t *pool)
+{
+ char *opts;
+
+ if (opt == NULL)
+ {
+ *string = "?";
+ return;
+ }
+
+ /* We have a valid option which may or may not have a "short
+ name" (a single-character alias for the long option). */
+ if (opt->optch <= 255)
+ opts = apr_psprintf(pool, "-%c [--%s]", opt->optch, opt->name);
+ else if (long_alias)
+ opts = apr_psprintf(pool, "--%s [--%s]", opt->name, long_alias);
+ else
+ opts = apr_psprintf(pool, "--%s", opt->name);
+
+ if (opt->has_arg)
+ opts = apr_pstrcat(pool, opts, _(" ARG"), SVN_VA_NULL);
+
+ if (doc)
+ opts = apr_psprintf(pool, "%-24s : %s", opts, _(opt->description));
+
+ *string = opts;
+}
+
+/* Print the canonical command name for CMD, and all its aliases, to
+ STREAM. If HELP is set, print CMD's help string too, in which case
+ obtain option usage from OPTIONS_TABLE. */
+static svn_error_t *
+print_command_info2(const svn_opt_subcommand_desc2_t *cmd,
+ const apr_getopt_option_t *options_table,
+ const int *global_options,
+ svn_boolean_t help,
+ apr_pool_t *pool,
+ FILE *stream)
+{
+ svn_boolean_t first_time;
+ apr_size_t i;
+
+ /* Print the canonical command name. */
+ SVN_ERR(svn_cmdline_fputs(cmd->name, stream, pool));
+
+ /* Print the list of aliases. */
+ first_time = TRUE;
+ for (i = 0; i < SVN_OPT_MAX_ALIASES; i++)
+ {
+ if (cmd->aliases[i] == NULL)
+ break;
+
+ if (first_time) {
+ SVN_ERR(svn_cmdline_fputs(" (", stream, pool));
+ first_time = FALSE;
+ }
+ else
+ SVN_ERR(svn_cmdline_fputs(", ", stream, pool));
+
+ SVN_ERR(svn_cmdline_fputs(cmd->aliases[i], stream, pool));
+ }
+
+ if (! first_time)
+ SVN_ERR(svn_cmdline_fputs(")", stream, pool));
+
+ if (help)
+ {
+ const apr_getopt_option_t *option;
+ const char *long_alias;
+ svn_boolean_t have_options = FALSE;
+
+ SVN_ERR(svn_cmdline_fprintf(stream, pool, ": %s", _(cmd->help)));
+
+ /* Loop over all valid option codes attached to the subcommand */
+ for (i = 0; i < SVN_OPT_MAX_OPTIONS; i++)
+ {
+ if (cmd->valid_options[i])
+ {
+ if (!have_options)
+ {
+ SVN_ERR(svn_cmdline_fputs(_("\nValid options:\n"),
+ stream, pool));
+ have_options = TRUE;
+ }
+
+ /* convert each option code into an option */
+ option = get_option_from_code(&long_alias, cmd->valid_options[i],
+ options_table, cmd, pool);
+
+ /* print the option's docstring */
+ if (option && option->description)
+ {
+ const char *optstr;
+ format_option(&optstr, option, long_alias, TRUE, pool);
+ SVN_ERR(svn_cmdline_fprintf(stream, pool, " %s\n",
+ optstr));
+ }
+ }
+ }
+ /* And global options too */
+ if (global_options && *global_options)
+ {
+ SVN_ERR(svn_cmdline_fputs(_("\nGlobal options:\n"),
+ stream, pool));
+ have_options = TRUE;
+
+ for (i = 0; global_options[i]; i++)
+ {
+
+ /* convert each option code into an option */
+ option = get_option_from_code(&long_alias, global_options[i],
+ options_table, cmd, pool);
+
+ /* print the option's docstring */
+ if (option && option->description)
+ {
+ const char *optstr;
+ format_option(&optstr, option, long_alias, TRUE, pool);
+ SVN_ERR(svn_cmdline_fprintf(stream, pool, " %s\n",
+ optstr));
+ }
+ }
+ }
+
+ if (have_options)
+ SVN_ERR(svn_cmdline_fprintf(stream, pool, "\n"));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* The body for svn_opt_print_generic_help2() function with standard error
+ * handling semantic. Handling of errors implemented at caller side. */
+static svn_error_t *
+print_generic_help_body(const char *header,
+ const svn_opt_subcommand_desc2_t *cmd_table,
+ const apr_getopt_option_t *opt_table,
+ const char *footer,
+ apr_pool_t *pool, FILE *stream)
+{
+ int i = 0;
+
+ if (header)
+ SVN_ERR(svn_cmdline_fputs(header, stream, pool));
+
+ while (cmd_table[i].name)
+ {
+ SVN_ERR(svn_cmdline_fputs(" ", stream, pool));
+ SVN_ERR(print_command_info2(cmd_table + i, opt_table,
+ NULL, FALSE,
+ pool, stream));
+ SVN_ERR(svn_cmdline_fputs("\n", stream, pool));
+ i++;
+ }
+
+ SVN_ERR(svn_cmdline_fputs("\n", stream, pool));
+
+ if (footer)
+ SVN_ERR(svn_cmdline_fputs(footer, stream, pool));
+
+ return SVN_NO_ERROR;
+}
+
+void
+svn_opt_print_generic_help2(const char *header,
+ const svn_opt_subcommand_desc2_t *cmd_table,
+ const apr_getopt_option_t *opt_table,
+ const char *footer,
+ apr_pool_t *pool, FILE *stream)
+{
+ svn_error_t *err;
+
+ err = print_generic_help_body(header, cmd_table, opt_table, footer, pool,
+ stream);
+
+ /* Issue #3014:
+ * Don't print anything on broken pipes. The pipe was likely
+ * closed by the process at the other end. We expect that
+ * process to perform error reporting as necessary.
+ *
+ * ### This assumes that there is only one error in a chain for
+ * ### SVN_ERR_IO_PIPE_WRITE_ERROR. See svn_cmdline_fputs(). */
+ if (err && err->apr_err != SVN_ERR_IO_PIPE_WRITE_ERROR)
+ svn_handle_error2(err, stderr, FALSE, "svn: ");
+ svn_error_clear(err);
+}
+
+svn_boolean_t
+svn_opt_subcommand_takes_option3(const svn_opt_subcommand_desc2_t *command,
+ int option_code,
+ const int *global_options)
+{
+ apr_size_t i;
+
+ for (i = 0; i < SVN_OPT_MAX_OPTIONS; i++)
+ if (command->valid_options[i] == option_code)
+ return TRUE;
+
+ if (global_options)
+ for (i = 0; global_options[i]; i++)
+ if (global_options[i] == option_code)
+ return TRUE;
+
+ return FALSE;
+}
+
+svn_boolean_t
+svn_opt_subcommand_takes_option2(const svn_opt_subcommand_desc2_t *command,
+ int option_code)
+{
+ return svn_opt_subcommand_takes_option3(command,
+ option_code,
+ NULL);
+}
+
+svn_boolean_t
+svn_opt_subcommand_takes_option(const svn_opt_subcommand_desc_t *command,
+ int option_code)
+{
+ apr_size_t i;
+
+ for (i = 0; i < SVN_OPT_MAX_OPTIONS; i++)
+ if (command->valid_options[i] == option_code)
+ return TRUE;
+
+ return FALSE;
+}
+
+void
+svn_opt_subcommand_help3(const char *subcommand,
+ const svn_opt_subcommand_desc2_t *table,
+ const apr_getopt_option_t *options_table,
+ const int *global_options,
+ apr_pool_t *pool)
+{
+ const svn_opt_subcommand_desc2_t *cmd =
+ svn_opt_get_canonical_subcommand2(table, subcommand);
+ svn_error_t *err;
+
+ if (cmd)
+ err = print_command_info2(cmd, options_table, global_options,
+ TRUE, pool, stdout);
+ else
+ err = svn_cmdline_fprintf(stderr, pool,
+ _("\"%s\": unknown command.\n\n"), subcommand);
+
+ if (err) {
+ /* Issue #3014: Don't print anything on broken pipes. */
+ if (err->apr_err != SVN_ERR_IO_PIPE_WRITE_ERROR)
+ svn_handle_error2(err, stderr, FALSE, "svn: ");
+ svn_error_clear(err);
+ }
+}
+
void
svn_opt_subcommand_help2(const char *subcommand,
const svn_opt_subcommand_desc2_t *table,
@@ -522,6 +884,56 @@ svn_opt_args_to_target_array(apr_array_header_t **targets_p,
}
svn_error_t *
+svn_opt_print_help4(apr_getopt_t *os,
+ const char *pgm_name,
+ svn_boolean_t print_version,
+ svn_boolean_t quiet,
+ svn_boolean_t verbose,
+ const char *version_footer,
+ const char *header,
+ const svn_opt_subcommand_desc2_t *cmd_table,
+ const apr_getopt_option_t *option_table,
+ const int *global_options,
+ const char *footer,
+ apr_pool_t *pool)
+{
+ apr_array_header_t *targets = NULL;
+
+ if (os)
+ SVN_ERR(svn_opt_parse_all_args(&targets, os, pool));
+
+ if (os && targets->nelts) /* help on subcommand(s) requested */
+ {
+ int i;
+
+ for (i = 0; i < targets->nelts; i++)
+ {
+ svn_opt_subcommand_help3(APR_ARRAY_IDX(targets, i, const char *),
+ cmd_table, option_table,
+ global_options, pool);
+ }
+ }
+ else if (print_version) /* just --version */
+ {
+ SVN_ERR(svn_opt__print_version_info(pgm_name, version_footer,
+ svn_version_extended(verbose, pool),
+ quiet, verbose, pool));
+ }
+ else if (os && !targets->nelts) /* `-h', `--help', or `help' */
+ svn_opt_print_generic_help2(header,
+ cmd_table,
+ option_table,
+ footer,
+ pool,
+ stdout);
+ else /* unknown option or cmd */
+ SVN_ERR(svn_cmdline_fprintf(stderr, pool,
+ _("Type '%s help' for usage.\n"), pgm_name));
+
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
svn_opt_print_help3(apr_getopt_t *os,
const char *pgm_name,
svn_boolean_t print_version,
diff --git a/subversion/libsvn_subr/dirent_uri.c b/subversion/libsvn_subr/dirent_uri.c
index b53f3508fd2d..059734c7a1f8 100644
--- a/subversion/libsvn_subr/dirent_uri.c
+++ b/subversion/libsvn_subr/dirent_uri.c
@@ -37,6 +37,7 @@
#include "svn_ctype.h"
#include "dirent_uri.h"
+#include "private/svn_dirent_uri_private.h"
#include "private/svn_fspath.h"
#include "private/svn_cert.h"
@@ -292,8 +293,9 @@ uri_previous_segment(const char *uri,
/* Return the canonicalized version of PATH, of type TYPE, allocated in
* POOL.
*/
-static const char *
-canonicalize(path_type_t type, const char *path, apr_pool_t *pool)
+static svn_error_t *
+canonicalize(const char **canonical_path,
+ path_type_t type, const char *path, apr_pool_t *pool)
{
char *canon, *dst;
const char *src;
@@ -307,8 +309,12 @@ canonicalize(path_type_t type, const char *path, apr_pool_t *pool)
depends on path not being zero-length. */
if (SVN_PATH_IS_EMPTY(path))
{
- assert(type != type_uri);
- return "";
+ *canonical_path = "";
+ if (type == type_uri)
+ return svn_error_create(SVN_ERR_CANONICALIZATION_FAILED, NULL,
+ _("An empty URI can not be canonicalized"));
+ else
+ return SVN_NO_ERROR;
}
dst = canon = apr_pcalloc(pool, strlen(path) + 1);
@@ -319,7 +325,12 @@ canonicalize(path_type_t type, const char *path, apr_pool_t *pool)
src = path;
if (type == type_uri)
{
- assert(*src != '/');
+ if (*src == '/')
+ {
+ *canonical_path = src;
+ return svn_error_create(SVN_ERR_CANONICALIZATION_FAILED, NULL,
+ _("A URI can not start with '/'"));
+ }
while (*src && (*src != '/') && (*src != ':'))
src++;
@@ -546,7 +557,10 @@ canonicalize(path_type_t type, const char *path, apr_pool_t *pool)
if ((type == type_dirent) && canon[0] == '/' && canon[1] == '/')
{
if (canon_segments < 2)
- return canon + 1;
+ {
+ *canonical_path = canon + 1;
+ return SVN_NO_ERROR;
+ }
else
{
/* Now we're sure this is a valid UNC path, convert the server name
@@ -654,7 +668,8 @@ canonicalize(path_type_t type, const char *path, apr_pool_t *pool)
*dst = '\0';
}
- return canon;
+ *canonical_path = canon;
+ return SVN_NO_ERROR;
}
/* Return the string length of the longest common ancestor of PATH1 and PATH2.
@@ -883,6 +898,20 @@ svn_dirent_internal_style(const char *dirent, apr_pool_t *pool)
return svn_dirent_canonicalize(internal_style(dirent, pool), pool);
}
+svn_error_t *
+svn_dirent_internal_style_safe(const char **internal_style_dirent,
+ const char **non_canonical_result,
+ const char *dirent,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ return svn_error_trace(
+ svn_dirent_canonicalize_safe(internal_style_dirent,
+ non_canonical_result,
+ internal_style(dirent, scratch_pool),
+ result_pool, scratch_pool));
+}
+
const char *
svn_dirent_local_style(const char *dirent, apr_pool_t *pool)
{
@@ -906,14 +935,18 @@ svn_dirent_local_style(const char *dirent, apr_pool_t *pool)
return dirent;
}
-const char *
-svn_relpath__internal_style(const char *relpath,
- apr_pool_t *pool)
+svn_error_t *
+svn_relpath__make_internal(const char **internal_style_relpath,
+ const char *relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
{
- return svn_relpath_canonicalize(internal_style(relpath, pool), pool);
+ return svn_error_trace(
+ svn_relpath_canonicalize_safe(internal_style_relpath, NULL,
+ internal_style(relpath, scratch_pool),
+ result_pool, scratch_pool));
}
-
/* We decided against using apr_filepath_root here because of the negative
performance impact (creating a pool and converting strings ). */
svn_boolean_t
@@ -1643,19 +1676,84 @@ svn_dirent_get_absolute(const char **pabsolute,
const char *
svn_uri_canonicalize(const char *uri, apr_pool_t *pool)
{
- return canonicalize(type_uri, uri, pool);
+ const char *result;
+ svn_error_t *const err = canonicalize(&result, type_uri, uri, pool);
+ if (err)
+ {
+ svn_error_clear(err);
+ SVN_ERR_ASSERT_NO_RETURN(!"URI canonicalization failed");
+ }
+ return result;
+}
+
+svn_error_t *
+svn_uri_canonicalize_safe(const char **canonical_uri,
+ const char **non_canonical_result,
+ const char *uri,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ const char *result = NULL;
+ SVN_ERR(canonicalize(&result, type_uri, uri, result_pool));
+ if (!svn_uri_is_canonical(result, scratch_pool))
+ {
+ if (non_canonical_result)
+ *non_canonical_result = result;
+
+ return svn_error_createf(
+ SVN_ERR_CANONICALIZATION_FAILED, NULL,
+ _("Could not canonicalize URI '%s'"
+ " (the result '%s' is not canonical)"),
+ uri, result);
+ }
+ *canonical_uri = result;
+ return SVN_NO_ERROR;
}
const char *
svn_relpath_canonicalize(const char *relpath, apr_pool_t *pool)
{
- return canonicalize(type_relpath, relpath, pool);
+ const char *result;
+ svn_error_t *const err = canonicalize(&result, type_relpath, relpath, pool);
+ if (err)
+ {
+ svn_error_clear(err);
+ SVN_ERR_ASSERT_NO_RETURN(!"relpath canonicalization failed");
+ }
+ return result;
}
-const char *
-svn_dirent_canonicalize(const char *dirent, apr_pool_t *pool)
+svn_error_t *
+svn_relpath_canonicalize_safe(const char **canonical_relpath,
+ const char **non_canonical_result,
+ const char *relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ const char *result = NULL;
+ SVN_ERR(canonicalize(&result, type_relpath, relpath, result_pool));
+ if (!svn_relpath_is_canonical(result))
+ {
+ if (non_canonical_result)
+ *non_canonical_result = result;
+
+ return svn_error_createf(
+ SVN_ERR_CANONICALIZATION_FAILED, NULL,
+ _("Could not canonicalize relpath '%s'"
+ " (the result '%s' is not canonical)"),
+ relpath, result);
+ }
+
+ SVN_UNUSED(scratch_pool);
+ *canonical_relpath = result;
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+canonicalize_dirent(const char **result, const char *dirent, apr_pool_t *pool)
{
- const char *dst = canonicalize(type_dirent, dirent, pool);
+ const char *dst;
+ SVN_ERR(canonicalize(&dst, type_dirent, dirent, pool));
#ifdef SVN_USE_DOS_PATHS
/* Handle a specific case on Windows where path == "X:/". Here we have to
@@ -1671,11 +1769,50 @@ svn_dirent_canonicalize(const char *dirent, apr_pool_t *pool)
dst_slash[2] = '/';
dst_slash[3] = '\0';
- return dst_slash;
+ *result = dst_slash;
+ return SVN_NO_ERROR;
}
#endif /* SVN_USE_DOS_PATHS */
- return dst;
+ *result = dst;
+ return SVN_NO_ERROR;
+}
+
+const char *
+svn_dirent_canonicalize(const char *dirent, apr_pool_t *pool)
+{
+ const char *result;
+ svn_error_t *const err = canonicalize_dirent(&result, dirent, pool);
+ if (err)
+ {
+ svn_error_clear(err);
+ SVN_ERR_ASSERT_NO_RETURN(!"dirent canonicalization failed");
+ }
+ return result;
+}
+
+svn_error_t *
+svn_dirent_canonicalize_safe(const char **canonical_dirent,
+ const char **non_canonical_result,
+ const char *dirent,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ const char *result = NULL;
+ SVN_ERR(canonicalize_dirent(&result, dirent, result_pool));
+ if (!svn_dirent_is_canonical(result, scratch_pool))
+ {
+ if (non_canonical_result)
+ *non_canonical_result = result;
+
+ return svn_error_createf(
+ SVN_ERR_CANONICALIZATION_FAILED, NULL,
+ _("Could not canonicalize dirent '%s'"
+ " (the result '%s' is not canonical)"),
+ dirent, result);
+ }
+ *canonical_dirent = result;
+ return SVN_NO_ERROR;
}
svn_boolean_t
diff --git a/subversion/libsvn_subr/error.c b/subversion/libsvn_subr/error.c
index 1b2e7357e1fa..4c914f8f1047 100644
--- a/subversion/libsvn_subr/error.c
+++ b/subversion/libsvn_subr/error.c
@@ -146,6 +146,7 @@ svn_error__locate(const char *file, long line)
/* Cleanup function for errors. svn_error_clear () removes this so
errors that are properly handled *don't* hit this code. */
+#ifdef SVN_DEBUG
static apr_status_t err_abort(void *data)
{
svn_error_t *err = data; /* For easy viewing in a debugger */
@@ -155,6 +156,7 @@ static apr_status_t err_abort(void *data)
abort();
return APR_SUCCESS;
}
+#endif
static svn_error_t *
diff --git a/subversion/libsvn_subr/gpg_agent.c b/subversion/libsvn_subr/gpg_agent.c
index e851cb059bc2..08d1cfcda8cc 100644
--- a/subversion/libsvn_subr/gpg_agent.c
+++ b/subversion/libsvn_subr/gpg_agent.c
@@ -108,7 +108,7 @@ escape_blanks(char *str)
#define is_hex(c) (((c) >= '0' && (c) <= '9') || ((c) >= 'A' && (c) <= 'F'))
#define hex_to_int(c) ((c) < '9' ? (c) - '0' : (c) - 'A' + 10)
-
+
/* Modify STR in-place. '%', CR and LF are always percent escaped,
other characters may be percent escaped, always using uppercase
hex, see https://www.gnupg.org/documentation/manuals/assuan.pdf */
diff --git a/subversion/libsvn_subr/internal_statements.h b/subversion/libsvn_subr/internal_statements.h
index 5f8095fb2f2a..f7ca6caf798e 100644
--- a/subversion/libsvn_subr/internal_statements.h
+++ b/subversion/libsvn_subr/internal_statements.h
@@ -1,4 +1,4 @@
-/* This file is automatically generated from internal_statements.sql and subversion/libsvn_subr/token-map.h.
+/* This file is automatically generated from internal_statements.sql and token-map.h.
* Do not edit this file -- edit the source and rerun gen-make.py */
#define STMT_INTERNAL_SAVEPOINT_SVN 0
diff --git a/subversion/libsvn_subr/io.c b/subversion/libsvn_subr/io.c
index a1bc29c09b7f..b351c00751ad 100644
--- a/subversion/libsvn_subr/io.c
+++ b/subversion/libsvn_subr/io.c
@@ -155,8 +155,14 @@ typedef struct _FILE_DISPOSITION_INFO {
BOOL DeleteFile;
} FILE_DISPOSITION_INFO, *PFILE_DISPOSITION_INFO;
+typedef struct _FILE_ATTRIBUTE_TAG_INFO {
+ DWORD FileAttributes;
+ DWORD ReparseTag;
+} FILE_ATTRIBUTE_TAG_INFO, *PFILE_ATTRIBUTE_TAG_INFO;
+
#define FileRenameInfo 3
#define FileDispositionInfo 4
+#define FileAttributeTagInfo 9
#endif /* WIN32 < Vista */
/* One-time initialization of the late bound Windows API functions. */
@@ -169,19 +175,30 @@ typedef DWORD (WINAPI *GETFINALPATHNAMEBYHANDLE)(
DWORD cchFilePath,
DWORD dwFlags);
+typedef BOOL (WINAPI *GetFileInformationByHandleEx_t)(HANDLE hFile,
+ int FileInformationClass,
+ LPVOID lpFileInformation,
+ DWORD dwBufferSize);
+
typedef BOOL (WINAPI *SetFileInformationByHandle_t)(HANDLE hFile,
int FileInformationClass,
LPVOID lpFileInformation,
DWORD dwBufferSize);
static GETFINALPATHNAMEBYHANDLE get_final_path_name_by_handle_proc = NULL;
+static GetFileInformationByHandleEx_t get_file_information_by_handle_ex_proc = NULL;
static SetFileInformationByHandle_t set_file_information_by_handle_proc = NULL;
-/* Forward declaration. */
+/* Forward declarations. */
static svn_error_t * io_win_read_link(svn_string_t **dest,
const char *path,
apr_pool_t *pool);
+static svn_error_t * io_win_check_path(svn_node_kind_t *kind_p,
+ svn_boolean_t *is_symlink_p,
+ const char *path,
+ apr_pool_t *pool);
+
#endif
/* Forward declaration */
@@ -342,13 +359,7 @@ io_check_path(const char *path,
/* Not using svn_io_stat() here because we want to check the
apr_err return explicitly. */
SVN_ERR(cstring_from_utf8(&path_apr, path, pool));
-#ifdef WIN32
- /* on Windows, svn does not handle reparse points or hard links.
- So ignore the 'resolve_symlinks' flag. */
- flags = APR_FINFO_MIN;
-#else
flags = resolve_symlinks ? APR_FINFO_MIN : (APR_FINFO_MIN | APR_FINFO_LINK);
-#endif
apr_err = apr_stat(&finfo, path_apr, flags, pool);
if (APR_STATUS_IS_ENOENT(apr_err))
@@ -410,8 +421,12 @@ svn_io_check_resolved_path(const char *path,
svn_node_kind_t *kind,
apr_pool_t *pool)
{
+#if WIN32
+ return io_win_check_path(kind, NULL, path, pool);
+#else
svn_boolean_t ignored;
return io_check_path(path, TRUE, &ignored, kind, pool);
+#endif
}
svn_error_t *
@@ -419,8 +434,19 @@ svn_io_check_path(const char *path,
svn_node_kind_t *kind,
apr_pool_t *pool)
{
+#if WIN32
+ svn_boolean_t is_symlink;
+
+ SVN_ERR(io_win_check_path(kind, &is_symlink, path, pool));
+
+ if (is_symlink)
+ *kind = svn_node_file;
+
+ return SVN_NO_ERROR;
+#else
svn_boolean_t ignored;
return io_check_path(path, FALSE, &ignored, kind, pool);
+#endif
}
svn_error_t *
@@ -429,7 +455,23 @@ svn_io_check_special_path(const char *path,
svn_boolean_t *is_special,
apr_pool_t *pool)
{
+#ifdef WIN32
+ svn_boolean_t is_symlink;
+
+ SVN_ERR(io_win_check_path(kind, &is_symlink, path, pool));
+
+ if (is_symlink)
+ {
+ *is_special = TRUE;
+ *kind = svn_node_file;
+ }
+ else
+ *is_special = FALSE;
+
+ return SVN_NO_ERROR;
+#else
return io_check_path(path, FALSE, is_special, kind, pool);
+#endif
}
struct temp_file_cleanup_s
@@ -1532,7 +1574,7 @@ reown_file(const char *path,
}
/* Determine what the PERMS for a new file should be by looking at the
- permissions of a temporary file that we create in DIRECTORY.
+ permissions of a temporary file that we create in DIRECTORY.
DIRECTORY can be NULL in which case the system temporary dir is used.
Unfortunately, umask() as defined in POSIX provides no thread-safe way
to get at the current value of the umask, so what we're doing here is
@@ -1622,13 +1664,14 @@ merge_default_file_perms(apr_file_t *fd,
that attempts to honor the users umask when dealing with
permission changes. It is a no-op when invoked on a symlink. */
static svn_error_t *
-io_set_file_perms(const char *path,
- svn_boolean_t change_readwrite,
- svn_boolean_t enable_write,
- svn_boolean_t change_executable,
- svn_boolean_t executable,
- svn_boolean_t ignore_enoent,
- apr_pool_t *pool)
+io_set_perms(const char *path,
+ svn_boolean_t is_file,
+ svn_boolean_t change_readwrite,
+ svn_boolean_t enable_write,
+ svn_boolean_t change_executable,
+ svn_boolean_t executable,
+ svn_boolean_t ignore_enoent,
+ apr_pool_t *pool)
{
apr_status_t status;
const char *path_apr;
@@ -1648,9 +1691,16 @@ io_set_file_perms(const char *path,
|| SVN__APR_STATUS_IS_ENOTDIR(status)))
return SVN_NO_ERROR;
else if (status != APR_ENOTIMPL)
- return svn_error_wrap_apr(status,
- _("Can't change perms of file '%s'"),
- svn_dirent_local_style(path, pool));
+ {
+ if (is_file)
+ return svn_error_wrap_apr(status,
+ _("Can't change perms of file '%s'"),
+ svn_dirent_local_style(path, pool));
+ else
+ return svn_error_wrap_apr(status,
+ _("Can't change perms of directory '%s'"),
+ svn_dirent_local_style(path, pool));
+ }
return SVN_NO_ERROR;
}
@@ -1750,10 +1800,50 @@ io_set_file_perms(const char *path,
status = apr_file_attrs_set(path_apr, attrs, attrs_values, pool);
}
- return svn_error_wrap_apr(status,
- _("Can't change perms of file '%s'"),
- svn_dirent_local_style(path, pool));
+ if (is_file)
+ {
+ return svn_error_wrap_apr(status,
+ _("Can't change perms of file '%s'"),
+ svn_dirent_local_style(path, pool));
+ }
+ else
+ {
+ return svn_error_wrap_apr(status,
+ _("Can't change perms of directory '%s'"),
+ svn_dirent_local_style(path, pool));
+ }
+}
+
+static svn_error_t *
+io_set_file_perms(const char *path,
+ svn_boolean_t change_readwrite,
+ svn_boolean_t enable_write,
+ svn_boolean_t change_executable,
+ svn_boolean_t executable,
+ svn_boolean_t ignore_enoent,
+ apr_pool_t *pool)
+{
+ return svn_error_trace(io_set_perms(path, TRUE,
+ change_readwrite, enable_write,
+ change_executable, executable,
+ ignore_enoent, pool));
+}
+
+static svn_error_t *
+io_set_dir_perms(const char *path,
+ svn_boolean_t change_readwrite,
+ svn_boolean_t enable_write,
+ svn_boolean_t change_executable,
+ svn_boolean_t executable,
+ svn_boolean_t ignore_enoent,
+ apr_pool_t *pool)
+{
+ return svn_error_trace(io_set_perms(path, FALSE,
+ change_readwrite, enable_write,
+ change_executable, executable,
+ ignore_enoent, pool));
}
+
#endif /* !WIN32 && !__OS2__ */
#ifdef WIN32
@@ -1902,6 +1992,9 @@ static svn_error_t *win_init_dynamic_imports(void *baton, apr_pool_t *pool)
get_final_path_name_by_handle_proc = (GETFINALPATHNAMEBYHANDLE)
GetProcAddress(kernel32, "GetFinalPathNameByHandleW");
+ get_file_information_by_handle_ex_proc = (GetFileInformationByHandleEx_t)
+ GetProcAddress(kernel32, "GetFileInformationByHandleEx");
+
set_file_information_by_handle_proc = (SetFileInformationByHandle_t)
GetProcAddress(kernel32, "SetFileInformationByHandle");
}
@@ -1978,6 +2071,33 @@ static svn_error_t * io_win_read_link(svn_string_t **dest,
}
}
+/* Wrapper around Windows API function GetFileInformationByHandleEx() that
+ * returns APR status instead of boolean flag. */
+static apr_status_t
+win32_get_file_information_by_handle(HANDLE hFile,
+ int FileInformationClass,
+ LPVOID lpFileInformation,
+ DWORD dwBufferSize)
+{
+ svn_error_clear(svn_atomic__init_once(&win_dynamic_imports_state,
+ win_init_dynamic_imports,
+ NULL, NULL));
+
+ if (!get_file_information_by_handle_ex_proc)
+ {
+ return SVN_ERR_UNSUPPORTED_FEATURE;
+ }
+
+ if (!get_file_information_by_handle_ex_proc(hFile, FileInformationClass,
+ lpFileInformation,
+ dwBufferSize))
+ {
+ return apr_get_os_error();
+ }
+
+ return APR_SUCCESS;
+}
+
/* Wrapper around Windows API function SetFileInformationByHandle() that
* returns APR status instead of boolean flag. */
static apr_status_t
@@ -2005,6 +2125,105 @@ win32_set_file_information_by_handle(HANDLE hFile,
return APR_SUCCESS;
}
+/* Fast Win32-specific helper for svn_io_check_path() and related functions
+ * that only requires a single GetFileAttributes() call in most cases.
+ */
+static svn_error_t * io_win_check_path(svn_node_kind_t *kind_p,
+ svn_boolean_t *is_symlink_p,
+ const char *path,
+ apr_pool_t *pool)
+{
+ DWORD attrs;
+ const WCHAR *wpath;
+ apr_status_t status;
+
+ if (path[0] == '\0')
+ path = ".";
+
+ SVN_ERR(svn_io__utf8_to_unicode_longpath(&wpath, path, pool));
+
+ attrs = GetFileAttributesW(wpath);
+ if (attrs == INVALID_FILE_ATTRIBUTES)
+ {
+ status = apr_get_os_error();
+ if (APR_STATUS_IS_ENOENT(status) || SVN__APR_STATUS_IS_ENOTDIR(status))
+ {
+ *kind_p = svn_node_none;
+ if (is_symlink_p)
+ *is_symlink_p = FALSE;
+ return SVN_NO_ERROR;
+ }
+ else
+ {
+ return svn_error_wrap_apr(status, _("Can't stat '%s'"),
+ svn_dirent_local_style(path, pool));
+ }
+ }
+
+ if (attrs & FILE_ATTRIBUTE_DIRECTORY)
+ *kind_p = svn_node_dir;
+ else
+ *kind_p = svn_node_file;
+
+ /* If this is a reparse point, and if we've been asked to check whether
+ we are dealing with a symlink, then open the file and check that.
+
+ Otherwise, it's either definitely not a symlink or the caller
+ doesn't care about this distinction.
+ */
+ if (is_symlink_p && (attrs & FILE_ATTRIBUTE_REPARSE_POINT))
+ {
+ const WCHAR *wfname;
+ HANDLE hFile;
+ FILE_ATTRIBUTE_TAG_INFO taginfo = { 0 };
+
+ SVN_ERR(svn_io__utf8_to_unicode_longpath(&wfname, path, pool));
+
+ hFile = CreateFileW(wfname, FILE_READ_ATTRIBUTES,
+ FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
+ NULL, OPEN_EXISTING,
+ FILE_FLAG_OPEN_REPARSE_POINT | FILE_FLAG_BACKUP_SEMANTICS,
+ NULL);
+ if (hFile == INVALID_HANDLE_VALUE)
+ {
+ status = apr_get_os_error();
+ if (APR_STATUS_IS_ENOENT(status) || SVN__APR_STATUS_IS_ENOTDIR(status))
+ {
+ *kind_p = svn_node_none;
+ *is_symlink_p = FALSE;
+ return SVN_NO_ERROR;
+ }
+ else
+ {
+ return svn_error_wrap_apr(status, _("Can't stat '%s'"),
+ svn_dirent_local_style(path, pool));
+ }
+ }
+
+ status = win32_get_file_information_by_handle(hFile, FileAttributeTagInfo,
+ &taginfo, sizeof(taginfo));
+ CloseHandle(hFile);
+
+ if (status)
+ return svn_error_wrap_apr(status, _("Can't stat '%s'"),
+ svn_dirent_local_style(path, pool));
+
+ /* The surrogate bit in the reparse tag specifies if "the file or directory
+ represents another named entity in the system" which is used to determine
+ if this reparse point behaves like a symlink.
+
+ https://docs.microsoft.com/en-us/windows/desktop/fileio/reparse-point-tags
+ */
+ *is_symlink_p = IsReparseTagNameSurrogate(taginfo.ReparseTag);
+ }
+ else if (is_symlink_p)
+ {
+ *is_symlink_p = FALSE;
+ }
+
+ return SVN_NO_ERROR;
+}
+
svn_error_t *
svn_io__win_delete_file_on_close(apr_file_t *file,
const char *path,
@@ -2115,6 +2334,55 @@ svn_io_set_file_read_write_carefully(const char *path,
return svn_io_set_file_read_only(path, ignore_enoent, pool);
}
+#if defined(WIN32) || defined(__OS2__)
+/* Helper for svn_io_set_file_read_* */
+static svn_error_t *
+io_set_readonly_flag(const char *path_apr, /* file-system path */
+ const char *path, /* UTF-8 path */
+ svn_boolean_t set_flag,
+ svn_boolean_t is_file,
+ svn_boolean_t ignore_enoent,
+ apr_pool_t *pool)
+{
+ apr_status_t status;
+
+ status = apr_file_attrs_set(path_apr,
+ (set_flag ? APR_FILE_ATTR_READONLY : 0),
+ APR_FILE_ATTR_READONLY,
+ pool);
+
+ if (status && status != APR_ENOTIMPL)
+ if (!(ignore_enoent && (APR_STATUS_IS_ENOENT(status)
+ || SVN__APR_STATUS_IS_ENOTDIR(status))))
+ {
+ if (is_file)
+ {
+ if (set_flag)
+ return svn_error_wrap_apr(status,
+ _("Can't set file '%s' read-only"),
+ svn_dirent_local_style(path, pool));
+ else
+ return svn_error_wrap_apr(status,
+ _("Can't set file '%s' read-write"),
+ svn_dirent_local_style(path, pool));
+ }
+ else
+ {
+ if (set_flag)
+ return svn_error_wrap_apr(status,
+ _("Can't set directory '%s' read-only"),
+ svn_dirent_local_style(path, pool));
+ else
+ return svn_error_wrap_apr(status,
+ _("Can't set directory '%s' read-write"),
+ svn_dirent_local_style(path, pool));
+ }
+ }
+ return SVN_NO_ERROR;
+}
+#endif
+
+
svn_error_t *
svn_io_set_file_read_only(const char *path,
svn_boolean_t ignore_enoent,
@@ -2126,24 +2394,11 @@ svn_io_set_file_read_only(const char *path,
return io_set_file_perms(path, TRUE, FALSE, FALSE, FALSE,
ignore_enoent, pool);
#else
- apr_status_t status;
const char *path_apr;
SVN_ERR(cstring_from_utf8(&path_apr, path, pool));
-
- status = apr_file_attrs_set(path_apr,
- APR_FILE_ATTR_READONLY,
- APR_FILE_ATTR_READONLY,
- pool);
-
- if (status && status != APR_ENOTIMPL)
- if (!(ignore_enoent && (APR_STATUS_IS_ENOENT(status)
- || SVN__APR_STATUS_IS_ENOTDIR(status))))
- return svn_error_wrap_apr(status,
- _("Can't set file '%s' read-only"),
- svn_dirent_local_style(path, pool));
-
- return SVN_NO_ERROR;
+ return io_set_readonly_flag(path_apr, path,
+ TRUE, TRUE, ignore_enoent, pool);
#endif
}
@@ -2159,23 +2414,11 @@ svn_io_set_file_read_write(const char *path,
return io_set_file_perms(path, TRUE, TRUE, FALSE, FALSE,
ignore_enoent, pool);
#else
- apr_status_t status;
const char *path_apr;
SVN_ERR(cstring_from_utf8(&path_apr, path, pool));
-
- status = apr_file_attrs_set(path_apr,
- 0,
- APR_FILE_ATTR_READONLY,
- pool);
-
- if (status && status != APR_ENOTIMPL)
- if (!ignore_enoent || !APR_STATUS_IS_ENOENT(status))
- return svn_error_wrap_apr(status,
- _("Can't set file '%s' read-write"),
- svn_dirent_local_style(path, pool));
-
- return SVN_NO_ERROR;
+ return io_set_readonly_flag(path_apr, path,
+ FALSE, TRUE, ignore_enoent, pool);
#endif
}
@@ -2546,27 +2789,37 @@ stringbuf_from_aprfile(svn_stringbuf_t **result,
{
apr_finfo_t finfo = { 0 };
- /* In some cases we get size 0 and no error for non files,
- so we also check for the name. (= cached in apr_file_t) */
+ /* In some cases we get size 0 and no error for non files, so we
+ also check for the name. (= cached in apr_file_t) */
if (! apr_file_info_get(&finfo, APR_FINFO_SIZE, file) && finfo.fname)
{
- /* we've got the file length. Now, read it in one go. */
+ /* In general, there is no guarantee that the given file size is
+ correct, for instance, because the underlying handle could be
+ pointing to a pipe. We don't know that in advance, so attempt
+ to read *one more* byte than necessary. If we get an EOF, then
+ we're done and we have succesfully avoided reading the file chunk-
+ by-chunk. If we don't, we fall through and do so to read the
+ remaining part of the file. */
svn_boolean_t eof;
- res_initial_len = (apr_size_t)finfo.size;
+ res_initial_len = (apr_size_t)finfo.size + 1;
res = svn_stringbuf_create_ensure(res_initial_len, pool);
SVN_ERR(svn_io_file_read_full2(file, res->data,
res_initial_len, &res->len,
&eof, pool));
res->data[res->len] = 0;
- *result = res;
- return SVN_NO_ERROR;
+ if (eof)
+ {
+ *result = res;
+ return SVN_NO_ERROR;
+ }
}
}
/* XXX: We should check the incoming data for being of type binary. */
buf = apr_palloc(pool, SVN__STREAM_CHUNK_SIZE);
- res = svn_stringbuf_create_ensure(res_initial_len, pool);
+ if (!res)
+ res = svn_stringbuf_create_ensure(res_initial_len, pool);
/* apr_file_read will not return data and eof in the same call. So this loop
* is safe from missing read data. */
@@ -2712,8 +2965,8 @@ svn_io_remove_dir(const char *path, apr_pool_t *pool)
directory scan. A previous workaround involving rewinddir is
problematic on Win32 and some NFS clients, notably NetBSD.
- See http://subversion.tigris.org/issues/show_bug.cgi?id=1896 and
- http://subversion.tigris.org/issues/show_bug.cgi?id=3501.
+ See https://issues.apache.org/jira/browse/SVN-1896 and
+ https://issues.apache.org/jira/browse/SVN-3501.
*/
/* Neither windows nor unix allows us to delete a non-empty
@@ -2751,6 +3004,12 @@ svn_io_remove_dir2(const char *path, svn_boolean_t ignore_enoent,
return svn_error_trace(err);
}
+ /* On Unix, nothing can be removed from a non-writable directory. */
+#if !defined(WIN32) && !defined(__OS2__)
+ SVN_ERR(io_set_dir_perms(path, TRUE, TRUE, FALSE, FALSE,
+ ignore_enoent, pool));
+#endif
+
for (hi = apr_hash_first(subpool, dirents); hi; hi = apr_hash_next(hi))
{
const char *name = apr_hash_this_key(hi);
@@ -4232,7 +4491,45 @@ win32_file_rename(const WCHAR *from_path_w,
}
if (!MoveFileExW(from_path_w, to_path_w, flags))
- return apr_get_os_error();
+ {
+ apr_status_t err = apr_get_os_error();
+ /* If the target file is read only NTFS reports EACCESS and
+ FAT/FAT32 reports EEXIST */
+ if (APR_STATUS_IS_EACCES(err) || APR_STATUS_IS_EEXIST(err))
+ {
+ DWORD attrs = GetFileAttributesW(to_path_w);
+ if (attrs == INVALID_FILE_ATTRIBUTES)
+ {
+ apr_status_t stat_err = apr_get_os_error();
+ if (!(APR_STATUS_IS_ENOENT(stat_err) || SVN__APR_STATUS_IS_ENOTDIR(stat_err)))
+ /* We failed to stat the file, propagate the original error */
+ return err;
+ }
+ else if (attrs & FILE_ATTRIBUTE_READONLY)
+ {
+ /* Try to set the destination file writable because Windows will
+ not allow us to rename when to_path is read-only, but will
+ allow renaming when from_path is read only. */
+ attrs &= ~FILE_ATTRIBUTE_READONLY;
+ if (!SetFileAttributesW(to_path_w, attrs))
+ {
+ err = apr_get_os_error();
+ if (!(APR_STATUS_IS_ENOENT(err) || SVN__APR_STATUS_IS_ENOTDIR(err)))
+ /* We failed to set file attributes, propagate this new error */
+ return err;
+ }
+ }
+
+ /* NOTE: If the file is not read-only, we don't know if the file did
+ not have the read-only attribute in the first place or if this
+ attribute disappeared due to a race, so try to rename it anyway.
+ */
+ if (!MoveFileExW(from_path_w, to_path_w, flags))
+ return apr_get_os_error();
+ }
+ else
+ return err;
+ }
return APR_SUCCESS;
}
@@ -4256,18 +4553,6 @@ svn_io_file_rename2(const char *from_path, const char *to_path,
SVN_ERR(svn_io__utf8_to_unicode_longpath(&from_path_w, from_path_apr, pool));
SVN_ERR(svn_io__utf8_to_unicode_longpath(&to_path_w, to_path_apr, pool));
status = win32_file_rename(from_path_w, to_path_w, flush_to_disk);
-
- /* If the target file is read only NTFS reports EACCESS and
- FAT/FAT32 reports EEXIST */
- if (APR_STATUS_IS_EACCES(status) || APR_STATUS_IS_EEXIST(status))
- {
- /* Set the destination file writable because Windows will not
- allow us to rename when to_path is read-only, but will
- allow renaming when from_path is read only. */
- SVN_ERR(svn_io_set_file_read_write(to_path, TRUE, pool));
-
- status = win32_file_rename(from_path_w, to_path_w, flush_to_disk);
- }
WIN32_RETRY_LOOP(status, win32_file_rename(from_path_w, to_path_w,
flush_to_disk));
#elif defined(__OS2__)
@@ -4489,8 +4774,17 @@ svn_io_dir_remove_nonrecursive(const char *dirname, apr_pool_t *pool)
{
svn_boolean_t retry = TRUE;
+ if (APR_STATUS_IS_EACCES(status) || APR_STATUS_IS_EEXIST(status))
+ {
+ /* Make the destination directory writable because Windows
+ forbids deleting read-only items. */
+ SVN_ERR(io_set_readonly_flag(dirname_apr, dirname,
+ FALSE, FALSE, TRUE, pool));
+ status = apr_dir_remove(dirname_apr, pool);
+ }
+
if (status == APR_FROM_OS_ERROR(ERROR_DIR_NOT_EMPTY))
- {
+ {
apr_status_t empty_status = dir_is_empty(dirname_apr, pool);
if (APR_STATUS_IS_ENOTEMPTY(empty_status))
@@ -4636,7 +4930,7 @@ svn_io_dir_walk2(const char *dirname,
}
else if (finfo.filetype == APR_REG || finfo.filetype == APR_LNK)
{
- /* some other directory. pass it to the callback. */
+ /* a regular file or a symlink. pass it to the callback. */
SVN_ERR(entry_name_to_utf8(&name_utf8, finfo.name, dirname,
subpool));
full_path = svn_dirent_join(dirname, name_utf8, subpool);
diff --git a/subversion/libsvn_subr/iter.c b/subversion/libsvn_subr/iter.c
index ebccb66756fd..6d04846e8378 100644
--- a/subversion/libsvn_subr/iter.c
+++ b/subversion/libsvn_subr/iter.c
@@ -37,7 +37,6 @@ static svn_error_t internal_break_error =
__LINE__ /* line number */
};
-#if APR_VERSION_AT_LEAST(1, 4, 0)
struct hash_do_baton
{
void *baton;
@@ -59,7 +58,6 @@ int hash_do_callback(void *baton,
return hdb->err == SVN_NO_ERROR;
}
-#endif
svn_error_t *
svn_iter_apr_hash(svn_boolean_t *completed,
@@ -68,7 +66,6 @@ svn_iter_apr_hash(svn_boolean_t *completed,
void *baton,
apr_pool_t *pool)
{
-#if APR_VERSION_AT_LEAST(1, 4, 0)
struct hash_do_baton hdb;
svn_boolean_t error_received;
@@ -97,43 +94,6 @@ svn_iter_apr_hash(svn_boolean_t *completed,
}
return hdb.err;
-#else
- svn_error_t *err = SVN_NO_ERROR;
- apr_pool_t *iterpool = svn_pool_create(pool);
- apr_hash_index_t *hi;
-
- for (hi = apr_hash_first(pool, hash);
- ! err && hi; hi = apr_hash_next(hi))
- {
- const void *key;
- void *val;
- apr_ssize_t len;
-
- svn_pool_clear(iterpool);
-
- apr_hash_this(hi, &key, &len, &val);
- err = (*func)(baton, key, len, val, iterpool);
- }
-
- if (completed)
- *completed = ! err;
-
- if (err && err->apr_err == SVN_ERR_ITER_BREAK)
- {
- if (err != &internal_break_error)
- /* Errors - except those created by svn_iter_break() -
- need to be cleared when not further propagated. */
- svn_error_clear(err);
-
- err = SVN_NO_ERROR;
- }
-
- /* Clear iterpool, because callers may clear the error but have no way
- to clear the iterpool with potentially lots of allocated memory */
- svn_pool_destroy(iterpool);
-
- return err;
-#endif
}
svn_error_t *
@@ -183,29 +143,3 @@ svn_iter__break(void)
{
return &internal_break_error;
}
-
-#if !APR_VERSION_AT_LEAST(1, 5, 0)
-const void *apr_hash_this_key(apr_hash_index_t *hi)
-{
- const void *key;
-
- apr_hash_this((apr_hash_index_t *)hi, &key, NULL, NULL);
- return key;
-}
-
-apr_ssize_t apr_hash_this_key_len(apr_hash_index_t *hi)
-{
- apr_ssize_t klen;
-
- apr_hash_this((apr_hash_index_t *)hi, NULL, &klen, NULL);
- return klen;
-}
-
-void *apr_hash_this_val(apr_hash_index_t *hi)
-{
- void *val;
-
- apr_hash_this((apr_hash_index_t *)hi, NULL, NULL, &val);
- return val;
-}
-#endif
diff --git a/subversion/libsvn_subr/libsvn_subr.pc.in b/subversion/libsvn_subr/libsvn_subr.pc.in
index 81ae97df433e..83856db0c617 100644
--- a/subversion/libsvn_subr/libsvn_subr.pc.in
+++ b/subversion/libsvn_subr/libsvn_subr.pc.in
@@ -6,7 +6,7 @@ includedir=@includedir@
Name: libsvn_subr
Description: Subversion General Utility Library
Version: @PACKAGE_VERSION@
-Requires: apr-util-@SVN_APR_MAJOR_VERSION@ apr-@SVN_APR_MAJOR_VERSION@
-Requires.private: sqlite3
-Libs: -L${libdir} -lsvn_subr @SVN_XML_LIBS@ @SVN_ZLIB_LIBS@ @SVN_APR_MEMCACHE_LIBS@ @SVN_MAGIC_LIBS@ @SVN_INTL_LIBS@ @SVN_LZ4_LIBS@ @SVN_UTF8PROC_LIBS@
-Cflags: -I${includedir}
+Requires: apr-util-@SVN_APR_MAJOR_VERSION@, apr-@SVN_APR_MAJOR_VERSION@
+Requires.private: sqlite3
+Libs: -L${libdir} -lsvn_subr-1 @SVN_XML_LIBS@ @SVN_ZLIB_LIBS@ @SVN_APR_MEMCACHE_LIBS@ @SVN_MAGIC_LIBS@ @SVN_INTL_LIBS@ @SVN_LZ4_LIBS@ @SVN_UTF8PROC_LIBS@ @SVN_MACOS_PLIST_LIBS@ @SVN_MACOS_KEYCHAIN_LIBS@
+Cflags: -I${includedir}/subversion-1
diff --git a/subversion/libsvn_subr/lz4/lz4.c b/subversion/libsvn_subr/lz4/lz4.c
index d329064b9edc..405ba599c123 100644
--- a/subversion/libsvn_subr/lz4/lz4.c
+++ b/subversion/libsvn_subr/lz4/lz4.c
@@ -1,5 +1,5 @@
#include "svn_private_config.h"
-#if SVN_INTERNAL_LZ4
+#ifdef SVN_INTERNAL_LZ4
/*
LZ4 - Fast LZ compression algorithm
Copyright (C) 2011-2016, Yann Collet.
diff --git a/subversion/libsvn_subr/lz4/lz4internal.h b/subversion/libsvn_subr/lz4/lz4internal.h
index 02ba09d3710f..cdc25e431e80 100644
--- a/subversion/libsvn_subr/lz4/lz4internal.h
+++ b/subversion/libsvn_subr/lz4/lz4internal.h
@@ -1,5 +1,5 @@
#include "svn_private_config.h"
-#if SVN_INTERNAL_LZ4
+#ifdef SVN_INTERNAL_LZ4
/*
* LZ4 - Fast LZ compression algorithm
* Header File
diff --git a/subversion/libsvn_subr/mergeinfo.c b/subversion/libsvn_subr/mergeinfo.c
index 21fa2121635c..721dc4bf80c1 100644
--- a/subversion/libsvn_subr/mergeinfo.c
+++ b/subversion/libsvn_subr/mergeinfo.c
@@ -44,8 +44,9 @@
/* Return TRUE iff the forward revision range FIRST wholly contains the
* forward revision range SECOND and (if CONSIDER_INHERITANCE is TRUE) has
* the same inheritability. */
-static svn_boolean_t
-range_contains(const svn_merge_range_t *first, const svn_merge_range_t *second,
+static svn_error_t *
+range_contains(svn_boolean_t *result,
+ const svn_merge_range_t *first, const svn_merge_range_t *second,
svn_boolean_t consider_inheritance);
@@ -457,21 +458,48 @@ combine_with_lastrange(const svn_merge_range_t *new_range,
}
/* Convert a single svn_merge_range_t *RANGE back into a string. */
-static char *
-range_to_string(const svn_merge_range_t *range,
+static svn_error_t *
+range_to_string(char **s,
+ const svn_merge_range_t *range,
apr_pool_t *pool)
{
const char *mark
= range->inheritable ? "" : SVN_MERGEINFO_NONINHERITABLE_STR;
if (range->start == range->end - 1)
- return apr_psprintf(pool, "%ld%s", range->end, mark);
+ *s = apr_psprintf(pool, "%ld%s", range->end, mark);
else if (range->start - 1 == range->end)
- return apr_psprintf(pool, "-%ld%s", range->start, mark);
+ *s = apr_psprintf(pool, "-%ld%s", range->start, mark);
else if (range->start < range->end)
- return apr_psprintf(pool, "%ld-%ld%s", range->start + 1, range->end, mark);
+ *s = apr_psprintf(pool, "%ld-%ld%s", range->start + 1, range->end, mark);
+ else if (range->start > range->end)
+ *s = apr_psprintf(pool, "%ld-%ld%s", range->start, range->end + 1, mark);
else
- return apr_psprintf(pool, "%ld-%ld%s", range->start, range->end + 1, mark);
+ {
+ return svn_error_createf(SVN_ERR_ASSERTION_FAIL, NULL,
+ _("bad range {start=%ld,end=%ld,inheritable=%d}"),
+ range->start, range->end, range->inheritable);
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Convert a single svn_merge_range_t *RANGE back into a string. */
+static char *
+range_to_string_debug(const svn_merge_range_t *range,
+ apr_pool_t *pool)
+{
+ svn_error_t *err;
+ char *s;
+
+ err = range_to_string(&s, range, pool);
+ if (err)
+ {
+ svn_error_clear(err);
+ s = apr_psprintf(pool, _("bad range {start=%ld,end=%ld,inheritable=%d}"),
+ range->start, range->end, range->inheritable);
+ }
+ return s;
}
/* Helper for svn_mergeinfo_parse()
@@ -667,10 +695,10 @@ svn_rangelist__canonicalize(svn_rangelist_t *rangelist,
"revision ranges '%s' and '%s' "
"with different inheritance "
"types"),
- range_to_string(lastrange,
- scratch_pool),
- range_to_string(range,
- scratch_pool));
+ range_to_string_debug(lastrange,
+ scratch_pool),
+ range_to_string_debug(range,
+ scratch_pool));
}
/* Combine overlapping or adjacent ranges with the
@@ -678,7 +706,7 @@ svn_rangelist__canonicalize(svn_rangelist_t *rangelist,
if (lastrange->inheritable == range->inheritable)
{
lastrange->end = MAX(range->end, lastrange->end);
- svn_sort__array_delete(rangelist, i, 1);
+ SVN_ERR(svn_sort__array_delete2(rangelist, i, 1));
i--;
}
}
@@ -788,490 +816,349 @@ svn_mergeinfo_parse(svn_mergeinfo_t *mergeinfo,
return err;
}
-/* Cleanup after svn_rangelist_merge2 when it modifies the ending range of
- a single rangelist element in-place.
-
- If *RANGE_INDEX is not a valid element in RANGELIST do nothing. Otherwise
- ensure that RANGELIST[*RANGE_INDEX]->END does not adjoin or overlap any
- subsequent ranges in RANGELIST.
-
- If overlap is found, then remove, modify, and/or add elements to RANGELIST
- as per the invariants for rangelists documented in svn_mergeinfo.h. If
- RANGELIST[*RANGE_INDEX]->END adjoins a subsequent element then combine the
- elements if their inheritability permits -- The inheritance of intersecting
- and adjoining ranges is handled as per svn_mergeinfo_merge2. Upon return
- set *RANGE_INDEX to the index of the youngest element modified, added, or
- adjoined to RANGELIST[*RANGE_INDEX].
+static const char *
+rangelist_to_string_debug(const svn_rangelist_t *rl,
+ apr_pool_t *pool)
+{
+ svn_string_t *rls;
+ svn_error_t *err;
- Note: Adjoining rangelist elements are those where the end rev of the older
- element is equal to the start rev of the younger element.
+ err = svn_rangelist_to_string(&rls, rl, pool);
+ if (err)
+ {
+ char *s = apr_psprintf(pool, _("<bad rangelist [%d ranges]: %s>"),
+ rl->nelts, err->message);
+ svn_error_clear(err);
+ return s;
+ }
+ return rls->data;
+}
- Any new elements inserted into RANGELIST are allocated in RESULT_POOL.*/
-static void
-adjust_remaining_ranges(svn_rangelist_t *rangelist,
- int *range_index,
- apr_pool_t *result_pool)
+static svn_boolean_t
+rangelist_is_sorted(const svn_rangelist_t *rangelist)
{
int i;
- int starting_index;
- int elements_to_delete = 0;
- svn_merge_range_t *modified_range;
- if (*range_index >= rangelist->nelts)
- return;
+ for (i = 1; i < rangelist->nelts; i++)
+ {
+ const svn_merge_range_t *lastrange
+ = APR_ARRAY_IDX(rangelist, i-1, svn_merge_range_t *);
+ const svn_merge_range_t *thisrange
+ = APR_ARRAY_IDX(rangelist, i, svn_merge_range_t *);
- starting_index = *range_index + 1;
- modified_range = APR_ARRAY_IDX(rangelist, *range_index, svn_merge_range_t *);
+ if (svn_sort_compare_ranges(&lastrange, &thisrange) > 0)
+ return FALSE;
+ }
+ return TRUE;
+}
- for (i = *range_index + 1; i < rangelist->nelts; i++)
- {
- svn_merge_range_t *next_range = APR_ARRAY_IDX(rangelist, i,
- svn_merge_range_t *);
+/* Mergeinfo inheritance or absence in a rangelist interval */
+enum rangelist_interval_kind_t { MI_NONE, MI_NON_INHERITABLE, MI_INHERITABLE };
- /* If MODIFIED_RANGE doesn't adjoin or overlap the next range in
- RANGELIST then we are finished. */
- if (modified_range->end < next_range->start)
- break;
+/* A rangelist interval: like svn_merge_range_t but an interval can represent
+ * a gap in the rangelist (kind = MI_NONE). */
+typedef struct rangelist_interval_t
+{
+ svn_revnum_t start, end;
+ enum rangelist_interval_kind_t kind;
+} rangelist_interval_t;
+
+/* Iterator for intervals in a rangelist. */
+typedef struct rangelist_interval_iterator_t {
+ /* iteration state: */
+ const svn_rangelist_t *rl; /* input */
+ int i; /* current interval is this range in RL or the gap before it */
+ svn_boolean_t in_range; /* current interval is range RL[I], not a gap? */
+
+ /* current interval: */
+ rangelist_interval_t interval;
+} rangelist_interval_iterator_t;
+
+/* Update IT->interval to match the current iteration state of IT.
+ * Return the iterator, or NULL if the iteration has reached its end.
+ */
+static rangelist_interval_iterator_t *
+rlii_update(rangelist_interval_iterator_t *it)
+{
+ const svn_merge_range_t *range
+ = (it->i < it->rl->nelts
+ ? APR_ARRAY_IDX(it->rl, it->i, void *) : NULL);
- /* Does MODIFIED_RANGE adjoin NEXT_RANGE? */
- if (modified_range->end == next_range->start)
- {
- if (modified_range->inheritable == next_range->inheritable)
- {
- /* Combine adjoining ranges with the same inheritability. */
- modified_range->end = next_range->end;
- elements_to_delete++;
- }
- else
- {
- /* Cannot join because inheritance differs. */
- (*range_index)++;
- }
- break;
- }
+ if (!range)
+ return NULL;
- /* Alright, we know MODIFIED_RANGE overlaps NEXT_RANGE, but how? */
- if (modified_range->end > next_range->end)
- {
- /* NEXT_RANGE is a proper subset of MODIFIED_RANGE and the two
- don't share the same end range. */
- if (modified_range->inheritable
- || (modified_range->inheritable == next_range->inheritable))
- {
- /* MODIFIED_RANGE absorbs NEXT_RANGE. */
- elements_to_delete++;
- }
- else
- {
- /* NEXT_RANGE is a proper subset MODIFIED_RANGE but
- MODIFIED_RANGE is non-inheritable and NEXT_RANGE is
- inheritable. This means MODIFIED_RANGE is truncated,
- NEXT_RANGE remains, and the portion of MODIFIED_RANGE
- younger than NEXT_RANGE is added as a separate range:
- ______________________________________________
- | |
- M MODIFIED_RANGE N
- | (!inheritable) |
- |______________________________________________|
- | |
- O NEXT_RANGE P
- | (inheritable)|
- |______________|
- |
- V
- _______________________________________________
- | | | |
- M MODIFIED_RANGE O NEXT_RANGE P NEW_RANGE N
- | (!inheritable) | (inheritable)| (!inheritable)|
- |________________|______________|_______________|
- */
- svn_merge_range_t *new_modified_range =
- apr_palloc(result_pool, sizeof(*new_modified_range));
- new_modified_range->start = next_range->end;
- new_modified_range->end = modified_range->end;
- new_modified_range->inheritable = FALSE;
- modified_range->end = next_range->start;
- (*range_index) += 2 + elements_to_delete;
- svn_sort__array_insert(rangelist, &new_modified_range,
- *range_index);
- /* Recurse with the new range. */
- adjust_remaining_ranges(rangelist, range_index, result_pool);
- break;
- }
- }
- else if (modified_range->end == next_range->end)
- {
- /* NEXT_RANGE is a proper subset MODIFIED_RANGE and share
- the same end range. */
- if (modified_range->inheritable
- || (modified_range->inheritable == next_range->inheritable))
- {
- /* MODIFIED_RANGE absorbs NEXT_RANGE. */
- elements_to_delete++;
- }
- else
- {
- /* The intersection between MODIFIED_RANGE and NEXT_RANGE is
- absorbed by the latter. */
- modified_range->end = next_range->start;
- (*range_index)++;
- }
- break;
- }
- else
- {
- /* NEXT_RANGE and MODIFIED_RANGE intersect but NEXT_RANGE is not
- a proper subset of MODIFIED_RANGE, nor do the two share the
- same end revision, i.e. they overlap. */
- if (modified_range->inheritable == next_range->inheritable)
- {
- /* Combine overlapping ranges with the same inheritability. */
- modified_range->end = next_range->end;
- elements_to_delete++;
- }
- else if (modified_range->inheritable)
- {
- /* MODIFIED_RANGE absorbs the portion of NEXT_RANGE it overlaps
- and NEXT_RANGE is truncated. */
- next_range->start = modified_range->end;
- (*range_index)++;
- }
- else
- {
- /* NEXT_RANGE absorbs the portion of MODIFIED_RANGE it overlaps
- and MODIFIED_RANGE is truncated. */
- modified_range->end = next_range->start;
- (*range_index)++;
- }
- break;
- }
+ if (!it->in_range)
+ {
+ it->interval.start
+ = (it->i > 0
+ ? APR_ARRAY_IDX(it->rl, it->i - 1, svn_merge_range_t *)->end
+ : 0);
+ it->interval.end = range->start;
+ it->interval.kind = MI_NONE;
}
+ else
+ {
+ it->interval.start = range->start;
+ it->interval.end = range->end;
+ it->interval.kind
+ = (range->inheritable ? MI_INHERITABLE : MI_NON_INHERITABLE);
+ }
+ return it;
+}
- if (elements_to_delete)
- svn_sort__array_delete(rangelist, starting_index, elements_to_delete);
+/* Move to the next interval, which might be a zero-length interval.
+ * Return IT, or return NULL at the end of iteration. */
+static rangelist_interval_iterator_t *
+rlii_next_any_interval(rangelist_interval_iterator_t *it)
+{
+ /* Should be called before iteration is finished. */
+ if (it->i >= it->rl->nelts)
+ return NULL;
+
+ /* If we are in a range, move to the next pre-range gap;
+ * else, move from this pre-range gap into this range. */
+ if (it->in_range)
+ it->i++;
+ it->in_range = !it->in_range;
+ return it;
}
-#if 0 /* Temporary debug helper code */
-static svn_error_t *
-dual_dump(const char *prefix,
- const svn_rangelist_t *rangelist,
- const svn_rangelist_t *changes,
- apr_pool_t *scratch_pool)
+/* Return an iterator pointing at the first non-zero-length interval in RL,
+ * or NULL if there are none. */
+static rangelist_interval_iterator_t *
+rlii_first(const svn_rangelist_t *rl,
+ apr_pool_t *pool)
{
- svn_string_t *rls, *chg;
+ rangelist_interval_iterator_t *it = apr_palloc(pool, sizeof(*it));
- SVN_ERR(svn_rangelist_to_string(&rls, rangelist, scratch_pool));
- SVN_ERR(svn_rangelist_to_string(&chg, changes, scratch_pool));
+ it->rl = rl;
+ it->i = 0;
+ it->in_range = FALSE;
- SVN_DBG(("%s: %s / %s", prefix, rls->data, chg->data));
- return SVN_NO_ERROR;
+ /* Update, and skip empty intervals */
+ while ((it = rlii_update(it)) && it->interval.start == it->interval.end)
+ {
+ it = rlii_next_any_interval(it);
+ }
+ return it;
}
-#endif
-svn_error_t *
-svn_rangelist_merge2(svn_rangelist_t *rangelist,
- const svn_rangelist_t *chg,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
+/* Move to the next non-empty interval.
+ * Intervals will be generated in this sequence:
+ * (0, MI_NONE, RL[0]->start), // i=0, !in_range
+ * (RL[0]->start, MI_* RL[0]->end), // i=0, in_range
+ * (RL[0]->end, MI_NONE, RL[1]->start),
+ * (RL[1]->start, MI_* RL[1]->end),
+ * ...
+ * (RL[n-2]->end, MI_NONE, RL[n-1]->start),
+ * (RL[n-1]->start, MI_* RL[n-1]->end),
+ * but excluding empty intervals.
+ * Return IT, or return NULL at the end of iteration. */
+static rangelist_interval_iterator_t *
+rlii_next(rangelist_interval_iterator_t *it)
{
- svn_rangelist_t *changes;
- int i = 0;
- int j;
-
- SVN_ERR(svn_rangelist__canonicalize(rangelist, scratch_pool));
+ it = rlii_next_any_interval(it);
- /* We may modify CHANGES, so make a copy in SCRATCH_POOL. */
- changes = svn_rangelist_dup(chg, scratch_pool);
- SVN_ERR(svn_rangelist__canonicalize(changes, scratch_pool));
-
- for (j = 0; j < changes->nelts; j++)
+ /* Update, and skip empty intervals */
+ while ((it = rlii_update(it)) && it->interval.start == it->interval.end)
{
- svn_merge_range_t *range;
- svn_merge_range_t *change =
- APR_ARRAY_IDX(changes, j, svn_merge_range_t *);
- int res;
-
- range = (i < rangelist->nelts)
- ? APR_ARRAY_IDX(rangelist, i, svn_merge_range_t *)
- : NULL;
+ it = rlii_next_any_interval(it);
+ }
+ return it;
+}
- if (!range || change->end < range->start)
- {
- /* No overlap, nor adjoin, copy change to result range */
- svn_merge_range_t *chg_copy = svn_merge_range_dup(change,
- result_pool);
- svn_sort__array_insert(rangelist, &chg_copy, i++);
- continue;
- }
- else if ((change->start > range->end)
- || (change->start == range->end
- && change->inheritable != range->inheritable))
- {
- /* No overlap, nor adjoin. Check next range item against change */
- i++;
- j--;
- continue;
- }
+/* Rangelist builder. Accumulates consecutive intervals, combining them
+ * when possible. */
+typedef struct rangelist_builder_t {
+ svn_rangelist_t *rl; /* rangelist to build */
+ rangelist_interval_t accu_interval; /* current interval accumulator */
+ apr_pool_t *pool; /* from which to allocate ranges */
+} rangelist_builder_t;
+
+/* Return an initialized rangelist builder. */
+static rangelist_builder_t *
+rl_builder_new(svn_rangelist_t *rl,
+ apr_pool_t *pool)
+{
+ rangelist_builder_t *b = apr_pcalloc(pool, sizeof(*b));
- if (change->start < range->start
- && range->inheritable != change->inheritable
- && ! (change->inheritable && range_contains(change, range, FALSE))
- && ! (range->inheritable && range_contains(range, change, FALSE)))
- {
- /* Can't fold change into existing range.
- Insert new range before range */
+ b->rl = rl;
+ /* b->accu_interval = {0, 0, RL_NONE} */
+ b->pool = pool;
+ return b;
+}
- svn_merge_range_t *chg_copy = svn_merge_range_dup(change,
- result_pool);
+/* Flush the last accumulated interval in the rangelist builder B. */
+static void
+rl_builder_flush(rangelist_builder_t *b)
+{
+ if (b->accu_interval.kind > MI_NONE)
+ {
+ svn_merge_range_t *mrange = apr_pcalloc(b->pool, sizeof(*mrange));
+ mrange->start = b->accu_interval.start;
+ mrange->end = b->accu_interval.end;
+ mrange->inheritable = (b->accu_interval.kind == MI_INHERITABLE);
+ APR_ARRAY_PUSH(b->rl, svn_merge_range_t *) = mrange;
+ }
+}
- chg_copy->start = MIN(change->start, range->start);
- if (! change->inheritable)
- chg_copy->end = range->start;
- else
- range->start = change->end;
+/* Add a new INTERVAL to the rangelist builder B. */
+static void
+rl_builder_add_interval(rangelist_builder_t *b,
+ const rangelist_interval_t *interval)
+{
+ SVN_ERR_ASSERT_NO_RETURN(interval->start < interval->end);
+ SVN_ERR_ASSERT_NO_RETURN(interval->start == b->accu_interval.end);
- svn_sort__array_insert(rangelist, &chg_copy, i++);
+ /* Extend the accumulating interval, or end it and start another? */
+ if (interval->kind == b->accu_interval.kind)
+ {
+ b->accu_interval.end = interval->end;
+ }
+ else
+ {
+ /* Push the accumulated interval onto the building rangelist. */
+ rl_builder_flush(b);
+ /* Start accumulating a new interval */
+ b->accu_interval = *interval;
+ }
+}
- change->start = chg_copy->end;
- if (change->start >= change->end)
- continue; /* No overlap with range left */
- }
- else
- {
- range->start = MIN(range->start, change->start);
- }
+/* Set RL_OUT to the union (merge) of RL1 and RL2.
+ * On entry, RL_OUT must be an empty rangelist.
+ *
+ * Each range added to RL_OUT will be either shallow-copied from RL1 or
+ * allocated from RESULT_POOL.
+ */
+static svn_error_t *
+rangelist_merge(svn_rangelist_t *rl_out,
+ const svn_rangelist_t *rl1,
+ const svn_rangelist_t *rl2,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ rangelist_interval_iterator_t *it[2];
+ rangelist_builder_t *rl_builder = rl_builder_new(rl_out, result_pool);
+ svn_revnum_t r_last = 0;
+
+ /*SVN_ERR_ASSERT(svn_rangelist__is_canonical(rl1));*/
+ /*SVN_ERR_ASSERT(svn_rangelist__is_canonical(rl2));*/
+ SVN_ERR_ASSERT(rangelist_is_sorted(rl1));
+ SVN_ERR_ASSERT(rangelist_is_sorted(rl2));
+ SVN_ERR_ASSERT(rl_out->nelts == 0);
+
+ /* Initialize the input iterators and the output generator */
+ it[0] = rlii_first(rl1, scratch_pool);
+ it[1] = rlii_first(rl2, scratch_pool);
+
+ /* Keep choosing the next input revision (whether a start or end of a range)
+ * at which to consider making an output transition. */
+ while (it[0] || it[1])
+ {
+ svn_revnum_t r_next = !it[1] ? it[0]->interval.end
+ : !it[0] ? it[1]->interval.end
+ : MIN(it[0]->interval.end, it[1]->interval.end);
+ rangelist_interval_t interval;
+
+ interval.start = r_last;
+ interval.end = r_next;
+ interval.kind = !it[1] ? it[0]->interval.kind
+ : !it[0] ? it[1]->interval.kind
+ : MAX(it[0]->interval.kind, it[1]->interval.kind);
+
+ /* Accumulate */
+ SVN_ERR_ASSERT(interval.start < interval.end);
+ rl_builder_add_interval(rl_builder, &interval);
+
+ /* if we have used up either or both input intervals, increment them */
+ if (it[0] && it[0]->interval.end <= r_next)
+ it[0] = rlii_next(it[0]);
+ if (it[1] && it[1]->interval.end <= r_next)
+ it[1] = rlii_next(it[1]);
+
+ r_last = interval.end;
+ }
+ rl_builder_flush(rl_builder);
+ return SVN_NO_ERROR;
+}
- SVN_ERR_ASSERT(change->start >= range->start);
+svn_error_t *
+svn_rangelist_merge2(svn_rangelist_t *rangelist,
+ const svn_rangelist_t *chg,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ svn_error_t *err;
+ svn_rangelist_t *rangelist_orig;
- res = svn_sort_compare_ranges(&range, &change);
+#ifdef SVN_DEBUG
+ SVN_ERR_ASSERT(rangelist_is_sorted(rangelist));
+ SVN_ERR_ASSERT(rangelist_is_sorted(chg));
+#endif
- if (res == 0)
- {
- /* Only when merging two non-inheritable ranges is the result also
- non-inheritable. In all other cases ensure an inheritable
- result. */
- if (range->inheritable || change->inheritable)
- range->inheritable = TRUE;
- i++;
- continue;
- }
- else if (res < 0) /* CHANGE is younger than RANGE */
- {
- if (range->end == change->start)
- {
- /* RANGE and CHANGE adjoin */
- if (range->inheritable == change->inheritable)
- {
- /* RANGE and CHANGE have the same inheritability so
- RANGE expands to absord CHANGE. */
- range->end = change->end;
- adjust_remaining_ranges(rangelist, &i, result_pool);
- continue;
- }
- else
- {
- /* RANGE and CHANGE adjoin, but have different
- inheritability. Since RANGE is older, just
- move on to the next RANGE. */
- SVN_ERR_MALFUNCTION();
- }
- }
- else
- {
- /* RANGE and CHANGE overlap, but how? */
- if ((range->inheritable == change->inheritable)
- || range->inheritable)
- {
- /* If CHANGE is a proper subset of RANGE, it absorbs RANGE
- with no adjustment otherwise only the intersection is
- absorbed and CHANGE is truncated. */
- if (range->end >= change->end)
- continue;
- else
- {
- change->start = range->end;
- j--;
- continue;
- }
- }
- else
- {
- /* RANGE is non-inheritable and CHANGE is inheritable. */
- if (range->start < change->start)
- {
- /* CHANGE absorbs intersection with RANGE and RANGE
- is truncated. */
- svn_merge_range_t *range_copy =
- svn_merge_range_dup(range, result_pool);
- range_copy->end = change->start;
- range->start = change->start;
- svn_sort__array_insert(rangelist, &range_copy, i++);
- j--;
- continue;
- }
- else
- {
- /* CHANGE and RANGE share the same start rev, but
- RANGE is considered older because its end rev
- is older. */
- range->inheritable = TRUE;
- change->start = range->end;
- j--;
- continue;
- }
- }
- }
- }
- else /* res > 0, CHANGE is older than RANGE */
- {
- if (change->end == range->start)
- {
- /* RANGE and CHANGE adjoin */
- if (range->inheritable == change->inheritable)
- {
- /* RANGE and CHANGE have the same inheritability so we
- can simply combine the two in place. */
- range->start = change->start;
- continue;
- }
- else
- {
- /* RANGE and CHANGE have different inheritability so insert
- a copy of CHANGE into RANGELIST. */
- SVN_ERR_MALFUNCTION(); /* Already handled */
- }
- }
- else
- {
- /* RANGE and CHANGE overlap. */
- if (range->inheritable == change->inheritable)
- {
- /* RANGE and CHANGE have the same inheritability so we
- can simply combine the two in place... */
- range->start = change->start;
- if (range->end < change->end)
- {
- /* ...but if RANGE is expanded ensure that we don't
- violate any rangelist invariants. */
- range->end = change->end;
- adjust_remaining_ranges(rangelist, &i, result_pool);
- }
- continue;
- }
- else if (range->inheritable)
- {
- if (change->start < range->start)
- {
- /* RANGE is inheritable so absorbs any part of CHANGE
- it overlaps. CHANGE is truncated and the remainder
- inserted into RANGELIST. */
- SVN_ERR_MALFUNCTION(); /* Already handled */
- }
- else
- {
- /* CHANGE and RANGE share the same start rev, but
- CHANGE is considered older because CHANGE->END is
- older than RANGE->END. */
- continue;
- }
- }
- else
- {
- /* RANGE is non-inheritable and CHANGE is inheritable. */
- if (change->start < range->start)
- {
- if (change->end == range->end)
- {
- /* RANGE is a proper subset of CHANGE and share the
- same end revision, so set RANGE equal to CHANGE. */
- range->start = change->start;
- range->inheritable = TRUE;
- continue;
- }
- else if (change->end > range->end)
- {
- /* RANGE is a proper subset of CHANGE and CHANGE has
- a younger end revision, so set RANGE equal to its
- intersection with CHANGE and truncate CHANGE. */
- range->start = change->start;
- range->inheritable = TRUE;
- change->start = range->end;
- j--;
- continue;
- }
- else
- {
- /* CHANGE and RANGE overlap. Set RANGE equal to its
- intersection with CHANGE and take the remainder
- of RANGE and insert it into RANGELIST. */
- svn_merge_range_t *range_copy =
- svn_merge_range_dup(range, result_pool);
- range_copy->start = change->end;
- range->start = change->start;
- range->end = change->end;
- range->inheritable = TRUE;
- svn_sort__array_insert(rangelist, &range_copy, ++i);
- continue;
- }
- }
- else
- {
- /* CHANGE and RANGE share the same start rev, but
- CHANGE is considered older because its end rev
- is older.
-
- Insert the intersection of RANGE and CHANGE into
- RANGELIST and then set RANGE to the non-intersecting
- portion of RANGE. */
- svn_merge_range_t *range_copy =
- svn_merge_range_dup(range, result_pool);
- range_copy->end = change->end;
- range_copy->inheritable = TRUE;
- range->start = change->end;
- svn_sort__array_insert(rangelist, &range_copy, i++);
- continue;
- }
- }
- }
- }
- SVN_ERR_MALFUNCTION(); /* Unreachable */
- }
+ /* Move the original rangelist aside. A shallow copy suffices,
+ * as rangelist_merge() won't modify its inputs. */
+ rangelist_orig = apr_array_copy(scratch_pool, rangelist);
+ apr_array_clear(rangelist);
+ err = svn_error_trace(rangelist_merge(rangelist, rangelist_orig, chg,
+ result_pool, scratch_pool));
#ifdef SVN_DEBUG
- SVN_ERR_ASSERT(svn_rangelist__is_canonical(rangelist));
+ if (err)
+ {
+ err = svn_error_createf(SVN_ERR_ASSERTION_FAIL, err,
+ "svn_rangelist_merge2( %s / %s ): internal error",
+ rangelist_to_string_debug(rangelist_orig, scratch_pool),
+ rangelist_to_string_debug(chg, scratch_pool));
+ }
+ else if (! svn_rangelist__is_canonical(rangelist)
+ && svn_rangelist__is_canonical(rangelist_orig)
+ && svn_rangelist__is_canonical(chg))
+ {
+ err = svn_error_createf(SVN_ERR_ASSERTION_FAIL, NULL,
+ "svn_rangelist_merge2( %s / %s ): canonical inputs, "
+ "non-canonical result ( %s )",
+ rangelist_to_string_debug(rangelist_orig, scratch_pool),
+ rangelist_to_string_debug(chg, scratch_pool),
+ rangelist_to_string_debug(rangelist, scratch_pool));
+ }
#endif
- return SVN_NO_ERROR;
+ return err;
}
-/* Return TRUE iff the forward revision ranges FIRST and SECOND overlap and
- * (if CONSIDER_INHERITANCE is TRUE) have the same inheritability. */
-static svn_boolean_t
-range_intersect(const svn_merge_range_t *first, const svn_merge_range_t *second,
+/* Set *RESULT to TRUE iff the forward revision ranges FIRST and SECOND overlap
+ * and (if CONSIDER_INHERITANCE is TRUE) have the same inheritability. */
+static svn_error_t *
+range_intersect(svn_boolean_t *result,
+ const svn_merge_range_t *first, const svn_merge_range_t *second,
svn_boolean_t consider_inheritance)
{
- SVN_ERR_ASSERT_NO_RETURN(IS_VALID_FORWARD_RANGE(first));
- SVN_ERR_ASSERT_NO_RETURN(IS_VALID_FORWARD_RANGE(second));
+ SVN_ERR_ASSERT(IS_VALID_FORWARD_RANGE(first));
+ SVN_ERR_ASSERT(IS_VALID_FORWARD_RANGE(second));
- return (first->start + 1 <= second->end)
- && (second->start + 1 <= first->end)
- && (!consider_inheritance
- || (!(first->inheritable) == !(second->inheritable)));
+ *result = (first->start + 1 <= second->end)
+ && (second->start + 1 <= first->end)
+ && (!consider_inheritance
+ || (!(first->inheritable) == !(second->inheritable)));
+ return SVN_NO_ERROR;
}
-/* Return TRUE iff the forward revision range FIRST wholly contains the
+/* Set *RESULT to TRUE iff the forward revision range FIRST wholly contains the
* forward revision range SECOND and (if CONSIDER_INHERITANCE is TRUE) has
* the same inheritability. */
-static svn_boolean_t
-range_contains(const svn_merge_range_t *first, const svn_merge_range_t *second,
+static svn_error_t *
+range_contains(svn_boolean_t *result,
+ const svn_merge_range_t *first, const svn_merge_range_t *second,
svn_boolean_t consider_inheritance)
{
- SVN_ERR_ASSERT_NO_RETURN(IS_VALID_FORWARD_RANGE(first));
- SVN_ERR_ASSERT_NO_RETURN(IS_VALID_FORWARD_RANGE(second));
+ SVN_ERR_ASSERT(IS_VALID_FORWARD_RANGE(first));
+ SVN_ERR_ASSERT(IS_VALID_FORWARD_RANGE(second));
- return (first->start <= second->start) && (second->end <= first->end)
- && (!consider_inheritance
- || (!(first->inheritable) == !(second->inheritable)));
+ *result = (first->start <= second->start) && (second->end <= first->end)
+ && (!consider_inheritance
+ || (!(first->inheritable) == !(second->inheritable)));
+ return SVN_NO_ERROR;
}
/* Swap start and end fields of RANGE. */
@@ -1390,6 +1277,7 @@ rangelist_intersect_or_remove(svn_rangelist_t **output,
while (i1 < rangelist1->nelts && i2 < rangelist2->nelts)
{
svn_merge_range_t *elt1, *elt2;
+ svn_boolean_t elt1_contains_elt2, elt1_intersects_elt2;
elt1 = APR_ARRAY_IDX(rangelist1, i1, svn_merge_range_t *);
@@ -1405,6 +1293,10 @@ rangelist_intersect_or_remove(svn_rangelist_t **output,
elt2 = &working_elt2;
+ SVN_ERR(range_contains(&elt1_contains_elt2,
+ elt1, elt2, consider_inheritance));
+ SVN_ERR(range_intersect(&elt1_intersects_elt2,
+ elt1, elt2, consider_inheritance));
/* If the rangelist2 range is contained completely in the
rangelist1, we increment the rangelist2.
If the ranges intersect, and match exactly, we increment both
@@ -1413,7 +1305,7 @@ rangelist_intersect_or_remove(svn_rangelist_t **output,
the removal of rangelist1 from rangelist2, and possibly change
the rangelist2 to the remaining portion of the right part of
the removal, to test against. */
- if (range_contains(elt1, elt2, consider_inheritance))
+ if (elt1_contains_elt2)
{
if (!do_remove)
{
@@ -1434,7 +1326,7 @@ rangelist_intersect_or_remove(svn_rangelist_t **output,
if (elt2->start == elt1->start && elt2->end == elt1->end)
i1++;
}
- else if (range_intersect(elt1, elt2, consider_inheritance))
+ else if (elt1_intersects_elt2)
{
if (elt2->start < elt1->start)
{
@@ -1977,18 +1869,21 @@ svn_rangelist_to_string(svn_string_t **output,
{
int i;
svn_merge_range_t *range;
+ char *s;
/* Handle the elements that need commas at the end. */
for (i = 0; i < rangelist->nelts - 1; i++)
{
range = APR_ARRAY_IDX(rangelist, i, svn_merge_range_t *);
- svn_stringbuf_appendcstr(buf, range_to_string(range, pool));
+ SVN_ERR(range_to_string(&s, range, pool));
+ svn_stringbuf_appendcstr(buf, s);
svn_stringbuf_appendcstr(buf, ",");
}
/* Now handle the last element, which needs no comma. */
range = APR_ARRAY_IDX(rangelist, i, svn_merge_range_t *);
- svn_stringbuf_appendcstr(buf, range_to_string(range, pool));
+ SVN_ERR(range_to_string(&s, range, pool));
+ svn_stringbuf_appendcstr(buf, s);
}
*output = svn_stringbuf__morph_into_string(buf);
diff --git a/subversion/libsvn_subr/object_pool.c b/subversion/libsvn_subr/object_pool.c
index 0f41feaf4b04..5091b8960b37 100644
--- a/subversion/libsvn_subr/object_pool.c
+++ b/subversion/libsvn_subr/object_pool.c
@@ -321,7 +321,7 @@ svn_object_pool__insert(void **object,
{
*object = NULL;
SVN_MUTEX__WITH_LOCK(object_pool->mutex,
- insert(object, object_pool, key, item,
+ insert(object, object_pool, key, item,
item_pool, result_pool));
return SVN_NO_ERROR;
}
diff --git a/subversion/libsvn_subr/opt.c b/subversion/libsvn_subr/opt.c
index fd8c73a273b2..1a9beb646f89 100644
--- a/subversion/libsvn_subr/opt.c
+++ b/subversion/libsvn_subr/opt.c
@@ -55,8 +55,8 @@
/*** Code. ***/
-const svn_opt_subcommand_desc2_t *
-svn_opt_get_canonical_subcommand2(const svn_opt_subcommand_desc2_t *table,
+const svn_opt_subcommand_desc3_t *
+svn_opt_get_canonical_subcommand3(const svn_opt_subcommand_desc3_t *table,
const char *cmd_name)
{
int i = 0;
@@ -80,9 +80,9 @@ svn_opt_get_canonical_subcommand2(const svn_opt_subcommand_desc2_t *table,
}
const apr_getopt_option_t *
-svn_opt_get_option_from_code2(int code,
+svn_opt_get_option_from_code3(int code,
const apr_getopt_option_t *option_table,
- const svn_opt_subcommand_desc2_t *command,
+ const svn_opt_subcommand_desc3_t *command,
apr_pool_t *pool)
{
apr_size_t i;
@@ -111,34 +111,19 @@ svn_opt_get_option_from_code2(int code,
return NULL;
}
-
-const apr_getopt_option_t *
-svn_opt_get_option_from_code(int code,
- const apr_getopt_option_t *option_table)
-{
- apr_size_t i;
-
- for (i = 0; option_table[i].optch; i++)
- if (option_table[i].optch == code)
- return &(option_table[i]);
-
- return NULL;
-}
-
-
-/* Like svn_opt_get_option_from_code2(), but also, if CODE appears a second
+/* Like svn_opt_get_option_from_code3(), but also, if CODE appears a second
* time in OPTION_TABLE with a different name, then set *LONG_ALIAS to that
* second name, else set it to NULL. */
static const apr_getopt_option_t *
-get_option_from_code(const char **long_alias,
- int code,
- const apr_getopt_option_t *option_table,
- const svn_opt_subcommand_desc2_t *command,
- apr_pool_t *pool)
+get_option_from_code3(const char **long_alias,
+ int code,
+ const apr_getopt_option_t *option_table,
+ const svn_opt_subcommand_desc3_t *command,
+ apr_pool_t *pool)
{
const apr_getopt_option_t *i;
const apr_getopt_option_t *opt
- = svn_opt_get_option_from_code2(code, option_table, command, pool);
+ = svn_opt_get_option_from_code3(code, option_table, command, pool);
/* Find a long alias in the table, if there is one. */
*long_alias = NULL;
@@ -205,7 +190,7 @@ svn_opt_format_option(const char **string,
svn_boolean_t
-svn_opt_subcommand_takes_option3(const svn_opt_subcommand_desc2_t *command,
+svn_opt_subcommand_takes_option4(const svn_opt_subcommand_desc3_t *command,
int option_code,
const int *global_options)
{
@@ -223,38 +208,19 @@ svn_opt_subcommand_takes_option3(const svn_opt_subcommand_desc2_t *command,
return FALSE;
}
-svn_boolean_t
-svn_opt_subcommand_takes_option2(const svn_opt_subcommand_desc2_t *command,
- int option_code)
-{
- return svn_opt_subcommand_takes_option3(command,
- option_code,
- NULL);
-}
-
-
-svn_boolean_t
-svn_opt_subcommand_takes_option(const svn_opt_subcommand_desc_t *command,
- int option_code)
-{
- apr_size_t i;
-
- for (i = 0; i < SVN_OPT_MAX_OPTIONS; i++)
- if (command->valid_options[i] == option_code)
- return TRUE;
-
- return FALSE;
-}
-
/* Print the canonical command name for CMD, and all its aliases, to
STREAM. If HELP is set, print CMD's help string too, in which case
- obtain option usage from OPTIONS_TABLE. */
+ obtain option usage from OPTIONS_TABLE.
+
+ Include global and experimental options iff VERBOSE is true.
+ */
static svn_error_t *
-print_command_info2(const svn_opt_subcommand_desc2_t *cmd,
+print_command_info3(const svn_opt_subcommand_desc3_t *cmd,
const apr_getopt_option_t *options_table,
const int *global_options,
svn_boolean_t help,
+ svn_boolean_t verbose,
apr_pool_t *pool,
FILE *stream)
{
@@ -289,8 +255,14 @@ print_command_info2(const svn_opt_subcommand_desc2_t *cmd,
const apr_getopt_option_t *option;
const char *long_alias;
svn_boolean_t have_options = FALSE;
+ svn_boolean_t have_experimental = FALSE;
- SVN_ERR(svn_cmdline_fprintf(stream, pool, ": %s", _(cmd->help)));
+ SVN_ERR(svn_cmdline_fprintf(stream, pool, ": "));
+
+ for (i = 0; i < SVN_OPT_MAX_PARAGRAPHS && cmd->help[i]; i++)
+ {
+ SVN_ERR(svn_cmdline_fprintf(stream, pool, "%s", _(cmd->help[i])));
+ }
/* Loop over all valid option codes attached to the subcommand */
for (i = 0; i < SVN_OPT_MAX_OPTIONS; i++)
@@ -305,13 +277,24 @@ print_command_info2(const svn_opt_subcommand_desc2_t *cmd,
}
/* convert each option code into an option */
- option = get_option_from_code(&long_alias, cmd->valid_options[i],
- options_table, cmd, pool);
+ option = get_option_from_code3(&long_alias, cmd->valid_options[i],
+ options_table, cmd, pool);
/* print the option's docstring */
if (option && option->description)
{
const char *optstr;
+
+ if (option->name && strncmp(option->name, "x-", 2) == 0)
+ {
+ if (verbose && !have_experimental)
+ SVN_ERR(svn_cmdline_fputs(_("\nExperimental options:\n"),
+ stream, pool));
+ have_experimental = TRUE;
+ if (!verbose)
+ continue;
+ }
+
format_option(&optstr, option, long_alias, TRUE, pool);
SVN_ERR(svn_cmdline_fprintf(stream, pool, " %s\n",
optstr));
@@ -319,7 +302,7 @@ print_command_info2(const svn_opt_subcommand_desc2_t *cmd,
}
}
/* And global options too */
- if (global_options && *global_options)
+ if (verbose && global_options && *global_options)
{
SVN_ERR(svn_cmdline_fputs(_("\nGlobal options:\n"),
stream, pool));
@@ -329,8 +312,8 @@ print_command_info2(const svn_opt_subcommand_desc2_t *cmd,
{
/* convert each option code into an option */
- option = get_option_from_code(&long_alias, global_options[i],
- options_table, cmd, pool);
+ option = get_option_from_code3(&long_alias, global_options[i],
+ options_table, cmd, pool);
/* print the option's docstring */
if (option && option->description)
@@ -343,6 +326,9 @@ print_command_info2(const svn_opt_subcommand_desc2_t *cmd,
}
}
+ if (!verbose)
+ SVN_ERR(svn_cmdline_fputs(_("\n(Use '-v' to show global and experimental options.)\n"),
+ stream, pool));
if (have_options)
SVN_ERR(svn_cmdline_fprintf(stream, pool, "\n"));
}
@@ -350,30 +336,44 @@ print_command_info2(const svn_opt_subcommand_desc2_t *cmd,
return SVN_NO_ERROR;
}
-/* The body for svn_opt_print_generic_help2() function with standard error
+/* The body for svn_opt_print_generic_help3() function with standard error
* handling semantic. Handling of errors implemented at caller side. */
static svn_error_t *
-print_generic_help_body(const char *header,
- const svn_opt_subcommand_desc2_t *cmd_table,
- const apr_getopt_option_t *opt_table,
- const char *footer,
- apr_pool_t *pool, FILE *stream)
+print_generic_help_body3(const char *header,
+ const svn_opt_subcommand_desc3_t *cmd_table,
+ const apr_getopt_option_t *opt_table,
+ const char *footer,
+ svn_boolean_t with_experimental,
+ apr_pool_t *pool, FILE *stream)
{
- int i = 0;
+ svn_boolean_t have_experimental = FALSE;
+ int i;
if (header)
SVN_ERR(svn_cmdline_fputs(header, stream, pool));
- while (cmd_table[i].name)
+ for (i = 0; cmd_table[i].name; i++)
{
+ if (strncmp(cmd_table[i].name, "x-", 2) == 0)
+ {
+ if (with_experimental && !have_experimental)
+ SVN_ERR(svn_cmdline_fputs(_("\nExperimental subcommands:\n"),
+ stream, pool));
+ have_experimental = TRUE;
+ if (!with_experimental)
+ continue;
+ }
SVN_ERR(svn_cmdline_fputs(" ", stream, pool));
- SVN_ERR(print_command_info2(cmd_table + i, opt_table,
- NULL, FALSE,
+ SVN_ERR(print_command_info3(cmd_table + i, opt_table,
+ NULL, FALSE, FALSE,
pool, stream));
SVN_ERR(svn_cmdline_fputs("\n", stream, pool));
- i++;
}
+ if (have_experimental && !with_experimental)
+ SVN_ERR(svn_cmdline_fputs(_("\n(Use '-v' to show experimental subcommands.)\n"),
+ stream, pool));
+
SVN_ERR(svn_cmdline_fputs("\n", stream, pool));
if (footer)
@@ -382,17 +382,19 @@ print_generic_help_body(const char *header,
return SVN_NO_ERROR;
}
-void
-svn_opt_print_generic_help2(const char *header,
- const svn_opt_subcommand_desc2_t *cmd_table,
- const apr_getopt_option_t *opt_table,
- const char *footer,
- apr_pool_t *pool, FILE *stream)
+static void
+print_generic_help(const char *header,
+ const svn_opt_subcommand_desc3_t *cmd_table,
+ const apr_getopt_option_t *opt_table,
+ const char *footer,
+ svn_boolean_t with_experimental,
+ apr_pool_t *pool, FILE *stream)
{
svn_error_t *err;
- err = print_generic_help_body(header, cmd_table, opt_table, footer, pool,
- stream);
+ err = print_generic_help_body3(header, cmd_table, opt_table, footer,
+ with_experimental,
+ pool, stream);
/* Issue #3014:
* Don't print anything on broken pipes. The pipe was likely
@@ -406,21 +408,37 @@ svn_opt_print_generic_help2(const char *header,
svn_error_clear(err);
}
-
void
-svn_opt_subcommand_help3(const char *subcommand,
- const svn_opt_subcommand_desc2_t *table,
- const apr_getopt_option_t *options_table,
- const int *global_options,
- apr_pool_t *pool)
+svn_opt_print_generic_help3(const char *header,
+ const svn_opt_subcommand_desc3_t *cmd_table,
+ const apr_getopt_option_t *opt_table,
+ const char *footer,
+ apr_pool_t *pool, FILE *stream)
{
- const svn_opt_subcommand_desc2_t *cmd =
- svn_opt_get_canonical_subcommand2(table, subcommand);
+ print_generic_help(header, cmd_table, opt_table, footer,
+ TRUE, pool, stream);
+}
+
+
+/* The body of svn_opt_subcommand_help4(), which see.
+ *
+ * VERBOSE means show also the subcommand's global and experimental options.
+ */
+static void
+subcommand_help(const char *subcommand,
+ const svn_opt_subcommand_desc3_t *table,
+ const apr_getopt_option_t *options_table,
+ const int *global_options,
+ svn_boolean_t verbose,
+ apr_pool_t *pool)
+{
+ const svn_opt_subcommand_desc3_t *cmd =
+ svn_opt_get_canonical_subcommand3(table, subcommand);
svn_error_t *err;
if (cmd)
- err = print_command_info2(cmd, options_table, global_options,
- TRUE, pool, stdout);
+ err = print_command_info3(cmd, options_table, global_options,
+ TRUE, verbose, pool, stdout);
else
err = svn_cmdline_fprintf(stderr, pool,
_("\"%s\": unknown command.\n\n"), subcommand);
@@ -433,6 +451,17 @@ svn_opt_subcommand_help3(const char *subcommand,
}
}
+void
+svn_opt_subcommand_help4(const char *subcommand,
+ const svn_opt_subcommand_desc3_t *table,
+ const apr_getopt_option_t *options_table,
+ const int *global_options,
+ apr_pool_t *pool)
+{
+ subcommand_help(subcommand, table, options_table, global_options,
+ TRUE, pool);
+}
+
/*** Parsing revision and date options. ***/
@@ -1194,14 +1223,14 @@ svn_opt__print_version_info(const char *pgm_name,
}
svn_error_t *
-svn_opt_print_help4(apr_getopt_t *os,
+svn_opt_print_help5(apr_getopt_t *os,
const char *pgm_name,
svn_boolean_t print_version,
svn_boolean_t quiet,
svn_boolean_t verbose,
const char *version_footer,
const char *header,
- const svn_opt_subcommand_desc2_t *cmd_table,
+ const svn_opt_subcommand_desc3_t *cmd_table,
const apr_getopt_option_t *option_table,
const int *global_options,
const char *footer,
@@ -1218,9 +1247,9 @@ svn_opt_print_help4(apr_getopt_t *os,
for (i = 0; i < targets->nelts; i++)
{
- svn_opt_subcommand_help3(APR_ARRAY_IDX(targets, i, const char *),
- cmd_table, option_table,
- global_options, pool);
+ subcommand_help(APR_ARRAY_IDX(targets, i, const char *),
+ cmd_table, option_table, global_options,
+ verbose, pool);
}
}
else if (print_version) /* just --version */
@@ -1230,12 +1259,9 @@ svn_opt_print_help4(apr_getopt_t *os,
quiet, verbose, pool));
}
else if (os && !targets->nelts) /* `-h', `--help', or `help' */
- svn_opt_print_generic_help2(header,
- cmd_table,
- option_table,
- footer,
- pool,
- stdout);
+ print_generic_help(header, cmd_table, option_table, footer,
+ verbose,
+ pool, stdout);
else /* unknown option or cmd */
SVN_ERR(svn_cmdline_fprintf(stderr, pool,
_("Type '%s help' for usage.\n"), pgm_name));
diff --git a/subversion/libsvn_subr/pool.c b/subversion/libsvn_subr/pool.c
index 5fd80a7a83cc..340c576db7a9 100644
--- a/subversion/libsvn_subr/pool.c
+++ b/subversion/libsvn_subr/pool.c
@@ -133,7 +133,7 @@ svn_pool_create_allocator(svn_boolean_t thread_safe)
#endif
/* By default, allocators are *not* thread-safe. We must provide a mutex
- * if we want thread-safety for that mutex. */
+ * if we want thread-safety for that pool. */
#if APR_HAS_THREADS
if (thread_safe)
@@ -151,16 +151,6 @@ svn_pool_create_allocator(svn_boolean_t thread_safe)
}
-/*
- * apr_pool_create_core_ex was introduced in APR 1.3.0, then
- * deprecated and renamed to apr_pool_create_unmanaged_ex in 1.3.3.
- * Since our minimum requirement is APR 1.3.0, one or the other of
- * these functions will always be available.
- */
-#if !APR_VERSION_AT_LEAST(1,3,3)
-#define apr_pool_create_unmanaged_ex apr_pool_create_core_ex
-#endif
-
/* Private function that creates an unmanaged pool. */
apr_pool_t *
svn_pool__create_unmanaged(svn_boolean_t thread_safe)
diff --git a/subversion/libsvn_subr/sorts.c b/subversion/libsvn_subr/sorts.c
index 613c93b288a4..7fe7b7c4458d 100644
--- a/subversion/libsvn_subr/sorts.c
+++ b/subversion/libsvn_subr/sorts.c
@@ -34,6 +34,8 @@
#include "svn_error.h"
#include "private/svn_sorts_private.h"
+#include "svn_private_config.h"
+
/*** svn_sort__hash() ***/
@@ -299,15 +301,20 @@ svn_sort__array_lookup(const apr_array_header_t *array,
return compare_func(result, key) ? NULL : result;
}
-void
-svn_sort__array_insert(apr_array_header_t *array,
- const void *new_element,
- int insert_index)
+svn_error_t *
+svn_sort__array_insert2(apr_array_header_t *array,
+ const void *new_element,
+ int insert_index)
{
int elements_to_move;
char *new_position;
- assert(0 <= insert_index && insert_index <= array->nelts);
+ if (insert_index < 0 || insert_index > array->nelts)
+ return svn_error_createf(SVN_ERR_INCORRECT_PARAMS, NULL,
+ _("svn_sort__array_insert2: Attempted insert "
+ "at index %d in array length %d"),
+ insert_index, array->nelts);
+
elements_to_move = array->nelts - insert_index; /* before bumping nelts */
/* Grow the array, allocating a new space at the end. Note: this can
@@ -322,31 +329,35 @@ svn_sort__array_insert(apr_array_header_t *array,
/* Copy in the new element */
memcpy(new_position, new_element, array->elt_size);
+ return SVN_NO_ERROR;
}
-void
-svn_sort__array_delete(apr_array_header_t *arr,
- int delete_index,
- int elements_to_delete)
+svn_error_t *
+svn_sort__array_delete2(apr_array_header_t *arr,
+ int delete_index,
+ int elements_to_delete)
{
- /* Do we have a valid index and are there enough elements? */
- if (delete_index >= 0
- && delete_index < arr->nelts
- && elements_to_delete > 0
- && (arr->nelts - delete_index) >= elements_to_delete)
- {
- /* If we are not deleting a block of elements that extends to the end
- of the array, then we need to move the remaining elements to keep
- the array contiguous. */
- if ((elements_to_delete + delete_index) < arr->nelts)
- memmove(
- arr->elts + arr->elt_size * delete_index,
- arr->elts + (arr->elt_size * (delete_index + elements_to_delete)),
- arr->elt_size * (arr->nelts - elements_to_delete - delete_index));
-
- /* Delete the last ELEMENTS_TO_DELETE elements. */
- arr->nelts -= elements_to_delete;
- }
+ if (!(delete_index >= 0
+ && delete_index < arr->nelts
+ && elements_to_delete > 0
+ && (arr->nelts - delete_index) >= elements_to_delete))
+ return svn_error_createf(SVN_ERR_INCORRECT_PARAMS, NULL,
+ _("svn_sort__array_delete2: Attempted delete "
+ "at index %d, %d elements, in array length %d"),
+ delete_index, elements_to_delete, arr->nelts);
+
+ /* If we are deleting a block of elements that does not extend to the end
+ of the array, then we need to move the remaining elements to keep
+ the array contiguous. */
+ if ((elements_to_delete + delete_index) < arr->nelts)
+ memmove(
+ arr->elts + arr->elt_size * delete_index,
+ arr->elts + (arr->elt_size * (delete_index + elements_to_delete)),
+ arr->elt_size * (arr->nelts - elements_to_delete - delete_index));
+
+ /* Delete the last ELEMENTS_TO_DELETE elements. */
+ arr->nelts -= elements_to_delete;
+ return SVN_NO_ERROR;
}
void
diff --git a/subversion/libsvn_subr/sqlite3wrapper.c b/subversion/libsvn_subr/sqlite3wrapper.c
index 95e42d138268..ea090fe63633 100644
--- a/subversion/libsvn_subr/sqlite3wrapper.c
+++ b/subversion/libsvn_subr/sqlite3wrapper.c
@@ -25,6 +25,8 @@
/* Include sqlite3 inline, making all symbols private. */
#ifdef SVN_SQLITE_INLINE
# define SQLITE_OMIT_DEPRECATED 1
+# define SQLITE_DEFAULT_MEMSTATUS 0
+# define SQLITE_OMIT_WAL 1
# define SQLITE_API static
# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)
# pragma GCC diagnostic ignored "-Wunreachable-code"
@@ -41,6 +43,12 @@
# endif
# endif
# ifdef __APPLE__
+ /* SQLite uses OSAtomicCompareAndSwapPtrBarrier from libkern/OSAtomic.h,
+ which has been deprecated since macOS 10.12. This will silence the
+ warning. */
+# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)
+# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+# endif
# include <Availability.h>
# if __MAC_OS_X_VERSION_MIN_REQUIRED < 1060
/* <libkern/OSAtomic.h> is included on OS X by sqlite3.c, and
diff --git a/subversion/libsvn_subr/ssl_client_cert_pw_providers.c b/subversion/libsvn_subr/ssl_client_cert_pw_providers.c
index 1626750fa80f..2fcfc8e40e35 100644
--- a/subversion/libsvn_subr/ssl_client_cert_pw_providers.c
+++ b/subversion/libsvn_subr/ssl_client_cert_pw_providers.c
@@ -36,7 +36,7 @@
#include "svn_private_config.h"
/*-----------------------------------------------------------------------*/
-/* File provider */
+/* File password provider */
/*-----------------------------------------------------------------------*/
/* Baton type for the ssl client cert passphrase provider. */
@@ -51,6 +51,13 @@ typedef struct ssl_client_cert_pw_file_provider_baton_t
apr_hash_t *plaintext_answers;
} ssl_client_cert_pw_file_provider_baton_t;
+/* The client cert password provider only deals with a password and
+ realm (the client cert filename), there is no username. The gnome
+ keyring backend based on libsecret requires a non-NULL username so
+ we have to invent one. An empty string is acceptable and doesn't
+ change the value stored by the kwallet backend. */
+#define DUMMY_USERNAME ""
+
/* This implements the svn_auth__password_get_t interface.
Set **PASSPHRASE to the plaintext passphrase retrieved from CREDS;
ignore other parameters. */
@@ -132,7 +139,8 @@ svn_auth__ssl_client_cert_pw_cache_get(void **credentials_p,
svn_boolean_t done;
SVN_ERR(passphrase_get(&done, &password, creds_hash, realmstring,
- NULL, parameters, non_interactive, pool));
+ DUMMY_USERNAME, parameters, non_interactive,
+ pool));
if (!done)
password = NULL;
}
@@ -293,7 +301,7 @@ svn_auth__ssl_client_cert_pw_cache_set(svn_boolean_t *saved,
if (may_save_passphrase)
{
SVN_ERR(passphrase_set(saved, creds_hash, realmstring,
- NULL, creds->password, parameters,
+ DUMMY_USERNAME, creds->password, parameters,
non_interactive, pool));
if (*saved && passtype)
diff --git a/subversion/libsvn_subr/stream.c b/subversion/libsvn_subr/stream.c
index 609d7af72c94..be10fc7cff5d 100644
--- a/subversion/libsvn_subr/stream.c
+++ b/subversion/libsvn_subr/stream.c
@@ -922,7 +922,7 @@ readline_apr_lf(apr_file_t *file,
}
/* Otherwise, prepare to read the next chunk. */
- svn_stringbuf_ensure(buf, buf->blocksize + SVN__LINE_CHUNK_SIZE);
+ svn_stringbuf_ensure(buf, buf->len + SVN__LINE_CHUNK_SIZE);
}
}
@@ -982,7 +982,7 @@ readline_apr_generic(apr_file_t *file,
}
/* Prepare to read the next chunk. */
- svn_stringbuf_ensure(buf, buf->blocksize + SVN__LINE_CHUNK_SIZE);
+ svn_stringbuf_ensure(buf, buf->len + SVN__LINE_CHUNK_SIZE);
}
}
@@ -1468,10 +1468,10 @@ seek_handler_checksum(void *baton, const svn_stream_mark_t *mark)
else
{
if (btn->read_ctx)
- svn_checksum_ctx_reset(btn->read_ctx);
+ SVN_ERR(svn_checksum_ctx_reset(btn->read_ctx));
if (btn->write_ctx)
- svn_checksum_ctx_reset(btn->write_ctx);
+ SVN_ERR(svn_checksum_ctx_reset(btn->write_ctx));
SVN_ERR(svn_stream_reset(btn->proxy));
}
diff --git a/subversion/libsvn_subr/sysinfo.c b/subversion/libsvn_subr/sysinfo.c
index a5c302d1e2b7..1f826e9e54b3 100644
--- a/subversion/libsvn_subr/sysinfo.c
+++ b/subversion/libsvn_subr/sysinfo.c
@@ -1,3 +1,4 @@
+
/*
* sysinfo.c : information about the running system
*
@@ -51,10 +52,22 @@
#include "sysinfo.h"
#include "svn_private_config.h"
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+
#if HAVE_SYS_UTSNAME_H
#include <sys/utsname.h>
#endif
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+#if HAVE_ELF_H
+#include <elf.h>
+#endif
+
#ifdef SVN_HAVE_MACOS_PLIST
#include <CoreFoundation/CoreFoundation.h>
#include <AvailabilityMacros.h>
@@ -92,6 +105,7 @@ static const apr_array_header_t *macos_shared_libs(apr_pool_t *pool);
#if __linux__
static const char *linux_release_name(apr_pool_t *pool);
+static const apr_array_header_t *linux_shared_libs(apr_pool_t *pool);
#endif
const char *
@@ -187,6 +201,8 @@ svn_sysinfo__loaded_libs(apr_pool_t *pool)
return win32_shared_libs(pool);
#elif defined(SVN_HAVE_MACHO_ITERATE)
return macos_shared_libs(pool);
+#elif __linux__
+ return linux_shared_libs(pool);
#else
return NULL;
#endif
@@ -300,6 +316,31 @@ release_name_from_uname(apr_pool_t *pool)
#if __linux__
+/* Find the first whitespace character in a stringbuf.
+ Analogous to svn_stringbuf_first_non_whitespace. */
+static apr_size_t
+stringbuf_first_whitespace(const svn_stringbuf_t *str)
+{
+ apr_size_t i;
+ for (i = 0; i < str->len; ++i)
+ {
+ if (svn_ctype_isspace(str->data[i]))
+ return i;
+ }
+ return str->len;
+}
+
+/* Skip a whitespace-delimited field in a stringbuf. */
+static void
+stringbuf_skip_whitespace_field(svn_stringbuf_t *str)
+{
+ apr_size_t i;
+ i = stringbuf_first_whitespace(str);
+ svn_stringbuf_leftchop(str, i);
+ i = svn_stringbuf_first_non_whitespace(str);
+ svn_stringbuf_leftchop(str, i);
+}
+
/* Split a stringbuf into a key/value pair.
Return the key, leaving the stripped value in the stringbuf. */
static const char *
@@ -635,6 +676,168 @@ linux_release_name(apr_pool_t *pool)
return apr_psprintf(pool, "%s [%s]", release_name, uname_release);
}
+
+#if HAVE_ELF_H
+/* Parse a hexadecimal number as a pointer value. */
+static const unsigned char *
+parse_pointer_value(const char *start, const char *limit, char **end)
+{
+ const unsigned char *ptr;
+ const apr_uint64_t val = (apr_uint64_t)apr_strtoi64(start, end, 16);
+
+ if (errno /* overflow */
+ || *end == start /* no valid digits */
+ || *end >= limit) /* representation too long */
+ return NULL;
+
+ ptr = (const unsigned char*)val;
+ if (val != (apr_uint64_t)ptr) /* truncated value */
+ return NULL;
+
+ return ptr;
+}
+
+/* Read the ELF header at the mapping position to check if this is a shared
+ library. We only look at the ELF identification and the type. The format is
+ described here:
+ http://www.skyfree.org/linux/references/ELF_Format.pdf
+*/
+static svn_boolean_t
+check_elf_header(const unsigned char *map_start,
+ const unsigned char *map_end)
+{
+ /* A union of all known ELF header types, for size checks. */
+ union max_elf_header_size_t
+ {
+ Elf32_Ehdr header_32;
+ Elf64_Ehdr header_64;
+ };
+
+ /* Check the size of the mapping and the ELF magic tag. */
+ if (map_end < map_start
+ || map_end - map_start < sizeof(union max_elf_header_size_t)
+ || memcmp(map_start, ELFMAG, SELFMAG))
+ {
+ return FALSE;
+ }
+
+ /* Check that this is an ELF shared library or executable file. This also
+ implicitly checks that the data encoding of the current process is the
+ same as in the loaded library. */
+ if (map_start[EI_CLASS] == ELFCLASS32)
+ {
+ const Elf32_Ehdr *hdr = (void*)map_start;
+ return (hdr->e_type == ET_DYN || hdr->e_type == ET_EXEC);
+ }
+ else if (map_start[EI_CLASS] == ELFCLASS64)
+ {
+ const Elf64_Ehdr *hdr = (void*)map_start;
+ return (hdr->e_type == ET_DYN || hdr->e_type == ET_EXEC);
+ }
+
+ return FALSE;
+}
+#endif /* HAVE_ELF_H */
+
+static const apr_array_header_t *
+linux_shared_libs(apr_pool_t *pool)
+{
+ /* Read the list of loaded modules from /proc/[pid]/maps
+ The format is described here:
+ http://man7.org/linux/man-pages/man5/proc.5.html
+ */
+
+ const char *maps = apr_psprintf(pool, "/proc/%ld/maps", (long)getpid());
+ apr_array_header_t *result = NULL;
+ svn_boolean_t eof = FALSE;
+ svn_stream_t *stream;
+ svn_error_t *err;
+
+ err = svn_stream_open_readonly(&stream, maps, pool, pool);
+ if (err)
+ {
+ svn_error_clear(err);
+ return NULL;
+ }
+
+ /* Each line in /proc/[pid]/maps consists of whitespace-delimited fields. */
+ while (!eof)
+ {
+ svn_stringbuf_t *line;
+
+#if HAVE_ELF_H
+ const unsigned char *map_start;
+ const unsigned char *map_end;
+#endif
+
+ err = svn_stream_readline(stream, &line, "\n", &eof, pool);
+ if (err)
+ {
+ svn_error_clear(err);
+ return NULL;
+ }
+
+#if HAVE_ELF_H
+ /* Address: The mapped memory address range. */
+ {
+ const char *const limit = line->data + line->len;
+ char *end;
+
+ /* The start of the address range */
+ map_start = parse_pointer_value(line->data, limit, &end);
+ if (!map_start || *end != '-')
+ continue;
+
+ /* The end of the address range */
+ map_end = parse_pointer_value(end + 1, limit, &end);
+ if (!map_end || !svn_ctype_isspace(*end))
+ continue;
+ }
+#endif
+
+ stringbuf_skip_whitespace_field(line); /* skip address */
+
+ /* Permissions: The memory region must be readable and executable. */
+ if (line->len < 4 || line->data[0] != 'r' || line->data[2] != 'x')
+ continue;
+
+ stringbuf_skip_whitespace_field(line); /* skip perms */
+ stringbuf_skip_whitespace_field(line); /* skip offset */
+ stringbuf_skip_whitespace_field(line); /* skip device */
+
+ /* I-Node: If it is 0, there is no file associated with the region. */
+ if (line->len < 2
+ || (line->data[0] == '0' && svn_ctype_isspace(line->data[1])))
+ continue;
+
+ stringbuf_skip_whitespace_field(line); /* skip inode */
+
+ /* Consider only things that look like absolute paths.
+ Files that were removed since the process was created (due to an
+ upgrade, for example) are marked as '(deleted)'. */
+ if (line->data[0] == '/')
+ {
+ svn_version_ext_loaded_lib_t *lib;
+
+#if HAVE_ELF_H
+ if (!check_elf_header(map_start, map_end))
+ continue;
+#endif
+
+ /* We've done our best to find a mapped shared library. */
+ if (!result)
+ {
+ result = apr_array_make(pool, 32, sizeof(*lib));
+ }
+ lib = &APR_ARRAY_PUSH(result, svn_version_ext_loaded_lib_t);
+ lib->name = line->data;
+ lib->version = NULL;
+ }
+ }
+
+ svn_error_clear(svn_stream_close(stream));
+ return result;
+}
#endif /* __linux__ */
@@ -1122,42 +1325,71 @@ value_from_dict(CFDictionaryRef plist, CFStringRef key, apr_pool_t *pool)
return value;
}
-/* Return the commercial name of the OS, given the version number in
+/* Return the minor version the operating system, given the number in
a format that matches the regular expression /^10\.\d+(\..*)?$/ */
-static const char *
-release_name_from_version(const char *osver)
+static int
+macos_minor_version(const char *osver)
{
char *end = NULL;
unsigned long num = strtoul(osver, &end, 10);
if (!end || *end != '.' || num != 10)
- return NULL;
+ return -1;
osver = end + 1;
end = NULL;
num = strtoul(osver, &end, 10);
if (!end || (*end && *end != '.'))
- return NULL;
+ return -1;
+
+ return (int)num;
+}
- /* See http://en.wikipedia.org/wiki/History_of_OS_X#Release_timeline */
- switch(num)
+/* Return the product name of the operating system. */
+static const char *
+product_name_from_minor_version(int minor, const char* product_name)
+{
+ /* We can only do this if we know the official product name. */
+ if (0 != strcmp(product_name, "Mac OS X"))
+ return product_name;
+
+ if (minor <= 7)
+ return product_name;
+
+ if (minor <= 11)
+ return "OS X";
+
+ return "macOS";
+}
+
+/* Return the commercial name of the operating system. */
+static const char *
+release_name_from_minor_version(int minor, const char* product_name)
+{
+ /* We can only do this if we know the official product name. */
+ if (0 == strcmp(product_name, "Mac OS X"))
{
- case 0: return "Cheetah";
- case 1: return "Puma";
- case 2: return "Jaguar";
- case 3: return "Panther";
- case 4: return "Tiger";
- case 5: return "Leopard";
- case 6: return "Snow Leopard";
- case 7: return "Lion";
- case 8: return "Mountain Lion";
- case 9: return "Mavericks";
- case 10: return "Yosemite";
- case 11: return "El Capitan";
- case 12: return "Sierra";
- case 13: return "High Sierra";
+ /* See https://en.wikipedia.org/wiki/MacOS_version_history#Releases */
+ switch(minor)
+ {
+ case 0: return "Cheetah";
+ case 1: return "Puma";
+ case 2: return "Jaguar";
+ case 3: return "Panther";
+ case 4: return "Tiger";
+ case 5: return "Leopard";
+ case 6: return "Snow Leopard";
+ case 7: return "Lion";
+ case 8: return "Mountain Lion";
+ case 9: return "Mavericks";
+ case 10: return "Yosemite";
+ case 11: return "El Capitan";
+ case 12: return "Sierra";
+ case 13: return "High Sierra";
+ case 14: return "Mojave";
+ case 15: return "Catalina";
+ }
}
-
return NULL;
}
@@ -1180,20 +1412,23 @@ macos_release_name(apr_pool_t *pool)
CFSTR("ProductBuildVersion"),
pool);
const char *release;
+ int minor_version;
if (!osver)
osver = value_from_dict(plist, CFSTR("ProductVersion"), pool);
- release = release_name_from_version(osver);
+ minor_version = macos_minor_version(osver);
+ release = release_name_from_minor_version(minor_version, osname);
+ osname = product_name_from_minor_version(minor_version, osname);
CFRelease(plist);
return apr_psprintf(pool, "%s%s%s%s%s%s%s%s",
(osname ? osname : ""),
- (osver ? (osname ? " " : "") : ""),
- (osver ? osver : ""),
- (release ? (osname||osver ? " " : "") : ""),
+ (release ? (osname ? " " : "") : ""),
(release ? release : ""),
+ (osver ? (osname||release ? " " : "") : ""),
+ (osver ? osver : ""),
(build
- ? (osname||osver||release ? ", " : "")
+ ? (osname||release||osver ? ", " : "")
: ""),
(build
? (server ? "server build " : "build ")
diff --git a/subversion/libsvn_subr/utf.c b/subversion/libsvn_subr/utf.c
index a0b0dc784d62..5164f649edbc 100644
--- a/subversion/libsvn_subr/utf.c
+++ b/subversion/libsvn_subr/utf.c
@@ -960,7 +960,7 @@ svn_utf__cstring_from_utf8_fuzzy(const char *src,
/* ### Check the client locale, maybe we can avoid that second
* conversion! See Ulrich Drepper's patch at
- * http://subversion.tigris.org/issues/show_bug.cgi?id=807.
+ * https://issues.apache.org/jira/browse/SVN-807.
*/
}
diff --git a/subversion/libsvn_subr/utf8proc/utf8proc_data.c b/subversion/libsvn_subr/utf8proc/utf8proc_data.c
index 63ce17eda9f9..b7a66f4d64f3 100644
--- a/subversion/libsvn_subr/utf8proc/utf8proc_data.c
+++ b/subversion/libsvn_subr/utf8proc/utf8proc_data.c
@@ -1,6596 +1,6596 @@
UTF8PROC_DATA
const utf8proc_uint16_t utf8proc_sequences[] = {
- 97, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119,
- 120, 121, 122, 32, 32, 776, 32, 772,
- 50, 51, 32, 769, 956, 32, 807, 49,
- 49, 8260, 52, 49, 8260, 50, 51, 8260,
- 52, 65, 768, 224, 65, 769, 225, 65,
- 770, 226, 65, 771, 227, 65, 776, 228,
- 65, 778, 229, 230, 67, 807, 231, 69,
- 768, 232, 69, 769, 233, 69, 770, 234,
- 69, 776, 235, 73, 768, 236, 73, 769,
- 237, 73, 770, 238, 73, 776, 239, 240,
- 78, 771, 241, 79, 768, 242, 79, 769,
- 243, 79, 770, 244, 79, 771, 245, 79,
- 776, 246, 248, 85, 768, 249, 85, 769,
- 250, 85, 770, 251, 85, 776, 252, 89,
- 769, 253, 254, 115, 115, 97, 768, 97,
- 769, 97, 770, 97, 771, 97, 776, 97,
- 778, 99, 807, 101, 768, 101, 769, 101,
- 770, 101, 776, 105, 768, 105, 769, 105,
- 770, 105, 776, 110, 771, 111, 768, 111,
- 769, 111, 770, 111, 771, 111, 776, 117,
- 768, 117, 769, 117, 770, 117, 776, 121,
- 769, 121, 776, 65, 772, 257, 97, 772,
- 65, 774, 259, 97, 774, 65, 808, 261,
- 97, 808, 67, 769, 263, 99, 769, 67,
- 770, 265, 99, 770, 67, 775, 267, 99,
- 775, 67, 780, 269, 99, 780, 68, 780,
- 271, 100, 780, 273, 69, 772, 275, 101,
- 772, 69, 774, 277, 101, 774, 69, 775,
- 279, 101, 775, 69, 808, 281, 101, 808,
- 69, 780, 283, 101, 780, 71, 770, 285,
- 103, 770, 71, 774, 287, 103, 774, 71,
- 775, 289, 103, 775, 71, 807, 291, 103,
- 807, 72, 770, 293, 104, 770, 295, 73,
- 771, 297, 105, 771, 73, 772, 299, 105,
- 772, 73, 774, 301, 105, 774, 73, 808,
- 303, 105, 808, 73, 775, 105, 775, 73,
- 74, 307, 105, 106, 74, 770, 309, 106,
- 770, 75, 807, 311, 107, 807, 76, 769,
- 314, 108, 769, 76, 807, 316, 108, 807,
- 76, 780, 318, 108, 780, 76, 183, 320,
- 108, 183, 322, 78, 769, 324, 110, 769,
- 78, 807, 326, 110, 807, 78, 780, 328,
- 110, 780, 700, 110, 331, 79, 772, 333,
- 111, 772, 79, 774, 335, 111, 774, 79,
- 779, 337, 111, 779, 339, 82, 769, 341,
- 114, 769, 82, 807, 343, 114, 807, 82,
- 780, 345, 114, 780, 83, 769, 347, 115,
- 769, 83, 770, 349, 115, 770, 83, 807,
- 351, 115, 807, 83, 780, 353, 115, 780,
- 84, 807, 355, 116, 807, 84, 780, 357,
- 116, 780, 359, 85, 771, 361, 117, 771,
- 85, 772, 363, 117, 772, 85, 774, 365,
- 117, 774, 85, 778, 367, 117, 778, 85,
- 779, 369, 117, 779, 85, 808, 371, 117,
- 808, 87, 770, 373, 119, 770, 89, 770,
- 375, 121, 770, 89, 776, 255, 90, 769,
- 378, 122, 769, 90, 775, 380, 122, 775,
- 90, 780, 382, 122, 780, 595, 387, 389,
- 596, 392, 598, 599, 396, 477, 601, 603,
- 402, 608, 611, 617, 616, 409, 623, 626,
- 629, 79, 795, 417, 111, 795, 419, 421,
- 640, 424, 643, 429, 648, 85, 795, 432,
- 117, 795, 650, 651, 436, 438, 658, 441,
- 445, 68, 381, 454, 68, 382, 100, 382,
- 76, 74, 457, 76, 106, 108, 106, 78,
- 74, 460, 78, 106, 110, 106, 65, 780,
- 462, 97, 780, 73, 780, 464, 105, 780,
- 79, 780, 466, 111, 780, 85, 780, 468,
- 117, 780, 220, 772, 470, 252, 772, 220,
- 769, 472, 252, 769, 220, 780, 474, 252,
- 780, 220, 768, 476, 252, 768, 196, 772,
- 479, 228, 772, 550, 772, 481, 551, 772,
- 198, 772, 483, 230, 772, 485, 71, 780,
- 487, 103, 780, 75, 780, 489, 107, 780,
- 79, 808, 491, 111, 808, 490, 772, 493,
- 491, 772, 439, 780, 495, 658, 780, 106,
- 780, 68, 90, 499, 68, 122, 100, 122,
- 71, 769, 501, 103, 769, 405, 447, 78,
- 768, 505, 110, 768, 197, 769, 507, 229,
- 769, 198, 769, 509, 230, 769, 216, 769,
- 511, 248, 769, 65, 783, 513, 97, 783,
- 65, 785, 515, 97, 785, 69, 783, 517,
- 101, 783, 69, 785, 519, 101, 785, 73,
- 783, 521, 105, 783, 73, 785, 523, 105,
- 785, 79, 783, 525, 111, 783, 79, 785,
- 527, 111, 785, 82, 783, 529, 114, 783,
- 82, 785, 531, 114, 785, 85, 783, 533,
- 117, 783, 85, 785, 535, 117, 785, 83,
- 806, 537, 115, 806, 84, 806, 539, 116,
- 806, 541, 72, 780, 543, 104, 780, 414,
- 547, 549, 65, 775, 551, 97, 775, 69,
- 807, 553, 101, 807, 214, 772, 555, 246,
- 772, 213, 772, 557, 245, 772, 79, 775,
- 559, 111, 775, 558, 772, 561, 559, 772,
- 89, 772, 563, 121, 772, 11365, 572, 410,
- 11366, 578, 384, 649, 652, 583, 585, 587,
- 589, 591, 614, 633, 635, 641, 32, 774,
- 32, 775, 32, 778, 32, 808, 32, 771,
- 32, 779, 661, 768, 769, 787, 776, 769,
- 953, 881, 883, 697, 887, 32, 837, 59,
- 1011, 168, 769, 913, 769, 940, 183, 917,
- 769, 941, 919, 769, 942, 921, 769, 943,
- 927, 769, 972, 933, 769, 973, 937, 769,
- 974, 970, 769, 953, 776, 769, 945, 946,
- 947, 948, 949, 950, 951, 952, 954, 955,
- 957, 958, 959, 960, 961, 963, 964, 965,
- 966, 967, 968, 969, 921, 776, 970, 933,
- 776, 971, 945, 769, 949, 769, 951, 769,
- 953, 769, 971, 769, 965, 776, 769, 953,
- 776, 965, 776, 959, 769, 965, 769, 969,
- 769, 983, 933, 978, 769, 978, 776, 985,
- 987, 989, 991, 993, 995, 997, 999, 1001,
- 1003, 1005, 1007, 962, 920, 1016, 931, 1010,
- 1019, 891, 892, 893, 1045, 768, 1104, 1045,
- 776, 1105, 1106, 1043, 769, 1107, 1108, 1109,
- 1110, 1030, 776, 1111, 1112, 1113, 1114, 1115,
- 1050, 769, 1116, 1048, 768, 1117, 1059, 774,
- 1118, 1119, 1072, 1073, 1074, 1075, 1076, 1077,
- 1078, 1079, 1080, 1048, 774, 1081, 1082, 1083,
- 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091,
- 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099,
- 1100, 1101, 1102, 1103, 1080, 774, 1077, 768,
- 1077, 776, 1075, 769, 1110, 776, 1082, 769,
- 1080, 768, 1091, 774, 1121, 1123, 1125, 1127,
- 1129, 1131, 1133, 1135, 1137, 1139, 1141, 1140,
- 783, 1143, 1141, 783, 1145, 1147, 1149, 1151,
- 1153, 1163, 1165, 1167, 1169, 1171, 1173, 1175,
- 1177, 1179, 1181, 1183, 1185, 1187, 1189, 1191,
- 1193, 1195, 1197, 1199, 1201, 1203, 1205, 1207,
- 1209, 1211, 1213, 1215, 1231, 1046, 774, 1218,
- 1078, 774, 1220, 1222, 1224, 1226, 1228, 1230,
- 1040, 774, 1233, 1072, 774, 1040, 776, 1235,
- 1072, 776, 1237, 1045, 774, 1239, 1077, 774,
- 1241, 1240, 776, 1243, 1241, 776, 1046, 776,
- 1245, 1078, 776, 1047, 776, 1247, 1079, 776,
- 1249, 1048, 772, 1251, 1080, 772, 1048, 776,
- 1253, 1080, 776, 1054, 776, 1255, 1086, 776,
- 1257, 1256, 776, 1259, 1257, 776, 1069, 776,
- 1261, 1101, 776, 1059, 772, 1263, 1091, 772,
- 1059, 776, 1265, 1091, 776, 1059, 779, 1267,
- 1091, 779, 1063, 776, 1269, 1095, 776, 1271,
- 1067, 776, 1273, 1099, 776, 1275, 1277, 1279,
- 1281, 1283, 1285, 1287, 1289, 1291, 1293, 1295,
- 1297, 1299, 1301, 1303, 1305, 1307, 1309, 1311,
- 1313, 1315, 1317, 1319, 1321, 1323, 1325, 1327,
- 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384,
- 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392,
- 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400,
- 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408,
- 1409, 1410, 1411, 1412, 1413, 1414, 1381, 1410,
- 1575, 1619, 1575, 1620, 1608, 1620, 1575, 1621,
- 1610, 1620, 1575, 1652, 1608, 1652, 1735, 1652,
- 1610, 1652, 1749, 1620, 1729, 1620, 1746, 1620,
- 2344, 2364, 2352, 2364, 2355, 2364, 2325, 2364,
- 2326, 2364, 2327, 2364, 2332, 2364, 2337, 2364,
- 2338, 2364, 2347, 2364, 2351, 2364, 2503, 2494,
- 2503, 2519, 2465, 2492, 2466, 2492, 2479, 2492,
- 2610, 2620, 2616, 2620, 2582, 2620, 2583, 2620,
- 2588, 2620, 2603, 2620, 2887, 2902, 2887, 2878,
- 2887, 2903, 2849, 2876, 2850, 2876, 2962, 3031,
- 3014, 3006, 3015, 3006, 3014, 3031, 3142, 3158,
- 3263, 3285, 3270, 3285, 3270, 3286, 3270, 3266,
- 3274, 3285, 3398, 3390, 3399, 3390, 3398, 3415,
- 3545, 3530, 3545, 3535, 3548, 3530, 3545, 3551,
- 3661, 3634, 3789, 3762, 3755, 3737, 3755, 3745,
- 3851, 3906, 4023, 3916, 4023, 3921, 4023, 3926,
- 4023, 3931, 4023, 3904, 4021, 3953, 3954, 3953,
- 3956, 4018, 3968, 4018, 3969, 4019, 3968, 4019,
- 3969, 3953, 3968, 3986, 4023, 3996, 4023, 4001,
- 4023, 4006, 4023, 4011, 4023, 3984, 4021, 4133,
- 4142, 11520, 11521, 11522, 11523, 11524, 11525, 11526,
- 11527, 11528, 11529, 11530, 11531, 11532, 11533, 11534,
- 11535, 11536, 11537, 11538, 11539, 11540, 11541, 11542,
- 11543, 11544, 11545, 11546, 11547, 11548, 11549, 11550,
- 11551, 11552, 11553, 11554, 11555, 11556, 11557, 11559,
- 11565, 4316, 5104, 5105, 5106, 5107, 5108, 5109,
- 6917, 6965, 6919, 6965, 6921, 6965, 6923, 6965,
- 6925, 6965, 6929, 6965, 6970, 6965, 6972, 6965,
- 6974, 6965, 6975, 6965, 6978, 6965, 42571, 65,
- 198, 66, 68, 69, 398, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 546, 80,
- 82, 84, 85, 87, 592, 593, 7426, 604,
- 7446, 7447, 7453, 7461, 594, 597, 607, 609,
- 613, 618, 7547, 669, 621, 7557, 671, 625,
- 624, 627, 628, 632, 642, 427, 7452, 656,
- 657, 65, 805, 7681, 97, 805, 66, 775,
- 7683, 98, 775, 66, 803, 7685, 98, 803,
- 66, 817, 7687, 98, 817, 199, 769, 7689,
- 231, 769, 68, 775, 7691, 100, 775, 68,
- 803, 7693, 100, 803, 68, 817, 7695, 100,
- 817, 68, 807, 7697, 100, 807, 68, 813,
- 7699, 100, 813, 274, 768, 7701, 275, 768,
- 274, 769, 7703, 275, 769, 69, 813, 7705,
- 101, 813, 69, 816, 7707, 101, 816, 552,
- 774, 7709, 553, 774, 70, 775, 7711, 102,
- 775, 71, 772, 7713, 103, 772, 72, 775,
- 7715, 104, 775, 72, 803, 7717, 104, 803,
- 72, 776, 7719, 104, 776, 72, 807, 7721,
- 104, 807, 72, 814, 7723, 104, 814, 73,
- 816, 7725, 105, 816, 207, 769, 7727, 239,
- 769, 75, 769, 7729, 107, 769, 75, 803,
- 7731, 107, 803, 75, 817, 7733, 107, 817,
- 76, 803, 7735, 108, 803, 7734, 772, 7737,
- 7735, 772, 76, 817, 7739, 108, 817, 76,
- 813, 7741, 108, 813, 77, 769, 7743, 109,
- 769, 77, 775, 7745, 109, 775, 77, 803,
- 7747, 109, 803, 78, 775, 7749, 110, 775,
- 78, 803, 7751, 110, 803, 78, 817, 7753,
- 110, 817, 78, 813, 7755, 110, 813, 213,
- 769, 7757, 245, 769, 213, 776, 7759, 245,
- 776, 332, 768, 7761, 333, 768, 332, 769,
- 7763, 333, 769, 80, 769, 7765, 112, 769,
- 80, 775, 7767, 112, 775, 82, 775, 7769,
- 114, 775, 82, 803, 7771, 114, 803, 7770,
- 772, 7773, 7771, 772, 82, 817, 7775, 114,
- 817, 83, 775, 7777, 115, 775, 83, 803,
- 7779, 115, 803, 346, 775, 7781, 347, 775,
- 352, 775, 7783, 353, 775, 7778, 775, 7785,
- 7779, 775, 84, 775, 7787, 116, 775, 84,
- 803, 7789, 116, 803, 84, 817, 7791, 116,
- 817, 84, 813, 7793, 116, 813, 85, 804,
- 7795, 117, 804, 85, 816, 7797, 117, 816,
- 85, 813, 7799, 117, 813, 360, 769, 7801,
- 361, 769, 362, 776, 7803, 363, 776, 86,
- 771, 7805, 118, 771, 86, 803, 7807, 118,
- 803, 87, 768, 7809, 119, 768, 87, 769,
- 7811, 119, 769, 87, 776, 7813, 119, 776,
- 87, 775, 7815, 119, 775, 87, 803, 7817,
- 119, 803, 88, 775, 7819, 120, 775, 88,
- 776, 7821, 120, 776, 89, 775, 7823, 121,
- 775, 90, 770, 7825, 122, 770, 90, 803,
- 7827, 122, 803, 90, 817, 7829, 122, 817,
- 104, 817, 116, 776, 119, 778, 121, 778,
- 97, 702, 383, 775, 223, 65, 803, 7841,
- 97, 803, 65, 777, 7843, 97, 777, 194,
- 769, 7845, 226, 769, 194, 768, 7847, 226,
- 768, 194, 777, 7849, 226, 777, 194, 771,
- 7851, 226, 771, 7840, 770, 7853, 7841, 770,
- 258, 769, 7855, 259, 769, 258, 768, 7857,
- 259, 768, 258, 777, 7859, 259, 777, 258,
- 771, 7861, 259, 771, 7840, 774, 7863, 7841,
- 774, 69, 803, 7865, 101, 803, 69, 777,
- 7867, 101, 777, 69, 771, 7869, 101, 771,
- 202, 769, 7871, 234, 769, 202, 768, 7873,
- 234, 768, 202, 777, 7875, 234, 777, 202,
- 771, 7877, 234, 771, 7864, 770, 7879, 7865,
- 770, 73, 777, 7881, 105, 777, 73, 803,
- 7883, 105, 803, 79, 803, 7885, 111, 803,
- 79, 777, 7887, 111, 777, 212, 769, 7889,
- 244, 769, 212, 768, 7891, 244, 768, 212,
- 777, 7893, 244, 777, 212, 771, 7895, 244,
- 771, 7884, 770, 7897, 7885, 770, 416, 769,
- 7899, 417, 769, 416, 768, 7901, 417, 768,
- 416, 777, 7903, 417, 777, 416, 771, 7905,
- 417, 771, 416, 803, 7907, 417, 803, 85,
- 803, 7909, 117, 803, 85, 777, 7911, 117,
- 777, 431, 769, 7913, 432, 769, 431, 768,
- 7915, 432, 768, 431, 777, 7917, 432, 777,
- 431, 771, 7919, 432, 771, 431, 803, 7921,
- 432, 803, 89, 768, 7923, 121, 768, 89,
- 803, 7925, 121, 803, 89, 777, 7927, 121,
- 777, 89, 771, 7929, 121, 771, 7931, 7933,
- 7935, 945, 787, 945, 788, 7936, 768, 7937,
- 768, 7936, 769, 7937, 769, 7936, 834, 7937,
- 834, 913, 787, 7936, 913, 788, 7937, 7944,
- 768, 7938, 7945, 768, 7939, 7944, 769, 7940,
- 7945, 769, 7941, 7944, 834, 7942, 7945, 834,
- 7943, 949, 787, 949, 788, 7952, 768, 7953,
- 768, 7952, 769, 7953, 769, 917, 787, 7952,
- 917, 788, 7953, 7960, 768, 7954, 7961, 768,
- 7955, 7960, 769, 7956, 7961, 769, 7957, 951,
- 787, 951, 788, 7968, 768, 7969, 768, 7968,
- 769, 7969, 769, 7968, 834, 7969, 834, 919,
- 787, 7968, 919, 788, 7969, 7976, 768, 7970,
- 7977, 768, 7971, 7976, 769, 7972, 7977, 769,
- 7973, 7976, 834, 7974, 7977, 834, 7975, 953,
- 787, 953, 788, 7984, 768, 7985, 768, 7984,
- 769, 7985, 769, 7984, 834, 7985, 834, 921,
- 787, 7984, 921, 788, 7985, 7992, 768, 7986,
- 7993, 768, 7987, 7992, 769, 7988, 7993, 769,
- 7989, 7992, 834, 7990, 7993, 834, 7991, 959,
- 787, 959, 788, 8000, 768, 8001, 768, 8000,
- 769, 8001, 769, 927, 787, 8000, 927, 788,
- 8001, 8008, 768, 8002, 8009, 768, 8003, 8008,
- 769, 8004, 8009, 769, 8005, 965, 787, 965,
- 788, 8016, 768, 965, 787, 768, 8017, 768,
- 8016, 769, 965, 787, 769, 8017, 769, 8016,
- 834, 965, 787, 834, 8017, 834, 933, 788,
- 8017, 8025, 768, 8019, 8025, 769, 8021, 8025,
- 834, 8023, 969, 787, 969, 788, 8032, 768,
- 8033, 768, 8032, 769, 8033, 769, 8032, 834,
- 8033, 834, 937, 787, 8032, 937, 788, 8033,
- 8040, 768, 8034, 8041, 768, 8035, 8040, 769,
- 8036, 8041, 769, 8037, 8040, 834, 8038, 8041,
- 834, 8039, 945, 768, 949, 768, 951, 768,
- 953, 768, 959, 768, 965, 768, 969, 768,
- 7936, 837, 7936, 953, 7937, 837, 7937, 953,
- 7938, 837, 7938, 953, 7939, 837, 7939, 953,
- 7940, 837, 7940, 953, 7941, 837, 7941, 953,
- 7942, 837, 7942, 953, 7943, 837, 7943, 953,
- 7944, 837, 8064, 7945, 837, 8065, 7946, 837,
- 8066, 7947, 837, 8067, 7948, 837, 8068, 7949,
- 837, 8069, 7950, 837, 8070, 7951, 837, 8071,
- 7968, 837, 7968, 953, 7969, 837, 7969, 953,
- 7970, 837, 7970, 953, 7971, 837, 7971, 953,
- 7972, 837, 7972, 953, 7973, 837, 7973, 953,
- 7974, 837, 7974, 953, 7975, 837, 7975, 953,
- 7976, 837, 8080, 7977, 837, 8081, 7978, 837,
- 8082, 7979, 837, 8083, 7980, 837, 8084, 7981,
- 837, 8085, 7982, 837, 8086, 7983, 837, 8087,
- 8032, 837, 8032, 953, 8033, 837, 8033, 953,
- 8034, 837, 8034, 953, 8035, 837, 8035, 953,
- 8036, 837, 8036, 953, 8037, 837, 8037, 953,
- 8038, 837, 8038, 953, 8039, 837, 8039, 953,
- 8040, 837, 8096, 8041, 837, 8097, 8042, 837,
- 8098, 8043, 837, 8099, 8044, 837, 8100, 8045,
- 837, 8101, 8046, 837, 8102, 8047, 837, 8103,
- 945, 774, 945, 772, 8048, 837, 8048, 953,
- 945, 837, 945, 953, 940, 837, 940, 953,
- 945, 834, 8118, 837, 945, 834, 953, 913,
- 774, 8112, 913, 772, 8113, 913, 768, 8048,
- 902, 8049, 913, 837, 8115, 32, 787, 32,
- 834, 168, 834, 8052, 837, 8052, 953, 951,
- 837, 951, 953, 942, 837, 942, 953, 951,
- 834, 8134, 837, 951, 834, 953, 917, 768,
- 8050, 904, 8051, 919, 768, 8052, 905, 8053,
- 919, 837, 8131, 8127, 768, 8127, 769, 8127,
- 834, 953, 774, 953, 772, 970, 768, 953,
- 776, 768, 912, 953, 834, 970, 834, 953,
- 776, 834, 921, 774, 8144, 921, 772, 8145,
- 921, 768, 8054, 906, 8055, 8190, 768, 8190,
- 769, 8190, 834, 965, 774, 965, 772, 971,
- 768, 965, 776, 768, 944, 961, 787, 961,
- 788, 965, 834, 971, 834, 965, 776, 834,
- 933, 774, 8160, 933, 772, 8161, 933, 768,
- 8058, 910, 8059, 929, 788, 8165, 168, 768,
- 901, 96, 8060, 837, 8060, 953, 969, 837,
- 969, 953, 974, 837, 974, 953, 969, 834,
- 8182, 837, 969, 834, 953, 927, 768, 8056,
- 908, 8057, 937, 768, 8060, 911, 8061, 937,
- 837, 8179, 180, 32, 788, 8194, 8195, 8208,
- 32, 819, 46, 46, 46, 46, 46, 46,
- 8242, 8242, 8242, 8242, 8242, 8245, 8245, 8245,
- 8245, 8245, 33, 33, 32, 773, 63, 63,
- 63, 33, 33, 63, 8242, 8242, 8242, 8242,
- 48, 52, 53, 54, 55, 56, 57, 43,
- 8722, 61, 40, 41, 82, 115, 97, 47,
- 99, 97, 47, 115, 67, 176, 67, 99,
- 47, 111, 99, 47, 117, 400, 176, 70,
- 78, 111, 81, 83, 77, 84, 69, 76,
- 84, 77, 90, 937, 197, 70, 8526, 1488,
- 1489, 1490, 1491, 70, 65, 88, 915, 928,
- 8721, 49, 8260, 55, 49, 8260, 57, 49,
- 8260, 49, 48, 49, 8260, 51, 50, 8260,
- 51, 49, 8260, 53, 50, 8260, 53, 51,
- 8260, 53, 52, 8260, 53, 49, 8260, 54,
- 53, 8260, 54, 49, 8260, 56, 51, 8260,
- 56, 53, 8260, 56, 55, 8260, 56, 49,
- 8260, 8560, 73, 73, 8561, 73, 73, 73,
- 8562, 73, 86, 8563, 86, 8564, 86, 73,
- 8565, 86, 73, 73, 8566, 86, 73, 73,
- 73, 8567, 73, 88, 8568, 88, 8569, 88,
- 73, 8570, 88, 73, 73, 8571, 8572, 8573,
- 8574, 8575, 105, 105, 105, 105, 105, 105,
- 118, 118, 105, 118, 105, 105, 118, 105,
- 105, 105, 105, 120, 120, 105, 120, 105,
- 105, 8580, 48, 8260, 51, 8592, 824, 8594,
- 824, 8596, 824, 8656, 824, 8660, 824, 8658,
- 824, 8707, 824, 8712, 824, 8715, 824, 8739,
- 824, 8741, 824, 8747, 8747, 8747, 8747, 8747,
- 8750, 8750, 8750, 8750, 8750, 8764, 824, 8771,
- 824, 8773, 824, 8776, 824, 61, 824, 8801,
- 824, 8781, 824, 60, 824, 62, 824, 8804,
- 824, 8805, 824, 8818, 824, 8819, 824, 8822,
- 824, 8823, 824, 8826, 824, 8827, 824, 8834,
- 824, 8835, 824, 8838, 824, 8839, 824, 8866,
- 824, 8872, 824, 8873, 824, 8875, 824, 8828,
- 824, 8829, 824, 8849, 824, 8850, 824, 8882,
- 824, 8883, 824, 8884, 824, 8885, 824, 12296,
- 12297, 49, 48, 49, 49, 49, 50, 49,
- 51, 49, 52, 49, 53, 49, 54, 49,
- 55, 49, 56, 49, 57, 50, 48, 40,
- 49, 41, 40, 50, 41, 40, 51, 41,
- 40, 52, 41, 40, 53, 41, 40, 54,
- 41, 40, 55, 41, 40, 56, 41, 40,
- 57, 41, 40, 49, 48, 41, 40, 49,
- 49, 41, 40, 49, 50, 41, 40, 49,
- 51, 41, 40, 49, 52, 41, 40, 49,
- 53, 41, 40, 49, 54, 41, 40, 49,
- 55, 41, 40, 49, 56, 41, 40, 49,
- 57, 41, 40, 50, 48, 41, 49, 46,
- 50, 46, 51, 46, 52, 46, 53, 46,
- 54, 46, 55, 46, 56, 46, 57, 46,
- 49, 48, 46, 49, 49, 46, 49, 50,
- 46, 49, 51, 46, 49, 52, 46, 49,
- 53, 46, 49, 54, 46, 49, 55, 46,
- 49, 56, 46, 49, 57, 46, 50, 48,
- 46, 40, 97, 41, 40, 98, 41, 40,
- 99, 41, 40, 100, 41, 40, 101, 41,
- 40, 102, 41, 40, 103, 41, 40, 104,
- 41, 40, 105, 41, 40, 106, 41, 40,
- 107, 41, 40, 108, 41, 40, 109, 41,
- 40, 110, 41, 40, 111, 41, 40, 112,
- 41, 40, 113, 41, 40, 114, 41, 40,
- 115, 41, 40, 116, 41, 40, 117, 41,
- 40, 118, 41, 40, 119, 41, 40, 120,
- 41, 40, 121, 41, 40, 122, 41, 9424,
- 9425, 9426, 9427, 9428, 9429, 9430, 9431, 9432,
- 9433, 9434, 9435, 9436, 9437, 9438, 9439, 9440,
- 9441, 83, 9442, 9443, 9444, 9445, 9446, 9447,
- 89, 9448, 9449, 8747, 8747, 8747, 8747, 58,
- 58, 61, 61, 61, 61, 61, 61, 10973,
- 824, 11312, 11313, 11314, 11315, 11316, 11317, 11318,
- 11319, 11320, 11321, 11322, 11323, 11324, 11325, 11326,
- 11327, 11328, 11329, 11330, 11331, 11332, 11333, 11334,
- 11335, 11336, 11337, 11338, 11339, 11340, 11341, 11342,
- 11343, 11344, 11345, 11346, 11347, 11348, 11349, 11350,
- 11351, 11352, 11353, 11354, 11355, 11356, 11357, 11358,
- 11361, 619, 7549, 637, 11368, 11370, 11372, 11379,
- 11382, 575, 576, 11393, 11395, 11397, 11399, 11401,
- 11403, 11405, 11407, 11409, 11411, 11413, 11415, 11417,
- 11419, 11421, 11423, 11425, 11427, 11429, 11431, 11433,
- 11435, 11437, 11439, 11441, 11443, 11445, 11447, 11449,
- 11451, 11453, 11455, 11457, 11459, 11461, 11463, 11465,
- 11467, 11469, 11471, 11473, 11475, 11477, 11479, 11481,
- 11483, 11485, 11487, 11489, 11491, 11500, 11502, 11507,
- 11617, 27597, 40863, 19968, 20008, 20022, 20031, 20057,
- 20101, 20108, 20128, 20154, 20799, 20837, 20843, 20866,
- 20886, 20907, 20960, 20981, 20992, 21147, 21241, 21269,
- 21274, 21304, 21313, 21340, 21353, 21378, 21430, 21448,
- 21475, 22231, 22303, 22763, 22786, 22794, 22805, 22823,
- 22899, 23376, 23424, 23544, 23567, 23586, 23608, 23662,
- 23665, 24027, 24037, 24049, 24062, 24178, 24186, 24191,
- 24308, 24318, 24331, 24339, 24400, 24417, 24435, 24515,
- 25096, 25142, 25163, 25903, 25908, 25991, 26007, 26020,
- 26041, 26080, 26085, 26352, 26376, 26408, 27424, 27490,
- 27513, 27571, 27595, 27604, 27611, 27663, 27668, 27700,
- 28779, 29226, 29238, 29243, 29247, 29255, 29273, 29275,
- 29356, 29572, 29577, 29916, 29926, 29976, 29983, 29992,
- 30000, 30091, 30098, 30326, 30333, 30382, 30399, 30446,
- 30683, 30690, 30707, 31034, 31160, 31166, 31348, 31435,
- 31481, 31859, 31992, 32566, 32593, 32650, 32701, 32769,
- 32780, 32786, 32819, 32895, 32905, 33251, 33258, 33267,
- 33276, 33292, 33307, 33311, 33390, 33394, 33400, 34381,
- 34411, 34880, 34892, 34915, 35198, 35211, 35282, 35328,
- 35895, 35910, 35925, 35960, 35997, 36196, 36208, 36275,
- 36523, 36554, 36763, 36784, 36789, 37009, 37193, 37318,
- 37324, 37329, 38263, 38272, 38428, 38582, 38585, 38632,
- 38737, 38750, 38754, 38761, 38859, 38893, 38899, 38913,
- 39080, 39131, 39135, 39318, 39321, 39340, 39592, 39640,
- 39647, 39717, 39727, 39730, 39740, 39770, 40165, 40565,
- 40575, 40613, 40635, 40643, 40653, 40657, 40697, 40701,
- 40718, 40723, 40736, 40763, 40778, 40786, 40845, 40860,
- 40864, 12306, 21316, 21317, 12363, 12441, 12365, 12441,
- 12367, 12441, 12369, 12441, 12371, 12441, 12373, 12441,
- 12375, 12441, 12377, 12441, 12379, 12441, 12381, 12441,
- 12383, 12441, 12385, 12441, 12388, 12441, 12390, 12441,
- 12392, 12441, 12399, 12441, 12399, 12442, 12402, 12441,
- 12402, 12442, 12405, 12441, 12405, 12442, 12408, 12441,
- 12408, 12442, 12411, 12441, 12411, 12442, 12358, 12441,
- 32, 12441, 32, 12442, 12445, 12441, 12424, 12426,
- 12459, 12441, 12461, 12441, 12463, 12441, 12465, 12441,
- 12467, 12441, 12469, 12441, 12471, 12441, 12473, 12441,
- 12475, 12441, 12477, 12441, 12479, 12441, 12481, 12441,
- 12484, 12441, 12486, 12441, 12488, 12441, 12495, 12441,
- 12495, 12442, 12498, 12441, 12498, 12442, 12501, 12441,
- 12501, 12442, 12504, 12441, 12504, 12442, 12507, 12441,
- 12507, 12442, 12454, 12441, 12527, 12441, 12528, 12441,
- 12529, 12441, 12530, 12441, 12541, 12441, 12467, 12488,
- 4352, 4353, 4522, 4354, 4524, 4525, 4355, 4356,
- 4357, 4528, 4529, 4530, 4531, 4532, 4533, 4378,
- 4358, 4359, 4360, 4385, 4361, 4362, 4363, 4364,
- 4365, 4366, 4367, 4368, 4369, 4370, 4449, 4450,
- 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458,
- 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466,
- 4467, 4468, 4469, 4448, 4372, 4373, 4551, 4552,
- 4556, 4558, 4563, 4567, 4569, 4380, 4573, 4575,
- 4381, 4382, 4384, 4386, 4387, 4391, 4393, 4395,
- 4396, 4397, 4398, 4399, 4402, 4406, 4416, 4423,
- 4428, 4593, 4594, 4439, 4440, 4441, 4484, 4485,
- 4488, 4497, 4498, 4500, 4510, 4513, 19977, 22235,
- 19978, 20013, 19979, 30002, 19993, 19969, 22825, 22320,
- 40, 4352, 41, 40, 4354, 41, 40, 4355,
- 41, 40, 4357, 41, 40, 4358, 41, 40,
- 4359, 41, 40, 4361, 41, 40, 4363, 41,
- 40, 4364, 41, 40, 4366, 41, 40, 4367,
- 41, 40, 4368, 41, 40, 4369, 41, 40,
- 4370, 41, 40, 4352, 4449, 41, 40, 4354,
- 4449, 41, 40, 4355, 4449, 41, 40, 4357,
- 4449, 41, 40, 4358, 4449, 41, 40, 4359,
- 4449, 41, 40, 4361, 4449, 41, 40, 4363,
- 4449, 41, 40, 4364, 4449, 41, 40, 4366,
- 4449, 41, 40, 4367, 4449, 41, 40, 4368,
- 4449, 41, 40, 4369, 4449, 41, 40, 4370,
- 4449, 41, 40, 4364, 4462, 41, 40, 4363,
- 4457, 4364, 4453, 4523, 41, 40, 4363, 4457,
- 4370, 4462, 41, 40, 19968, 41, 40, 20108,
- 41, 40, 19977, 41, 40, 22235, 41, 40,
- 20116, 41, 40, 20845, 41, 40, 19971, 41,
- 40, 20843, 41, 40, 20061, 41, 40, 21313,
- 41, 40, 26376, 41, 40, 28779, 41, 40,
- 27700, 41, 40, 26408, 41, 40, 37329, 41,
- 40, 22303, 41, 40, 26085, 41, 40, 26666,
- 41, 40, 26377, 41, 40, 31038, 41, 40,
- 21517, 41, 40, 29305, 41, 40, 36001, 41,
- 40, 31069, 41, 40, 21172, 41, 40, 20195,
- 41, 40, 21628, 41, 40, 23398, 41, 40,
- 30435, 41, 40, 20225, 41, 40, 36039, 41,
- 40, 21332, 41, 40, 31085, 41, 40, 20241,
- 41, 40, 33258, 41, 40, 33267, 41, 21839,
- 24188, 31631, 80, 84, 69, 50, 49, 50,
- 50, 50, 51, 50, 52, 50, 53, 50,
- 54, 50, 55, 50, 56, 50, 57, 51,
- 48, 51, 49, 51, 50, 51, 51, 51,
- 52, 51, 53, 4352, 4449, 4354, 4449, 4355,
- 4449, 4357, 4449, 4358, 4449, 4359, 4449, 4361,
- 4449, 4363, 4449, 4364, 4449, 4366, 4449, 4367,
- 4449, 4368, 4449, 4369, 4449, 4370, 4449, 4366,
- 4449, 4535, 4352, 4457, 4364, 4462, 4363, 4468,
- 4363, 4462, 20116, 20845, 19971, 20061, 26666, 26377,
- 31038, 21517, 29305, 36001, 31069, 21172, 31192, 30007,
- 36969, 20778, 21360, 27880, 38917, 20241, 20889, 27491,
- 24038, 21491, 21307, 23447, 23398, 30435, 20225, 36039,
- 21332, 22812, 51, 54, 51, 55, 51, 56,
- 51, 57, 52, 48, 52, 49, 52, 50,
- 52, 51, 52, 52, 52, 53, 52, 54,
- 52, 55, 52, 56, 52, 57, 53, 48,
- 49, 26376, 50, 26376, 51, 26376, 52, 26376,
- 53, 26376, 54, 26376, 55, 26376, 56, 26376,
- 57, 26376, 49, 48, 26376, 49, 49, 26376,
- 49, 50, 26376, 72, 103, 101, 114, 103,
- 101, 86, 76, 84, 68, 12450, 12452, 12454,
- 12456, 12458, 12459, 12461, 12463, 12465, 12467, 12469,
- 12471, 12473, 12475, 12477, 12479, 12481, 12484, 12486,
- 12488, 12490, 12491, 12492, 12493, 12494, 12495, 12498,
- 12501, 12504, 12507, 12510, 12511, 12512, 12513, 12514,
- 12516, 12518, 12520, 12521, 12522, 12523, 12524, 12525,
- 12527, 12528, 12529, 12530, 12450, 12497, 12540, 12488,
- 12450, 12523, 12501, 12449, 12450, 12531, 12506, 12450,
- 12450, 12540, 12523, 12452, 12491, 12531, 12464, 12452,
- 12531, 12481, 12454, 12457, 12531, 12456, 12473, 12463,
- 12540, 12489, 12456, 12540, 12459, 12540, 12458, 12531,
- 12473, 12458, 12540, 12512, 12459, 12452, 12522, 12459,
- 12521, 12483, 12488, 12459, 12525, 12522, 12540, 12460,
- 12525, 12531, 12460, 12531, 12510, 12462, 12460, 12462,
- 12491, 12540, 12461, 12517, 12522, 12540, 12462, 12523,
- 12480, 12540, 12461, 12525, 12461, 12525, 12464, 12521,
- 12512, 12461, 12525, 12513, 12540, 12488, 12523, 12461,
- 12525, 12527, 12483, 12488, 12464, 12521, 12512, 12464,
- 12521, 12512, 12488, 12531, 12463, 12523, 12476, 12452,
- 12525, 12463, 12525, 12540, 12493, 12465, 12540, 12473,
- 12467, 12523, 12490, 12467, 12540, 12509, 12469, 12452,
- 12463, 12523, 12469, 12531, 12481, 12540, 12512, 12471,
- 12522, 12531, 12464, 12475, 12531, 12481, 12475, 12531,
- 12488, 12480, 12540, 12473, 12487, 12471, 12489, 12523,
- 12488, 12531, 12490, 12494, 12494, 12483, 12488, 12495,
- 12452, 12484, 12497, 12540, 12475, 12531, 12488, 12497,
- 12540, 12484, 12496, 12540, 12524, 12523, 12500, 12450,
- 12473, 12488, 12523, 12500, 12463, 12523, 12500, 12467,
- 12499, 12523, 12501, 12449, 12521, 12483, 12489, 12501,
- 12451, 12540, 12488, 12502, 12483, 12471, 12455, 12523,
- 12501, 12521, 12531, 12504, 12463, 12479, 12540, 12523,
- 12506, 12477, 12506, 12491, 12498, 12504, 12523, 12484,
- 12506, 12531, 12473, 12506, 12540, 12472, 12505, 12540,
- 12479, 12509, 12452, 12531, 12488, 12508, 12523, 12488,
- 12507, 12531, 12509, 12531, 12489, 12507, 12540, 12523,
- 12507, 12540, 12531, 12510, 12452, 12463, 12525, 12510,
- 12452, 12523, 12510, 12483, 12495, 12510, 12523, 12463,
- 12510, 12531, 12471, 12519, 12531, 12511, 12463, 12525,
- 12531, 12511, 12522, 12511, 12522, 12496, 12540, 12523,
- 12513, 12460, 12513, 12460, 12488, 12531, 12513, 12540,
- 12488, 12523, 12516, 12540, 12489, 12516, 12540, 12523,
- 12518, 12450, 12531, 12522, 12483, 12488, 12523, 12522,
- 12521, 12523, 12500, 12540, 12523, 12540, 12502, 12523,
- 12524, 12512, 12524, 12531, 12488, 12466, 12531, 12527,
- 12483, 12488, 48, 28857, 49, 28857, 50, 28857,
- 51, 28857, 52, 28857, 53, 28857, 54, 28857,
- 55, 28857, 56, 28857, 57, 28857, 49, 48,
- 28857, 49, 49, 28857, 49, 50, 28857, 49,
- 51, 28857, 49, 52, 28857, 49, 53, 28857,
- 49, 54, 28857, 49, 55, 28857, 49, 56,
- 28857, 49, 57, 28857, 50, 48, 28857, 50,
- 49, 28857, 50, 50, 28857, 50, 51, 28857,
- 50, 52, 28857, 104, 80, 97, 100, 97,
- 65, 85, 98, 97, 114, 111, 86, 112,
- 99, 100, 109, 100, 109, 178, 100, 109,
- 179, 73, 85, 24179, 25104, 26157, 21644, 22823,
- 27491, 26126, 27835, 26666, 24335, 20250, 31038, 112,
- 65, 110, 65, 956, 65, 109, 65, 107,
- 65, 75, 66, 77, 66, 71, 66, 99,
- 97, 108, 107, 99, 97, 108, 112, 70,
- 110, 70, 956, 70, 956, 103, 109, 103,
- 107, 103, 72, 122, 107, 72, 122, 77,
- 72, 122, 71, 72, 122, 84, 72, 122,
- 956, 8467, 109, 8467, 100, 8467, 107, 8467,
- 102, 109, 110, 109, 956, 109, 109, 109,
- 99, 109, 107, 109, 109, 109, 178, 99,
- 109, 178, 109, 178, 107, 109, 178, 109,
- 109, 179, 99, 109, 179, 109, 179, 107,
- 109, 179, 109, 8725, 115, 109, 8725, 115,
- 178, 80, 97, 107, 80, 97, 77, 80,
- 97, 71, 80, 97, 114, 97, 100, 114,
- 97, 100, 8725, 115, 114, 97, 100, 8725,
- 115, 178, 112, 115, 110, 115, 956, 115,
- 109, 115, 112, 86, 110, 86, 956, 86,
- 109, 86, 107, 86, 77, 86, 112, 87,
- 110, 87, 956, 87, 109, 87, 107, 87,
- 77, 87, 107, 937, 77, 937, 97, 46,
- 109, 46, 66, 113, 99, 99, 99, 100,
- 67, 8725, 107, 103, 67, 111, 46, 100,
- 66, 71, 121, 104, 97, 72, 80, 105,
- 110, 75, 75, 75, 77, 107, 116, 108,
- 109, 108, 110, 108, 111, 103, 108, 120,
- 109, 98, 109, 105, 108, 109, 111, 108,
- 80, 72, 112, 46, 109, 46, 80, 80,
- 77, 80, 82, 115, 114, 83, 118, 87,
- 98, 86, 8725, 109, 65, 8725, 109, 49,
- 26085, 50, 26085, 51, 26085, 52, 26085, 53,
- 26085, 54, 26085, 55, 26085, 56, 26085, 57,
- 26085, 49, 48, 26085, 49, 49, 26085, 49,
- 50, 26085, 49, 51, 26085, 49, 52, 26085,
- 49, 53, 26085, 49, 54, 26085, 49, 55,
- 26085, 49, 56, 26085, 49, 57, 26085, 50,
- 48, 26085, 50, 49, 26085, 50, 50, 26085,
- 50, 51, 26085, 50, 52, 26085, 50, 53,
- 26085, 50, 54, 26085, 50, 55, 26085, 50,
- 56, 26085, 50, 57, 26085, 51, 48, 26085,
- 51, 49, 26085, 103, 97, 108, 42561, 42563,
- 42565, 42567, 42569, 42573, 42575, 42577, 42579, 42581,
- 42583, 42585, 42587, 42589, 42591, 42593, 42595, 42597,
- 42599, 42601, 42603, 42605, 42625, 42627, 42629, 42631,
- 42633, 42635, 42637, 42639, 42641, 42643, 42645, 42647,
- 42649, 42651, 42787, 42789, 42791, 42793, 42795, 42797,
- 42799, 42803, 42805, 42807, 42809, 42811, 42813, 42815,
- 42817, 42819, 42821, 42823, 42825, 42827, 42829, 42831,
- 42833, 42835, 42837, 42839, 42841, 42843, 42845, 42847,
- 42849, 42851, 42853, 42855, 42857, 42859, 42861, 42863,
- 42874, 42876, 7545, 42879, 42881, 42883, 42885, 42887,
- 42892, 42897, 42899, 42903, 42905, 42907, 42909, 42911,
- 42913, 42915, 42917, 42919, 42921, 620, 670, 647,
- 43859, 42933, 42935, 294, 43831, 43858, 5024, 5025,
- 5026, 5027, 5028, 5029, 5030, 5031, 5032, 5033,
- 5034, 5035, 5036, 5037, 5038, 5039, 5040, 5041,
- 5042, 5043, 5044, 5045, 5046, 5047, 5048, 5049,
- 5050, 5051, 5052, 5053, 5054, 5055, 5056, 5057,
- 5058, 5059, 5060, 5061, 5062, 5063, 5064, 5065,
- 5066, 5067, 5068, 5069, 5070, 5071, 5072, 5073,
- 5074, 5075, 5076, 5077, 5078, 5079, 5080, 5081,
- 5082, 5083, 5084, 5085, 5086, 5087, 5088, 5089,
- 5090, 5091, 5092, 5093, 5094, 5095, 5096, 5097,
- 5098, 5099, 5100, 5101, 5102, 5103, 35912, 26356,
- 36040, 28369, 20018, 21477, 22865, 21895, 22856, 25078,
- 30313, 32645, 34367, 34746, 35064, 37007, 27138, 27931,
- 28889, 29662, 33853, 37226, 39409, 20098, 21365, 27396,
- 29211, 34349, 40478, 23888, 28651, 34253, 35172, 25289,
- 33240, 34847, 24266, 26391, 28010, 29436, 37070, 20358,
- 20919, 21214, 25796, 27347, 29200, 30439, 34310, 34396,
- 36335, 38706, 39791, 40442, 30860, 31103, 32160, 33737,
- 37636, 35542, 22751, 24324, 31840, 32894, 29282, 30922,
- 36034, 38647, 22744, 23650, 27155, 28122, 28431, 32047,
- 32311, 38475, 21202, 32907, 20956, 20940, 31260, 32190,
- 33777, 38517, 35712, 25295, 35582, 20025, 23527, 24594,
- 29575, 30064, 21271, 30971, 20415, 24489, 19981, 27852,
- 25976, 32034, 21443, 22622, 30465, 33865, 35498, 27578,
- 27784, 25342, 33509, 25504, 30053, 20142, 20841, 20937,
- 26753, 31975, 33391, 35538, 37327, 21237, 21570, 24300,
- 26053, 28670, 31018, 38317, 39530, 40599, 40654, 26310,
- 27511, 36706, 24180, 24976, 25088, 25754, 28451, 29001,
- 29833, 31178, 32244, 32879, 36646, 34030, 36899, 37706,
- 21015, 21155, 21693, 28872, 35010, 24265, 24565, 25467,
- 27566, 31806, 29557, 20196, 22265, 23994, 24604, 29618,
- 29801, 32666, 32838, 37428, 38646, 38728, 38936, 20363,
- 31150, 37300, 38584, 24801, 20102, 20698, 23534, 23615,
- 26009, 29134, 30274, 34044, 36988, 26248, 38446, 21129,
- 26491, 26611, 27969, 28316, 29705, 30041, 30827, 32016,
- 39006, 25134, 38520, 20523, 23833, 28138, 36650, 24459,
- 24900, 26647, 38534, 21033, 21519, 23653, 26131, 26446,
- 26792, 27877, 29702, 30178, 32633, 35023, 35041, 38626,
- 21311, 28346, 21533, 29136, 29848, 34298, 38563, 40023,
- 40607, 26519, 28107, 33256, 31520, 31890, 29376, 28825,
- 35672, 20160, 33590, 21050, 20999, 24230, 25299, 31958,
- 23429, 27934, 26292, 36667, 38477, 24275, 20800, 21952,
- 22618, 26228, 20958, 29482, 30410, 31036, 31070, 31077,
- 31119, 38742, 31934, 34322, 35576, 36920, 37117, 39151,
- 39164, 39208, 40372, 37086, 38583, 20398, 20711, 20813,
- 21193, 21220, 21329, 21917, 22022, 22120, 22592, 22696,
- 23652, 24724, 24936, 24974, 25074, 25935, 26082, 26257,
- 26757, 28023, 28186, 28450, 29038, 29227, 29730, 30865,
- 31049, 31048, 31056, 31062, 31117, 31118, 31296, 31361,
- 31680, 32265, 32321, 32626, 32773, 33261, 33401, 33879,
- 35088, 35222, 35585, 35641, 36051, 36104, 36790, 38627,
- 38911, 38971, 24693, 55376, 57070, 33304, 20006, 20917,
- 20840, 20352, 20805, 20864, 21191, 21242, 21845, 21913,
- 21986, 22707, 22852, 22868, 23138, 23336, 24274, 24281,
- 24425, 24493, 24792, 24910, 24840, 24928, 25140, 25540,
- 25628, 25682, 25942, 26395, 26454, 28379, 28363, 28702,
- 30631, 29237, 29359, 29809, 29958, 30011, 30237, 30239,
- 30427, 30452, 30538, 30528, 30924, 31409, 31867, 32091,
- 32574, 33618, 33775, 34681, 35137, 35206, 35519, 35531,
- 35565, 35722, 36664, 36978, 37273, 37494, 38524, 38875,
- 38923, 39698, 55370, 56394, 55370, 56388, 55372, 57301,
- 15261, 16408, 16441, 55380, 56905, 55383, 56528, 55391,
- 57043, 40771, 40846, 102, 102, 102, 105, 102,
- 108, 102, 102, 105, 102, 102, 108, 383,
- 116, 115, 116, 1396, 1398, 1396, 1381, 1396,
- 1387, 1406, 1398, 1396, 1389, 1497, 1460, 1522,
- 1463, 1506, 1492, 1499, 1500, 1501, 1512, 1514,
- 1513, 1473, 1513, 1474, 64329, 1473, 64329, 1474,
- 1488, 1463, 1488, 1464, 1488, 1468, 1489, 1468,
- 1490, 1468, 1491, 1468, 1492, 1468, 1493, 1468,
- 1494, 1468, 1496, 1468, 1497, 1468, 1498, 1468,
- 1499, 1468, 1500, 1468, 1502, 1468, 1504, 1468,
- 1505, 1468, 1507, 1468, 1508, 1468, 1510, 1468,
- 1511, 1468, 1512, 1468, 1513, 1468, 1514, 1468,
- 1493, 1465, 1489, 1471, 1499, 1471, 1508, 1471,
- 1488, 1500, 1649, 1659, 1662, 1664, 1658, 1663,
- 1657, 1700, 1702, 1668, 1667, 1670, 1671, 1677,
- 1676, 1678, 1672, 1688, 1681, 1705, 1711, 1715,
- 1713, 1722, 1723, 1728, 1729, 1726, 1746, 1747,
- 1709, 1735, 1734, 1736, 1655, 1739, 1733, 1737,
- 1744, 1609, 1574, 1575, 1574, 1749, 1574, 1608,
- 1574, 1735, 1574, 1734, 1574, 1736, 1574, 1744,
- 1574, 1609, 1740, 1574, 1580, 1574, 1581, 1574,
- 1605, 1574, 1610, 1576, 1580, 1576, 1581, 1576,
- 1582, 1576, 1605, 1576, 1609, 1576, 1610, 1578,
- 1580, 1578, 1581, 1578, 1582, 1578, 1605, 1578,
- 1609, 1578, 1610, 1579, 1580, 1579, 1605, 1579,
- 1609, 1579, 1610, 1580, 1581, 1580, 1605, 1581,
- 1580, 1581, 1605, 1582, 1580, 1582, 1581, 1582,
- 1605, 1587, 1580, 1587, 1581, 1587, 1582, 1587,
- 1605, 1589, 1581, 1589, 1605, 1590, 1580, 1590,
- 1581, 1590, 1582, 1590, 1605, 1591, 1581, 1591,
- 1605, 1592, 1605, 1593, 1580, 1593, 1605, 1594,
- 1580, 1594, 1605, 1601, 1580, 1601, 1581, 1601,
- 1582, 1601, 1605, 1601, 1609, 1601, 1610, 1602,
- 1581, 1602, 1605, 1602, 1609, 1602, 1610, 1603,
- 1575, 1603, 1580, 1603, 1581, 1603, 1582, 1603,
- 1604, 1603, 1605, 1603, 1609, 1603, 1610, 1604,
- 1580, 1604, 1581, 1604, 1582, 1604, 1605, 1604,
- 1609, 1604, 1610, 1605, 1580, 1605, 1581, 1605,
- 1582, 1605, 1605, 1605, 1609, 1605, 1610, 1606,
- 1580, 1606, 1581, 1606, 1582, 1606, 1605, 1606,
- 1609, 1606, 1610, 1607, 1580, 1607, 1605, 1607,
- 1609, 1607, 1610, 1610, 1580, 1610, 1581, 1610,
- 1582, 1610, 1605, 1610, 1609, 1610, 1610, 1584,
- 1648, 1585, 1648, 1609, 1648, 32, 1612, 1617,
- 32, 1613, 1617, 32, 1614, 1617, 32, 1615,
- 1617, 32, 1616, 1617, 32, 1617, 1648, 1574,
- 1585, 1574, 1586, 1574, 1606, 1576, 1585, 1576,
- 1586, 1576, 1606, 1578, 1585, 1578, 1586, 1578,
- 1606, 1579, 1585, 1579, 1586, 1579, 1606, 1605,
- 1575, 1606, 1585, 1606, 1586, 1606, 1606, 1610,
- 1585, 1610, 1586, 1610, 1606, 1574, 1582, 1574,
- 1607, 1576, 1607, 1578, 1607, 1589, 1582, 1604,
- 1607, 1606, 1607, 1607, 1648, 1610, 1607, 1579,
- 1607, 1587, 1607, 1588, 1605, 1588, 1607, 1600,
- 1614, 1617, 1600, 1615, 1617, 1600, 1616, 1617,
- 1591, 1609, 1591, 1610, 1593, 1609, 1593, 1610,
- 1594, 1609, 1594, 1610, 1587, 1609, 1587, 1610,
- 1588, 1609, 1588, 1610, 1581, 1609, 1581, 1610,
- 1580, 1609, 1580, 1610, 1582, 1609, 1582, 1610,
- 1589, 1609, 1589, 1610, 1590, 1609, 1590, 1610,
- 1588, 1580, 1588, 1581, 1588, 1582, 1588, 1585,
- 1587, 1585, 1589, 1585, 1590, 1585, 1575, 1611,
- 1578, 1580, 1605, 1578, 1581, 1580, 1578, 1581,
- 1605, 1578, 1582, 1605, 1578, 1605, 1580, 1578,
- 1605, 1581, 1578, 1605, 1582, 1580, 1605, 1581,
- 1581, 1605, 1610, 1581, 1605, 1609, 1587, 1581,
- 1580, 1587, 1580, 1581, 1587, 1580, 1609, 1587,
- 1605, 1581, 1587, 1605, 1580, 1587, 1605, 1605,
- 1589, 1581, 1581, 1589, 1605, 1605, 1588, 1581,
- 1605, 1588, 1580, 1610, 1588, 1605, 1582, 1588,
- 1605, 1605, 1590, 1581, 1609, 1590, 1582, 1605,
- 1591, 1605, 1581, 1591, 1605, 1605, 1591, 1605,
- 1610, 1593, 1580, 1605, 1593, 1605, 1605, 1593,
- 1605, 1609, 1594, 1605, 1605, 1594, 1605, 1610,
- 1594, 1605, 1609, 1601, 1582, 1605, 1602, 1605,
- 1581, 1602, 1605, 1605, 1604, 1581, 1605, 1604,
- 1581, 1610, 1604, 1581, 1609, 1604, 1580, 1580,
- 1604, 1582, 1605, 1604, 1605, 1581, 1605, 1581,
- 1580, 1605, 1581, 1605, 1605, 1581, 1610, 1605,
- 1580, 1581, 1605, 1580, 1605, 1605, 1582, 1580,
- 1605, 1582, 1605, 1605, 1580, 1582, 1607, 1605,
- 1580, 1607, 1605, 1605, 1606, 1581, 1605, 1606,
- 1581, 1609, 1606, 1580, 1605, 1606, 1580, 1609,
- 1606, 1605, 1610, 1606, 1605, 1609, 1610, 1605,
- 1605, 1576, 1582, 1610, 1578, 1580, 1610, 1578,
- 1580, 1609, 1578, 1582, 1610, 1578, 1582, 1609,
- 1578, 1605, 1610, 1578, 1605, 1609, 1580, 1605,
- 1610, 1580, 1581, 1609, 1580, 1605, 1609, 1587,
- 1582, 1609, 1589, 1581, 1610, 1588, 1581, 1610,
- 1590, 1581, 1610, 1604, 1580, 1610, 1604, 1605,
- 1610, 1610, 1581, 1610, 1610, 1580, 1610, 1610,
- 1605, 1610, 1605, 1605, 1610, 1602, 1605, 1610,
- 1606, 1581, 1610, 1593, 1605, 1610, 1603, 1605,
- 1610, 1606, 1580, 1581, 1605, 1582, 1610, 1604,
- 1580, 1605, 1603, 1605, 1605, 1580, 1581, 1610,
- 1581, 1580, 1610, 1605, 1580, 1610, 1601, 1605,
- 1610, 1576, 1581, 1610, 1587, 1582, 1610, 1606,
- 1580, 1610, 1589, 1604, 1746, 1602, 1604, 1746,
- 1575, 1604, 1604, 1607, 1575, 1603, 1576, 1585,
- 1605, 1581, 1605, 1583, 1589, 1604, 1593, 1605,
- 1585, 1587, 1608, 1604, 1593, 1604, 1610, 1607,
- 1608, 1587, 1604, 1605, 1589, 1604, 1609, 17,
- 1589, 1604, 1609, 32, 1575, 1604, 1604, 1607,
- 32, 1593, 1604, 1610, 1607, 32, 1608, 1587,
- 1604, 1605, 7, 1580, 1604, 32, 1580, 1604,
- 1575, 1604, 1607, 1585, 1740, 1575, 1604, 44,
- 12289, 12290, 58, 33, 63, 12310, 12311, 8230,
- 8229, 8212, 8211, 95, 123, 125, 12308, 12309,
- 12304, 12305, 12298, 12299, 12300, 12301, 12302, 12303,
- 91, 93, 8254, 35, 38, 42, 45, 60,
- 62, 92, 36, 37, 64, 32, 1611, 1600,
- 1611, 32, 1612, 32, 1613, 32, 1614, 1600,
- 1614, 32, 1615, 1600, 1615, 32, 1616, 1600,
- 1616, 32, 1617, 1600, 1617, 32, 1618, 1600,
- 1618, 1569, 1570, 1571, 1572, 1573, 1574, 1575,
- 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583,
- 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591,
- 1592, 1593, 1594, 1601, 1602, 1603, 1604, 1605,
- 1606, 1607, 1608, 1610, 1604, 1570, 1604, 1571,
- 1604, 1573, 1604, 1575, 34, 39, 47, 65345,
- 65346, 65347, 65348, 65349, 65350, 65351, 65352, 65353,
- 65354, 65355, 65356, 65357, 65358, 65359, 65360, 65361,
- 65362, 65363, 65364, 65365, 65366, 65367, 65368, 65369,
- 65370, 94, 124, 126, 10629, 10630, 12539, 12449,
- 12451, 12453, 12455, 12457, 12515, 12517, 12519, 12483,
- 12540, 12531, 12441, 12442, 12644, 12593, 12594, 12595,
- 12596, 12597, 12598, 12599, 12600, 12601, 12602, 12603,
- 12604, 12605, 12606, 12607, 12608, 12609, 12610, 12611,
- 12612, 12613, 12614, 12615, 12616, 12617, 12618, 12619,
- 12620, 12621, 12622, 12623, 12624, 12625, 12626, 12627,
- 12628, 12629, 12630, 12631, 12632, 12633, 12634, 12635,
- 12636, 12637, 12638, 12639, 12640, 12641, 12642, 12643,
- 162, 163, 172, 175, 166, 165, 8361, 9474,
- 8592, 8593, 8594, 8595, 9632, 9675, 55297, 56360,
- 55297, 56361, 55297, 56362, 55297, 56363, 55297, 56364,
- 55297, 56365, 55297, 56366, 55297, 56367, 55297, 56368,
- 55297, 56369, 55297, 56370, 55297, 56371, 55297, 56372,
- 55297, 56373, 55297, 56374, 55297, 56375, 55297, 56376,
- 55297, 56377, 55297, 56378, 55297, 56379, 55297, 56380,
- 55297, 56381, 55297, 56382, 55297, 56383, 55297, 56384,
- 55297, 56385, 55297, 56386, 55297, 56387, 55297, 56388,
- 55297, 56389, 55297, 56390, 55297, 56391, 55297, 56392,
- 55297, 56393, 55297, 56394, 55297, 56395, 55297, 56396,
- 55297, 56397, 55297, 56398, 55297, 56399, 55297, 56536,
- 55297, 56537, 55297, 56538, 55297, 56539, 55297, 56540,
- 55297, 56541, 55297, 56542, 55297, 56543, 55297, 56544,
- 55297, 56545, 55297, 56546, 55297, 56547, 55297, 56548,
- 55297, 56549, 55297, 56550, 55297, 56551, 55297, 56552,
- 55297, 56553, 55297, 56554, 55297, 56555, 55297, 56556,
- 55297, 56557, 55297, 56558, 55297, 56559, 55297, 56560,
- 55297, 56561, 55297, 56562, 55297, 56563, 55297, 56564,
- 55297, 56565, 55297, 56566, 55297, 56567, 55297, 56568,
- 55297, 56569, 55297, 56570, 55297, 56571, 55299, 56512,
- 55299, 56513, 55299, 56514, 55299, 56515, 55299, 56516,
- 55299, 56517, 55299, 56518, 55299, 56519, 55299, 56520,
- 55299, 56521, 55299, 56522, 55299, 56523, 55299, 56524,
- 55299, 56525, 55299, 56526, 55299, 56527, 55299, 56528,
- 55299, 56529, 55299, 56530, 55299, 56531, 55299, 56532,
- 55299, 56533, 55299, 56534, 55299, 56535, 55299, 56536,
- 55299, 56537, 55299, 56538, 55299, 56539, 55299, 56540,
- 55299, 56541, 55299, 56542, 55299, 56543, 55299, 56544,
- 55299, 56545, 55299, 56546, 55299, 56547, 55299, 56548,
- 55299, 56549, 55299, 56550, 55299, 56551, 55299, 56552,
- 55299, 56553, 55299, 56554, 55299, 56555, 55299, 56556,
- 55299, 56557, 55299, 56558, 55299, 56559, 55299, 56560,
- 55299, 56561, 55299, 56562, 55300, 56473, 55300, 56506,
- 55300, 56475, 55300, 56506, 55300, 56485, 55300, 56506,
- 55300, 56625, 55300, 56615, 55300, 56626, 55300, 56615,
- 55300, 57159, 55300, 57150, 55300, 57159, 55300, 57175,
- 55301, 56505, 55301, 56506, 55301, 56505, 55301, 56496,
- 55301, 56505, 55301, 56509, 55301, 56760, 55301, 56751,
- 55301, 56761, 55301, 56751, 55302, 56512, 55302, 56513,
- 55302, 56514, 55302, 56515, 55302, 56516, 55302, 56517,
- 55302, 56518, 55302, 56519, 55302, 56520, 55302, 56521,
- 55302, 56522, 55302, 56523, 55302, 56524, 55302, 56525,
- 55302, 56526, 55302, 56527, 55302, 56528, 55302, 56529,
- 55302, 56530, 55302, 56531, 55302, 56532, 55302, 56533,
- 55302, 56534, 55302, 56535, 55302, 56536, 55302, 56537,
- 55302, 56538, 55302, 56539, 55302, 56540, 55302, 56541,
- 55302, 56542, 55302, 56543, 55348, 56663, 55348, 56677,
- 55348, 56664, 55348, 56677, 55348, 56671, 55348, 56686,
- 55348, 56671, 55348, 56687, 55348, 56671, 55348, 56688,
- 55348, 56671, 55348, 56689, 55348, 56671, 55348, 56690,
- 55348, 56761, 55348, 56677, 55348, 56762, 55348, 56677,
- 55348, 56763, 55348, 56686, 55348, 56764, 55348, 56686,
- 55348, 56763, 55348, 56687, 55348, 56764, 55348, 56687,
- 305, 567, 913, 914, 916, 917, 918, 919,
- 921, 922, 923, 924, 925, 926, 927, 929,
- 1012, 932, 934, 935, 936, 8711, 8706, 1013,
- 977, 1008, 981, 1009, 982, 988, 55354, 56610,
- 55354, 56611, 55354, 56612, 55354, 56613, 55354, 56614,
- 55354, 56615, 55354, 56616, 55354, 56617, 55354, 56618,
- 55354, 56619, 55354, 56620, 55354, 56621, 55354, 56622,
- 55354, 56623, 55354, 56624, 55354, 56625, 55354, 56626,
- 55354, 56627, 55354, 56628, 55354, 56629, 55354, 56630,
- 55354, 56631, 55354, 56632, 55354, 56633, 55354, 56634,
- 55354, 56635, 55354, 56636, 55354, 56637, 55354, 56638,
- 55354, 56639, 55354, 56640, 55354, 56641, 55354, 56642,
- 55354, 56643, 1646, 1697, 1647, 48, 46, 48,
- 44, 49, 44, 50, 44, 51, 44, 52,
- 44, 53, 44, 54, 44, 55, 44, 56,
- 44, 57, 44, 40, 65, 41, 40, 66,
- 41, 40, 67, 41, 40, 68, 41, 40,
- 69, 41, 40, 70, 41, 40, 71, 41,
- 40, 72, 41, 40, 73, 41, 40, 74,
- 41, 40, 75, 41, 40, 76, 41, 40,
- 77, 41, 40, 78, 41, 40, 79, 41,
- 40, 80, 41, 40, 81, 41, 40, 82,
- 41, 40, 83, 41, 40, 84, 41, 40,
- 85, 41, 40, 86, 41, 40, 87, 41,
- 40, 88, 41, 40, 89, 41, 40, 90,
- 41, 12308, 83, 12309, 67, 68, 87, 90,
- 72, 86, 83, 68, 83, 83, 80, 80,
- 86, 87, 67, 77, 67, 77, 68, 68,
- 74, 12411, 12363, 12467, 12467, 23383, 21452, 12487,
- 22810, 35299, 20132, 26144, 28961, 21069, 24460, 20877,
- 26032, 21021, 32066, 36009, 22768, 21561, 28436, 25237,
- 25429, 36938, 25351, 25171, 31105, 31354, 21512, 28288,
- 30003, 21106, 21942, 37197, 12308, 26412, 12309, 12308,
- 19977, 12309, 12308, 20108, 12309, 12308, 23433, 12309,
- 12308, 28857, 12309, 12308, 25171, 12309, 12308, 30423,
- 12309, 12308, 21213, 12309, 12308, 25943, 12309, 24471,
- 21487, 20029, 20024, 20033, 55360, 56610, 20320, 20411,
- 20482, 20602, 20633, 20687, 13470, 55361, 56890, 20820,
- 20836, 20855, 55361, 56604, 13497, 20839, 55361, 56651,
- 20887, 20900, 20172, 20908, 55396, 56799, 20995, 13535,
- 21051, 21062, 21111, 13589, 21253, 21254, 21321, 21338,
- 21363, 21373, 21375, 55362, 56876, 28784, 21450, 21471,
- 55362, 57187, 21483, 21489, 21510, 21662, 21560, 21576,
- 21608, 21666, 21750, 21776, 21843, 21859, 21892, 21931,
- 21939, 21954, 22294, 22295, 22097, 22132, 22766, 22478,
- 22516, 22541, 22411, 22578, 22577, 22700, 55365, 56548,
- 22770, 22775, 22790, 22818, 22882, 55365, 57000, 55365,
- 57066, 23020, 23067, 23079, 23000, 23142, 14062, 14076,
- 23304, 23358, 55366, 56776, 23491, 23512, 23539, 55366,
- 57112, 23551, 23558, 24403, 14209, 23648, 23744, 23693,
- 55367, 56804, 23875, 55367, 56806, 23918, 23915, 23932,
- 24033, 24034, 14383, 24061, 24104, 24125, 24169, 14434,
- 55368, 56707, 14460, 24240, 24243, 24246, 55400, 57234,
- 55368, 57137, 33281, 24354, 14535, 55372, 57016, 55384,
- 56794, 24418, 24427, 14563, 24474, 24525, 24535, 24569,
- 24705, 14650, 14620, 55369, 57044, 24775, 24904, 24908,
- 24954, 25010, 24996, 25007, 25054, 25104, 25115, 25181,
- 25265, 25300, 25424, 55370, 57100, 25405, 25340, 25448,
- 25475, 25572, 55370, 57329, 25634, 25541, 25513, 14894,
- 25705, 25726, 25757, 25719, 14956, 25964, 55372, 56330,
- 26083, 26360, 26185, 15129, 15112, 15076, 20882, 20885,
- 26368, 26268, 32941, 17369, 26401, 26462, 26451, 55372,
- 57283, 15177, 26618, 26501, 26706, 55373, 56429, 26766,
- 26655, 26900, 26946, 27043, 27114, 27304, 55373, 56995,
- 27355, 15384, 27425, 55374, 56487, 27476, 15438, 27506,
- 27551, 27579, 55374, 56973, 55367, 56587, 55374, 57082,
- 27726, 55375, 56508, 27839, 27853, 27751, 27926, 27966,
- 28009, 28024, 28037, 55375, 56606, 27956, 28207, 28270,
- 15667, 28359, 55375, 57041, 28153, 28526, 55375, 57182,
- 55375, 57230, 28614, 28729, 28699, 15766, 28746, 28797,
- 28791, 28845, 55361, 56613, 28997, 55376, 56931, 29084,
- 55376, 57259, 29224, 29264, 55377, 56840, 29312, 29333,
- 55377, 57141, 55378, 56340, 29562, 29579, 16044, 29605,
- 16056, 29767, 29788, 29829, 29898, 16155, 29988, 55379,
- 56374, 30014, 55379, 56466, 55368, 56735, 30224, 55379,
- 57249, 55379, 57272, 55380, 56388, 16380, 16392, 55380,
- 56563, 55380, 56562, 55380, 56601, 55380, 56627, 30494,
- 30495, 30603, 16454, 16534, 55381, 56349, 30798, 16611,
- 55381, 56870, 55381, 56986, 55381, 57029, 31211, 16687,
- 31306, 31311, 55382, 56700, 55382, 56999, 31470, 16898,
- 55382, 57259, 31686, 31689, 16935, 55383, 56448, 31954,
- 17056, 31976, 31971, 32000, 55383, 57222, 32099, 17153,
- 32199, 32258, 32325, 17204, 55384, 56872, 55384, 56903,
- 17241, 55384, 57049, 32634, 55384, 57150, 32661, 32762,
- 55385, 56538, 55385, 56611, 32864, 55385, 56744, 32880,
- 55372, 57183, 17365, 32946, 33027, 17419, 33086, 23221,
- 55385, 57255, 55385, 57269, 55372, 57235, 55372, 57244,
- 33284, 36766, 17515, 33425, 33419, 33437, 21171, 33457,
- 33459, 33469, 33510, 55386, 57148, 33565, 33635, 33709,
- 33571, 33725, 33767, 33619, 33738, 33740, 33756, 55387,
- 56374, 55387, 56683, 55387, 56533, 17707, 34033, 34035,
- 34070, 55388, 57290, 34148, 55387, 57132, 17757, 17761,
- 55387, 57265, 55388, 56530, 17771, 34384, 34407, 34409,
- 34473, 34440, 34574, 34530, 34600, 34667, 34694, 17879,
- 34785, 34817, 17913, 34912, 55389, 56935, 35031, 35038,
- 17973, 35066, 13499, 55390, 56494, 55390, 56678, 18110,
- 18119, 35488, 55391, 56488, 36011, 36033, 36123, 36215,
- 55391, 57135, 55362, 56324, 36299, 36284, 36336, 55362,
- 56542, 36564, 55393, 56786, 55393, 56813, 37012, 37105,
- 37137, 55393, 57134, 37147, 37432, 37591, 37592, 37500,
- 37881, 37909, 55394, 57338, 38283, 18837, 38327, 55395,
- 56695, 18918, 38595, 23986, 38691, 55396, 56645, 55396,
- 56858, 19054, 19062, 38880, 55397, 56330, 19122, 55397,
- 56470, 38953, 55397, 56758, 39138, 19251, 39209, 39335,
- 39362, 39422, 19406, 55398, 57136, 40000, 40189, 19662,
- 19693, 40295, 55400, 56526, 19704, 55400, 56581, 55400,
- 56846, 55400, 56977, 19798, 40702, 40709, 40719, 40726,
- 55401, 56832, 192, 193, 194, 195, 196, 199,
- 200, 201, 202, 203, 204, 205, 206, 207,
- 208, 209, 210, 211, 212, 213, 214, 216,
- 217, 218, 219, 220, 221, 222, 376, 256,
- 258, 260, 262, 264, 266, 268, 270, 272,
- 274, 276, 278, 280, 282, 284, 286, 288,
- 290, 292, 296, 298, 300, 302, 306, 308,
- 310, 313, 315, 317, 319, 321, 323, 325,
- 327, 330, 332, 334, 336, 338, 340, 342,
- 344, 346, 348, 350, 352, 354, 356, 358,
- 360, 362, 364, 366, 368, 370, 372, 374,
- 377, 379, 381, 579, 386, 388, 391, 395,
- 401, 502, 408, 573, 544, 416, 418, 420,
- 423, 428, 431, 435, 437, 440, 444, 503,
- 453, 452, 456, 455, 459, 458, 461, 463,
- 465, 467, 469, 471, 473, 475, 478, 480,
- 482, 484, 486, 488, 490, 492, 494, 498,
- 497, 500, 504, 506, 508, 510, 512, 514,
- 516, 518, 520, 522, 524, 526, 528, 530,
- 532, 534, 536, 538, 540, 542, 548, 550,
- 552, 554, 556, 558, 560, 562, 571, 11390,
- 11391, 577, 582, 584, 586, 588, 590, 11375,
- 11373, 11376, 385, 390, 393, 394, 399, 42923,
- 403, 42924, 404, 42893, 42922, 407, 406, 42926,
- 11362, 42925, 412, 11374, 413, 415, 11364, 422,
- 425, 42929, 430, 580, 433, 434, 581, 439,
- 42930, 42928, 880, 882, 886, 1021, 1022, 1023,
- 938, 939, 975, 984, 986, 990, 992, 994,
- 996, 998, 1000, 1002, 1004, 1006, 1017, 895,
- 1015, 1018, 1040, 1041, 1042, 1043, 1044, 1045,
- 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053,
- 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061,
- 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,
- 1070, 1071, 1024, 1025, 1026, 1027, 1028, 1029,
- 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037,
- 1038, 1039, 1120, 1122, 1124, 1126, 1128, 1130,
- 1132, 1134, 1136, 1138, 1140, 1142, 1144, 1146,
- 1148, 1150, 1152, 1162, 1164, 1166, 1168, 1170,
- 1172, 1174, 1176, 1178, 1180, 1182, 1184, 1186,
- 1188, 1190, 1192, 1194, 1196, 1198, 1200, 1202,
- 1204, 1206, 1208, 1210, 1212, 1214, 1217, 1219,
- 1221, 1223, 1225, 1227, 1229, 1216, 1232, 1234,
- 1236, 1238, 1240, 1242, 1244, 1246, 1248, 1250,
- 1252, 1254, 1256, 1258, 1260, 1262, 1264, 1266,
- 1268, 1270, 1272, 1274, 1276, 1278, 1280, 1282,
- 1284, 1286, 1288, 1290, 1292, 1294, 1296, 1298,
- 1300, 1302, 1304, 1306, 1308, 1310, 1312, 1314,
- 1316, 1318, 1320, 1322, 1324, 1326, 1329, 1330,
- 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338,
- 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346,
- 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354,
- 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362,
- 1363, 1364, 1365, 1366, 43888, 43889, 43890, 43891,
- 43892, 43893, 43894, 43895, 43896, 43897, 43898, 43899,
- 43900, 43901, 43902, 43903, 43904, 43905, 43906, 43907,
- 43908, 43909, 43910, 43911, 43912, 43913, 43914, 43915,
- 43916, 43917, 43918, 43919, 43920, 43921, 43922, 43923,
- 43924, 43925, 43926, 43927, 43928, 43929, 43930, 43931,
- 43932, 43933, 43934, 43935, 43936, 43937, 43938, 43939,
- 43940, 43941, 43942, 43943, 43944, 43945, 43946, 43947,
- 43948, 43949, 43950, 43951, 43952, 43953, 43954, 43955,
- 43956, 43957, 43958, 43959, 43960, 43961, 43962, 43963,
- 43964, 43965, 43966, 43967, 5112, 5113, 5114, 5115,
- 5116, 5117, 42570, 42877, 11363, 7680, 7682, 7684,
- 7686, 7688, 7690, 7692, 7694, 7696, 7698, 7700,
- 7702, 7704, 7706, 7708, 7710, 7712, 7714, 7716,
- 7718, 7720, 7722, 7724, 7726, 7728, 7730, 7732,
- 7734, 7736, 7738, 7740, 7742, 7744, 7746, 7748,
- 7750, 7752, 7754, 7756, 7758, 7760, 7762, 7764,
- 7766, 7768, 7770, 7772, 7774, 7776, 7778, 7780,
- 7782, 7784, 7786, 7788, 7790, 7792, 7794, 7796,
- 7798, 7800, 7802, 7804, 7806, 7808, 7810, 7812,
- 7814, 7816, 7818, 7820, 7822, 7824, 7826, 7828,
- 7840, 7842, 7844, 7846, 7848, 7850, 7852, 7854,
- 7856, 7858, 7860, 7862, 7864, 7866, 7868, 7870,
- 7872, 7874, 7876, 7878, 7880, 7882, 7884, 7886,
- 7888, 7890, 7892, 7894, 7896, 7898, 7900, 7902,
- 7904, 7906, 7908, 7910, 7912, 7914, 7916, 7918,
- 7920, 7922, 7924, 7926, 7928, 7930, 7932, 7934,
- 7944, 7945, 7946, 7947, 7948, 7949, 7950, 7951,
- 7960, 7961, 7962, 7963, 7964, 7965, 7976, 7977,
- 7978, 7979, 7980, 7981, 7982, 7983, 7992, 7993,
- 7994, 7995, 7996, 7997, 7998, 7999, 8008, 8009,
- 8010, 8011, 8012, 8013, 8025, 8027, 8029, 8031,
- 8040, 8041, 8042, 8043, 8044, 8045, 8046, 8047,
- 8122, 8123, 8136, 8137, 8138, 8139, 8154, 8155,
- 8184, 8185, 8170, 8171, 8186, 8187, 8072, 8073,
- 8074, 8075, 8076, 8077, 8078, 8079, 8088, 8089,
- 8090, 8091, 8092, 8093, 8094, 8095, 8104, 8105,
- 8106, 8107, 8108, 8109, 8110, 8111, 8120, 8121,
- 8124, 8140, 8152, 8153, 8168, 8169, 8172, 8188,
- 8498, 8544, 8545, 8546, 8547, 8548, 8549, 8550,
- 8551, 8552, 8553, 8554, 8555, 8556, 8557, 8558,
- 8559, 8579, 9398, 9399, 9400, 9401, 9402, 9403,
- 9404, 9405, 9406, 9407, 9408, 9409, 9410, 9411,
- 9412, 9413, 9414, 9415, 9416, 9417, 9418, 9419,
- 9420, 9421, 9422, 9423, 11264, 11265, 11266, 11267,
- 11268, 11269, 11270, 11271, 11272, 11273, 11274, 11275,
- 11276, 11277, 11278, 11279, 11280, 11281, 11282, 11283,
- 11284, 11285, 11286, 11287, 11288, 11289, 11290, 11291,
- 11292, 11293, 11294, 11295, 11296, 11297, 11298, 11299,
- 11300, 11301, 11302, 11303, 11304, 11305, 11306, 11307,
- 11308, 11309, 11310, 11360, 570, 574, 11367, 11369,
- 11371, 11378, 11381, 11392, 11394, 11396, 11398, 11400,
- 11402, 11404, 11406, 11408, 11410, 11412, 11414, 11416,
- 11418, 11420, 11422, 11424, 11426, 11428, 11430, 11432,
- 11434, 11436, 11438, 11440, 11442, 11444, 11446, 11448,
- 11450, 11452, 11454, 11456, 11458, 11460, 11462, 11464,
- 11466, 11468, 11470, 11472, 11474, 11476, 11478, 11480,
- 11482, 11484, 11486, 11488, 11490, 11499, 11501, 11506,
- 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263,
- 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271,
- 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279,
- 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287,
- 4288, 4289, 4290, 4291, 4292, 4293, 4295, 4301,
- 42560, 42562, 42564, 42566, 42568, 42572, 42574, 42576,
- 42578, 42580, 42582, 42584, 42586, 42588, 42590, 42592,
- 42594, 42596, 42598, 42600, 42602, 42604, 42624, 42626,
- 42628, 42630, 42632, 42634, 42636, 42638, 42640, 42642,
- 42644, 42646, 42648, 42650, 42786, 42788, 42790, 42792,
- 42794, 42796, 42798, 42802, 42804, 42806, 42808, 42810,
- 42812, 42814, 42816, 42818, 42820, 42822, 42824, 42826,
- 42828, 42830, 42832, 42834, 42836, 42838, 42840, 42842,
- 42844, 42846, 42848, 42850, 42852, 42854, 42856, 42858,
- 42860, 42862, 42873, 42875, 42878, 42880, 42882, 42884,
- 42886, 42891, 42896, 42898, 42902, 42904, 42906, 42908,
- 42910, 42912, 42914, 42916, 42918, 42920, 42932, 42934,
- 42931, 65313, 65314, 65315, 65316, 65317, 65318, 65319,
- 65320, 65321, 65322, 65323, 65324, 65325, 65326, 65327,
- 65328, 65329, 65330, 65331, 65332, 65333, 65334, 65335,
- 65336, 65337, 65338, 55297, 56320, 55297, 56321, 55297,
- 56322, 55297, 56323, 55297, 56324, 55297, 56325, 55297,
- 56326, 55297, 56327, 55297, 56328, 55297, 56329, 55297,
- 56330, 55297, 56331, 55297, 56332, 55297, 56333, 55297,
- 56334, 55297, 56335, 55297, 56336, 55297, 56337, 55297,
- 56338, 55297, 56339, 55297, 56340, 55297, 56341, 55297,
- 56342, 55297, 56343, 55297, 56344, 55297, 56345, 55297,
- 56346, 55297, 56347, 55297, 56348, 55297, 56349, 55297,
- 56350, 55297, 56351, 55297, 56352, 55297, 56353, 55297,
- 56354, 55297, 56355, 55297, 56356, 55297, 56357, 55297,
- 56358, 55297, 56359, 55297, 56496, 55297, 56497, 55297,
- 56498, 55297, 56499, 55297, 56500, 55297, 56501, 55297,
- 56502, 55297, 56503, 55297, 56504, 55297, 56505, 55297,
- 56506, 55297, 56507, 55297, 56508, 55297, 56509, 55297,
- 56510, 55297, 56511, 55297, 56512, 55297, 56513, 55297,
- 56514, 55297, 56515, 55297, 56516, 55297, 56517, 55297,
- 56518, 55297, 56519, 55297, 56520, 55297, 56521, 55297,
- 56522, 55297, 56523, 55297, 56524, 55297, 56525, 55297,
- 56526, 55297, 56527, 55297, 56528, 55297, 56529, 55297,
- 56530, 55297, 56531, 55299, 56448, 55299, 56449, 55299,
- 56450, 55299, 56451, 55299, 56452, 55299, 56453, 55299,
- 56454, 55299, 56455, 55299, 56456, 55299, 56457, 55299,
- 56458, 55299, 56459, 55299, 56460, 55299, 56461, 55299,
- 56462, 55299, 56463, 55299, 56464, 55299, 56465, 55299,
- 56466, 55299, 56467, 55299, 56468, 55299, 56469, 55299,
- 56470, 55299, 56471, 55299, 56472, 55299, 56473, 55299,
- 56474, 55299, 56475, 55299, 56476, 55299, 56477, 55299,
- 56478, 55299, 56479, 55299, 56480, 55299, 56481, 55299,
- 56482, 55299, 56483, 55299, 56484, 55299, 56485, 55299,
- 56486, 55299, 56487, 55299, 56488, 55299, 56489, 55299,
- 56490, 55299, 56491, 55299, 56492, 55299, 56493, 55299,
- 56494, 55299, 56495, 55299, 56496, 55299, 56497, 55299,
- 56498, 55302, 56480, 55302, 56481, 55302, 56482, 55302,
- 56483, 55302, 56484, 55302, 56485, 55302, 56486, 55302,
- 56487, 55302, 56488, 55302, 56489, 55302, 56490, 55302,
- 56491, 55302, 56492, 55302, 56493, 55302, 56494, 55302,
- 56495, 55302, 56496, 55302, 56497, 55302, 56498, 55302,
- 56499, 55302, 56500, 55302, 56501, 55302, 56502, 55302,
- 56503, 55302, 56504, 55302, 56505, 55302, 56506, 55302,
- 56507, 55302, 56508, 55302, 56509, 55302, 56510, 55302,
- 56511, 55354, 56576, 55354, 56577, 55354, 56578, 55354,
- 56579, 55354, 56580, 55354, 56581, 55354, 56582, 55354,
- 56583, 55354, 56584, 55354, 56585, 55354, 56586, 55354,
- 56587, 55354, 56588, 55354, 56589, 55354, 56590, 55354,
- 56591, 55354, 56592, 55354, 56593, 55354, 56594, 55354,
- 56595, 55354, 56596, 55354, 56597, 55354, 56598, 55354,
- 56599, 55354, 56600, 55354, 56601, 55354, 56602, 55354,
- 56603, 55354, 56604, 55354, 56605, 55354, 56606, 55354,
+ 97, 98, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 32, 32, 776, 32, 772,
+ 50, 51, 32, 769, 956, 32, 807, 49,
+ 49, 8260, 52, 49, 8260, 50, 51, 8260,
+ 52, 65, 768, 224, 65, 769, 225, 65,
+ 770, 226, 65, 771, 227, 65, 776, 228,
+ 65, 778, 229, 230, 67, 807, 231, 69,
+ 768, 232, 69, 769, 233, 69, 770, 234,
+ 69, 776, 235, 73, 768, 236, 73, 769,
+ 237, 73, 770, 238, 73, 776, 239, 240,
+ 78, 771, 241, 79, 768, 242, 79, 769,
+ 243, 79, 770, 244, 79, 771, 245, 79,
+ 776, 246, 248, 85, 768, 249, 85, 769,
+ 250, 85, 770, 251, 85, 776, 252, 89,
+ 769, 253, 254, 115, 115, 97, 768, 97,
+ 769, 97, 770, 97, 771, 97, 776, 97,
+ 778, 99, 807, 101, 768, 101, 769, 101,
+ 770, 101, 776, 105, 768, 105, 769, 105,
+ 770, 105, 776, 110, 771, 111, 768, 111,
+ 769, 111, 770, 111, 771, 111, 776, 117,
+ 768, 117, 769, 117, 770, 117, 776, 121,
+ 769, 121, 776, 65, 772, 257, 97, 772,
+ 65, 774, 259, 97, 774, 65, 808, 261,
+ 97, 808, 67, 769, 263, 99, 769, 67,
+ 770, 265, 99, 770, 67, 775, 267, 99,
+ 775, 67, 780, 269, 99, 780, 68, 780,
+ 271, 100, 780, 273, 69, 772, 275, 101,
+ 772, 69, 774, 277, 101, 774, 69, 775,
+ 279, 101, 775, 69, 808, 281, 101, 808,
+ 69, 780, 283, 101, 780, 71, 770, 285,
+ 103, 770, 71, 774, 287, 103, 774, 71,
+ 775, 289, 103, 775, 71, 807, 291, 103,
+ 807, 72, 770, 293, 104, 770, 295, 73,
+ 771, 297, 105, 771, 73, 772, 299, 105,
+ 772, 73, 774, 301, 105, 774, 73, 808,
+ 303, 105, 808, 73, 775, 105, 775, 73,
+ 74, 307, 105, 106, 74, 770, 309, 106,
+ 770, 75, 807, 311, 107, 807, 76, 769,
+ 314, 108, 769, 76, 807, 316, 108, 807,
+ 76, 780, 318, 108, 780, 76, 183, 320,
+ 108, 183, 322, 78, 769, 324, 110, 769,
+ 78, 807, 326, 110, 807, 78, 780, 328,
+ 110, 780, 700, 110, 331, 79, 772, 333,
+ 111, 772, 79, 774, 335, 111, 774, 79,
+ 779, 337, 111, 779, 339, 82, 769, 341,
+ 114, 769, 82, 807, 343, 114, 807, 82,
+ 780, 345, 114, 780, 83, 769, 347, 115,
+ 769, 83, 770, 349, 115, 770, 83, 807,
+ 351, 115, 807, 83, 780, 353, 115, 780,
+ 84, 807, 355, 116, 807, 84, 780, 357,
+ 116, 780, 359, 85, 771, 361, 117, 771,
+ 85, 772, 363, 117, 772, 85, 774, 365,
+ 117, 774, 85, 778, 367, 117, 778, 85,
+ 779, 369, 117, 779, 85, 808, 371, 117,
+ 808, 87, 770, 373, 119, 770, 89, 770,
+ 375, 121, 770, 89, 776, 255, 90, 769,
+ 378, 122, 769, 90, 775, 380, 122, 775,
+ 90, 780, 382, 122, 780, 595, 387, 389,
+ 596, 392, 598, 599, 396, 477, 601, 603,
+ 402, 608, 611, 617, 616, 409, 623, 626,
+ 629, 79, 795, 417, 111, 795, 419, 421,
+ 640, 424, 643, 429, 648, 85, 795, 432,
+ 117, 795, 650, 651, 436, 438, 658, 441,
+ 445, 68, 381, 454, 68, 382, 100, 382,
+ 76, 74, 457, 76, 106, 108, 106, 78,
+ 74, 460, 78, 106, 110, 106, 65, 780,
+ 462, 97, 780, 73, 780, 464, 105, 780,
+ 79, 780, 466, 111, 780, 85, 780, 468,
+ 117, 780, 220, 772, 470, 252, 772, 220,
+ 769, 472, 252, 769, 220, 780, 474, 252,
+ 780, 220, 768, 476, 252, 768, 196, 772,
+ 479, 228, 772, 550, 772, 481, 551, 772,
+ 198, 772, 483, 230, 772, 485, 71, 780,
+ 487, 103, 780, 75, 780, 489, 107, 780,
+ 79, 808, 491, 111, 808, 490, 772, 493,
+ 491, 772, 439, 780, 495, 658, 780, 106,
+ 780, 68, 90, 499, 68, 122, 100, 122,
+ 71, 769, 501, 103, 769, 405, 447, 78,
+ 768, 505, 110, 768, 197, 769, 507, 229,
+ 769, 198, 769, 509, 230, 769, 216, 769,
+ 511, 248, 769, 65, 783, 513, 97, 783,
+ 65, 785, 515, 97, 785, 69, 783, 517,
+ 101, 783, 69, 785, 519, 101, 785, 73,
+ 783, 521, 105, 783, 73, 785, 523, 105,
+ 785, 79, 783, 525, 111, 783, 79, 785,
+ 527, 111, 785, 82, 783, 529, 114, 783,
+ 82, 785, 531, 114, 785, 85, 783, 533,
+ 117, 783, 85, 785, 535, 117, 785, 83,
+ 806, 537, 115, 806, 84, 806, 539, 116,
+ 806, 541, 72, 780, 543, 104, 780, 414,
+ 547, 549, 65, 775, 551, 97, 775, 69,
+ 807, 553, 101, 807, 214, 772, 555, 246,
+ 772, 213, 772, 557, 245, 772, 79, 775,
+ 559, 111, 775, 558, 772, 561, 559, 772,
+ 89, 772, 563, 121, 772, 11365, 572, 410,
+ 11366, 578, 384, 649, 652, 583, 585, 587,
+ 589, 591, 614, 633, 635, 641, 32, 774,
+ 32, 775, 32, 778, 32, 808, 32, 771,
+ 32, 779, 661, 768, 769, 787, 776, 769,
+ 953, 881, 883, 697, 887, 32, 837, 59,
+ 1011, 168, 769, 913, 769, 940, 183, 917,
+ 769, 941, 919, 769, 942, 921, 769, 943,
+ 927, 769, 972, 933, 769, 973, 937, 769,
+ 974, 970, 769, 953, 776, 769, 945, 946,
+ 947, 948, 949, 950, 951, 952, 954, 955,
+ 957, 958, 959, 960, 961, 963, 964, 965,
+ 966, 967, 968, 969, 921, 776, 970, 933,
+ 776, 971, 945, 769, 949, 769, 951, 769,
+ 953, 769, 971, 769, 965, 776, 769, 953,
+ 776, 965, 776, 959, 769, 965, 769, 969,
+ 769, 983, 933, 978, 769, 978, 776, 985,
+ 987, 989, 991, 993, 995, 997, 999, 1001,
+ 1003, 1005, 1007, 962, 920, 1016, 931, 1010,
+ 1019, 891, 892, 893, 1045, 768, 1104, 1045,
+ 776, 1105, 1106, 1043, 769, 1107, 1108, 1109,
+ 1110, 1030, 776, 1111, 1112, 1113, 1114, 1115,
+ 1050, 769, 1116, 1048, 768, 1117, 1059, 774,
+ 1118, 1119, 1072, 1073, 1074, 1075, 1076, 1077,
+ 1078, 1079, 1080, 1048, 774, 1081, 1082, 1083,
+ 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091,
+ 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099,
+ 1100, 1101, 1102, 1103, 1080, 774, 1077, 768,
+ 1077, 776, 1075, 769, 1110, 776, 1082, 769,
+ 1080, 768, 1091, 774, 1121, 1123, 1125, 1127,
+ 1129, 1131, 1133, 1135, 1137, 1139, 1141, 1140,
+ 783, 1143, 1141, 783, 1145, 1147, 1149, 1151,
+ 1153, 1163, 1165, 1167, 1169, 1171, 1173, 1175,
+ 1177, 1179, 1181, 1183, 1185, 1187, 1189, 1191,
+ 1193, 1195, 1197, 1199, 1201, 1203, 1205, 1207,
+ 1209, 1211, 1213, 1215, 1231, 1046, 774, 1218,
+ 1078, 774, 1220, 1222, 1224, 1226, 1228, 1230,
+ 1040, 774, 1233, 1072, 774, 1040, 776, 1235,
+ 1072, 776, 1237, 1045, 774, 1239, 1077, 774,
+ 1241, 1240, 776, 1243, 1241, 776, 1046, 776,
+ 1245, 1078, 776, 1047, 776, 1247, 1079, 776,
+ 1249, 1048, 772, 1251, 1080, 772, 1048, 776,
+ 1253, 1080, 776, 1054, 776, 1255, 1086, 776,
+ 1257, 1256, 776, 1259, 1257, 776, 1069, 776,
+ 1261, 1101, 776, 1059, 772, 1263, 1091, 772,
+ 1059, 776, 1265, 1091, 776, 1059, 779, 1267,
+ 1091, 779, 1063, 776, 1269, 1095, 776, 1271,
+ 1067, 776, 1273, 1099, 776, 1275, 1277, 1279,
+ 1281, 1283, 1285, 1287, 1289, 1291, 1293, 1295,
+ 1297, 1299, 1301, 1303, 1305, 1307, 1309, 1311,
+ 1313, 1315, 1317, 1319, 1321, 1323, 1325, 1327,
+ 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384,
+ 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392,
+ 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400,
+ 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408,
+ 1409, 1410, 1411, 1412, 1413, 1414, 1381, 1410,
+ 1575, 1619, 1575, 1620, 1608, 1620, 1575, 1621,
+ 1610, 1620, 1575, 1652, 1608, 1652, 1735, 1652,
+ 1610, 1652, 1749, 1620, 1729, 1620, 1746, 1620,
+ 2344, 2364, 2352, 2364, 2355, 2364, 2325, 2364,
+ 2326, 2364, 2327, 2364, 2332, 2364, 2337, 2364,
+ 2338, 2364, 2347, 2364, 2351, 2364, 2503, 2494,
+ 2503, 2519, 2465, 2492, 2466, 2492, 2479, 2492,
+ 2610, 2620, 2616, 2620, 2582, 2620, 2583, 2620,
+ 2588, 2620, 2603, 2620, 2887, 2902, 2887, 2878,
+ 2887, 2903, 2849, 2876, 2850, 2876, 2962, 3031,
+ 3014, 3006, 3015, 3006, 3014, 3031, 3142, 3158,
+ 3263, 3285, 3270, 3285, 3270, 3286, 3270, 3266,
+ 3274, 3285, 3398, 3390, 3399, 3390, 3398, 3415,
+ 3545, 3530, 3545, 3535, 3548, 3530, 3545, 3551,
+ 3661, 3634, 3789, 3762, 3755, 3737, 3755, 3745,
+ 3851, 3906, 4023, 3916, 4023, 3921, 4023, 3926,
+ 4023, 3931, 4023, 3904, 4021, 3953, 3954, 3953,
+ 3956, 4018, 3968, 4018, 3969, 4019, 3968, 4019,
+ 3969, 3953, 3968, 3986, 4023, 3996, 4023, 4001,
+ 4023, 4006, 4023, 4011, 4023, 3984, 4021, 4133,
+ 4142, 11520, 11521, 11522, 11523, 11524, 11525, 11526,
+ 11527, 11528, 11529, 11530, 11531, 11532, 11533, 11534,
+ 11535, 11536, 11537, 11538, 11539, 11540, 11541, 11542,
+ 11543, 11544, 11545, 11546, 11547, 11548, 11549, 11550,
+ 11551, 11552, 11553, 11554, 11555, 11556, 11557, 11559,
+ 11565, 4316, 5104, 5105, 5106, 5107, 5108, 5109,
+ 6917, 6965, 6919, 6965, 6921, 6965, 6923, 6965,
+ 6925, 6965, 6929, 6965, 6970, 6965, 6972, 6965,
+ 6974, 6965, 6975, 6965, 6978, 6965, 42571, 65,
+ 198, 66, 68, 69, 398, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 546, 80,
+ 82, 84, 85, 87, 592, 593, 7426, 604,
+ 7446, 7447, 7453, 7461, 594, 597, 607, 609,
+ 613, 618, 7547, 669, 621, 7557, 671, 625,
+ 624, 627, 628, 632, 642, 427, 7452, 656,
+ 657, 65, 805, 7681, 97, 805, 66, 775,
+ 7683, 98, 775, 66, 803, 7685, 98, 803,
+ 66, 817, 7687, 98, 817, 199, 769, 7689,
+ 231, 769, 68, 775, 7691, 100, 775, 68,
+ 803, 7693, 100, 803, 68, 817, 7695, 100,
+ 817, 68, 807, 7697, 100, 807, 68, 813,
+ 7699, 100, 813, 274, 768, 7701, 275, 768,
+ 274, 769, 7703, 275, 769, 69, 813, 7705,
+ 101, 813, 69, 816, 7707, 101, 816, 552,
+ 774, 7709, 553, 774, 70, 775, 7711, 102,
+ 775, 71, 772, 7713, 103, 772, 72, 775,
+ 7715, 104, 775, 72, 803, 7717, 104, 803,
+ 72, 776, 7719, 104, 776, 72, 807, 7721,
+ 104, 807, 72, 814, 7723, 104, 814, 73,
+ 816, 7725, 105, 816, 207, 769, 7727, 239,
+ 769, 75, 769, 7729, 107, 769, 75, 803,
+ 7731, 107, 803, 75, 817, 7733, 107, 817,
+ 76, 803, 7735, 108, 803, 7734, 772, 7737,
+ 7735, 772, 76, 817, 7739, 108, 817, 76,
+ 813, 7741, 108, 813, 77, 769, 7743, 109,
+ 769, 77, 775, 7745, 109, 775, 77, 803,
+ 7747, 109, 803, 78, 775, 7749, 110, 775,
+ 78, 803, 7751, 110, 803, 78, 817, 7753,
+ 110, 817, 78, 813, 7755, 110, 813, 213,
+ 769, 7757, 245, 769, 213, 776, 7759, 245,
+ 776, 332, 768, 7761, 333, 768, 332, 769,
+ 7763, 333, 769, 80, 769, 7765, 112, 769,
+ 80, 775, 7767, 112, 775, 82, 775, 7769,
+ 114, 775, 82, 803, 7771, 114, 803, 7770,
+ 772, 7773, 7771, 772, 82, 817, 7775, 114,
+ 817, 83, 775, 7777, 115, 775, 83, 803,
+ 7779, 115, 803, 346, 775, 7781, 347, 775,
+ 352, 775, 7783, 353, 775, 7778, 775, 7785,
+ 7779, 775, 84, 775, 7787, 116, 775, 84,
+ 803, 7789, 116, 803, 84, 817, 7791, 116,
+ 817, 84, 813, 7793, 116, 813, 85, 804,
+ 7795, 117, 804, 85, 816, 7797, 117, 816,
+ 85, 813, 7799, 117, 813, 360, 769, 7801,
+ 361, 769, 362, 776, 7803, 363, 776, 86,
+ 771, 7805, 118, 771, 86, 803, 7807, 118,
+ 803, 87, 768, 7809, 119, 768, 87, 769,
+ 7811, 119, 769, 87, 776, 7813, 119, 776,
+ 87, 775, 7815, 119, 775, 87, 803, 7817,
+ 119, 803, 88, 775, 7819, 120, 775, 88,
+ 776, 7821, 120, 776, 89, 775, 7823, 121,
+ 775, 90, 770, 7825, 122, 770, 90, 803,
+ 7827, 122, 803, 90, 817, 7829, 122, 817,
+ 104, 817, 116, 776, 119, 778, 121, 778,
+ 97, 702, 383, 775, 223, 65, 803, 7841,
+ 97, 803, 65, 777, 7843, 97, 777, 194,
+ 769, 7845, 226, 769, 194, 768, 7847, 226,
+ 768, 194, 777, 7849, 226, 777, 194, 771,
+ 7851, 226, 771, 7840, 770, 7853, 7841, 770,
+ 258, 769, 7855, 259, 769, 258, 768, 7857,
+ 259, 768, 258, 777, 7859, 259, 777, 258,
+ 771, 7861, 259, 771, 7840, 774, 7863, 7841,
+ 774, 69, 803, 7865, 101, 803, 69, 777,
+ 7867, 101, 777, 69, 771, 7869, 101, 771,
+ 202, 769, 7871, 234, 769, 202, 768, 7873,
+ 234, 768, 202, 777, 7875, 234, 777, 202,
+ 771, 7877, 234, 771, 7864, 770, 7879, 7865,
+ 770, 73, 777, 7881, 105, 777, 73, 803,
+ 7883, 105, 803, 79, 803, 7885, 111, 803,
+ 79, 777, 7887, 111, 777, 212, 769, 7889,
+ 244, 769, 212, 768, 7891, 244, 768, 212,
+ 777, 7893, 244, 777, 212, 771, 7895, 244,
+ 771, 7884, 770, 7897, 7885, 770, 416, 769,
+ 7899, 417, 769, 416, 768, 7901, 417, 768,
+ 416, 777, 7903, 417, 777, 416, 771, 7905,
+ 417, 771, 416, 803, 7907, 417, 803, 85,
+ 803, 7909, 117, 803, 85, 777, 7911, 117,
+ 777, 431, 769, 7913, 432, 769, 431, 768,
+ 7915, 432, 768, 431, 777, 7917, 432, 777,
+ 431, 771, 7919, 432, 771, 431, 803, 7921,
+ 432, 803, 89, 768, 7923, 121, 768, 89,
+ 803, 7925, 121, 803, 89, 777, 7927, 121,
+ 777, 89, 771, 7929, 121, 771, 7931, 7933,
+ 7935, 945, 787, 945, 788, 7936, 768, 7937,
+ 768, 7936, 769, 7937, 769, 7936, 834, 7937,
+ 834, 913, 787, 7936, 913, 788, 7937, 7944,
+ 768, 7938, 7945, 768, 7939, 7944, 769, 7940,
+ 7945, 769, 7941, 7944, 834, 7942, 7945, 834,
+ 7943, 949, 787, 949, 788, 7952, 768, 7953,
+ 768, 7952, 769, 7953, 769, 917, 787, 7952,
+ 917, 788, 7953, 7960, 768, 7954, 7961, 768,
+ 7955, 7960, 769, 7956, 7961, 769, 7957, 951,
+ 787, 951, 788, 7968, 768, 7969, 768, 7968,
+ 769, 7969, 769, 7968, 834, 7969, 834, 919,
+ 787, 7968, 919, 788, 7969, 7976, 768, 7970,
+ 7977, 768, 7971, 7976, 769, 7972, 7977, 769,
+ 7973, 7976, 834, 7974, 7977, 834, 7975, 953,
+ 787, 953, 788, 7984, 768, 7985, 768, 7984,
+ 769, 7985, 769, 7984, 834, 7985, 834, 921,
+ 787, 7984, 921, 788, 7985, 7992, 768, 7986,
+ 7993, 768, 7987, 7992, 769, 7988, 7993, 769,
+ 7989, 7992, 834, 7990, 7993, 834, 7991, 959,
+ 787, 959, 788, 8000, 768, 8001, 768, 8000,
+ 769, 8001, 769, 927, 787, 8000, 927, 788,
+ 8001, 8008, 768, 8002, 8009, 768, 8003, 8008,
+ 769, 8004, 8009, 769, 8005, 965, 787, 965,
+ 788, 8016, 768, 965, 787, 768, 8017, 768,
+ 8016, 769, 965, 787, 769, 8017, 769, 8016,
+ 834, 965, 787, 834, 8017, 834, 933, 788,
+ 8017, 8025, 768, 8019, 8025, 769, 8021, 8025,
+ 834, 8023, 969, 787, 969, 788, 8032, 768,
+ 8033, 768, 8032, 769, 8033, 769, 8032, 834,
+ 8033, 834, 937, 787, 8032, 937, 788, 8033,
+ 8040, 768, 8034, 8041, 768, 8035, 8040, 769,
+ 8036, 8041, 769, 8037, 8040, 834, 8038, 8041,
+ 834, 8039, 945, 768, 949, 768, 951, 768,
+ 953, 768, 959, 768, 965, 768, 969, 768,
+ 7936, 837, 7936, 953, 7937, 837, 7937, 953,
+ 7938, 837, 7938, 953, 7939, 837, 7939, 953,
+ 7940, 837, 7940, 953, 7941, 837, 7941, 953,
+ 7942, 837, 7942, 953, 7943, 837, 7943, 953,
+ 7944, 837, 8064, 7945, 837, 8065, 7946, 837,
+ 8066, 7947, 837, 8067, 7948, 837, 8068, 7949,
+ 837, 8069, 7950, 837, 8070, 7951, 837, 8071,
+ 7968, 837, 7968, 953, 7969, 837, 7969, 953,
+ 7970, 837, 7970, 953, 7971, 837, 7971, 953,
+ 7972, 837, 7972, 953, 7973, 837, 7973, 953,
+ 7974, 837, 7974, 953, 7975, 837, 7975, 953,
+ 7976, 837, 8080, 7977, 837, 8081, 7978, 837,
+ 8082, 7979, 837, 8083, 7980, 837, 8084, 7981,
+ 837, 8085, 7982, 837, 8086, 7983, 837, 8087,
+ 8032, 837, 8032, 953, 8033, 837, 8033, 953,
+ 8034, 837, 8034, 953, 8035, 837, 8035, 953,
+ 8036, 837, 8036, 953, 8037, 837, 8037, 953,
+ 8038, 837, 8038, 953, 8039, 837, 8039, 953,
+ 8040, 837, 8096, 8041, 837, 8097, 8042, 837,
+ 8098, 8043, 837, 8099, 8044, 837, 8100, 8045,
+ 837, 8101, 8046, 837, 8102, 8047, 837, 8103,
+ 945, 774, 945, 772, 8048, 837, 8048, 953,
+ 945, 837, 945, 953, 940, 837, 940, 953,
+ 945, 834, 8118, 837, 945, 834, 953, 913,
+ 774, 8112, 913, 772, 8113, 913, 768, 8048,
+ 902, 8049, 913, 837, 8115, 32, 787, 32,
+ 834, 168, 834, 8052, 837, 8052, 953, 951,
+ 837, 951, 953, 942, 837, 942, 953, 951,
+ 834, 8134, 837, 951, 834, 953, 917, 768,
+ 8050, 904, 8051, 919, 768, 8052, 905, 8053,
+ 919, 837, 8131, 8127, 768, 8127, 769, 8127,
+ 834, 953, 774, 953, 772, 970, 768, 953,
+ 776, 768, 912, 953, 834, 970, 834, 953,
+ 776, 834, 921, 774, 8144, 921, 772, 8145,
+ 921, 768, 8054, 906, 8055, 8190, 768, 8190,
+ 769, 8190, 834, 965, 774, 965, 772, 971,
+ 768, 965, 776, 768, 944, 961, 787, 961,
+ 788, 965, 834, 971, 834, 965, 776, 834,
+ 933, 774, 8160, 933, 772, 8161, 933, 768,
+ 8058, 910, 8059, 929, 788, 8165, 168, 768,
+ 901, 96, 8060, 837, 8060, 953, 969, 837,
+ 969, 953, 974, 837, 974, 953, 969, 834,
+ 8182, 837, 969, 834, 953, 927, 768, 8056,
+ 908, 8057, 937, 768, 8060, 911, 8061, 937,
+ 837, 8179, 180, 32, 788, 8194, 8195, 8208,
+ 32, 819, 46, 46, 46, 46, 46, 46,
+ 8242, 8242, 8242, 8242, 8242, 8245, 8245, 8245,
+ 8245, 8245, 33, 33, 32, 773, 63, 63,
+ 63, 33, 33, 63, 8242, 8242, 8242, 8242,
+ 48, 52, 53, 54, 55, 56, 57, 43,
+ 8722, 61, 40, 41, 82, 115, 97, 47,
+ 99, 97, 47, 115, 67, 176, 67, 99,
+ 47, 111, 99, 47, 117, 400, 176, 70,
+ 78, 111, 81, 83, 77, 84, 69, 76,
+ 84, 77, 90, 937, 197, 70, 8526, 1488,
+ 1489, 1490, 1491, 70, 65, 88, 915, 928,
+ 8721, 49, 8260, 55, 49, 8260, 57, 49,
+ 8260, 49, 48, 49, 8260, 51, 50, 8260,
+ 51, 49, 8260, 53, 50, 8260, 53, 51,
+ 8260, 53, 52, 8260, 53, 49, 8260, 54,
+ 53, 8260, 54, 49, 8260, 56, 51, 8260,
+ 56, 53, 8260, 56, 55, 8260, 56, 49,
+ 8260, 8560, 73, 73, 8561, 73, 73, 73,
+ 8562, 73, 86, 8563, 86, 8564, 86, 73,
+ 8565, 86, 73, 73, 8566, 86, 73, 73,
+ 73, 8567, 73, 88, 8568, 88, 8569, 88,
+ 73, 8570, 88, 73, 73, 8571, 8572, 8573,
+ 8574, 8575, 105, 105, 105, 105, 105, 105,
+ 118, 118, 105, 118, 105, 105, 118, 105,
+ 105, 105, 105, 120, 120, 105, 120, 105,
+ 105, 8580, 48, 8260, 51, 8592, 824, 8594,
+ 824, 8596, 824, 8656, 824, 8660, 824, 8658,
+ 824, 8707, 824, 8712, 824, 8715, 824, 8739,
+ 824, 8741, 824, 8747, 8747, 8747, 8747, 8747,
+ 8750, 8750, 8750, 8750, 8750, 8764, 824, 8771,
+ 824, 8773, 824, 8776, 824, 61, 824, 8801,
+ 824, 8781, 824, 60, 824, 62, 824, 8804,
+ 824, 8805, 824, 8818, 824, 8819, 824, 8822,
+ 824, 8823, 824, 8826, 824, 8827, 824, 8834,
+ 824, 8835, 824, 8838, 824, 8839, 824, 8866,
+ 824, 8872, 824, 8873, 824, 8875, 824, 8828,
+ 824, 8829, 824, 8849, 824, 8850, 824, 8882,
+ 824, 8883, 824, 8884, 824, 8885, 824, 12296,
+ 12297, 49, 48, 49, 49, 49, 50, 49,
+ 51, 49, 52, 49, 53, 49, 54, 49,
+ 55, 49, 56, 49, 57, 50, 48, 40,
+ 49, 41, 40, 50, 41, 40, 51, 41,
+ 40, 52, 41, 40, 53, 41, 40, 54,
+ 41, 40, 55, 41, 40, 56, 41, 40,
+ 57, 41, 40, 49, 48, 41, 40, 49,
+ 49, 41, 40, 49, 50, 41, 40, 49,
+ 51, 41, 40, 49, 52, 41, 40, 49,
+ 53, 41, 40, 49, 54, 41, 40, 49,
+ 55, 41, 40, 49, 56, 41, 40, 49,
+ 57, 41, 40, 50, 48, 41, 49, 46,
+ 50, 46, 51, 46, 52, 46, 53, 46,
+ 54, 46, 55, 46, 56, 46, 57, 46,
+ 49, 48, 46, 49, 49, 46, 49, 50,
+ 46, 49, 51, 46, 49, 52, 46, 49,
+ 53, 46, 49, 54, 46, 49, 55, 46,
+ 49, 56, 46, 49, 57, 46, 50, 48,
+ 46, 40, 97, 41, 40, 98, 41, 40,
+ 99, 41, 40, 100, 41, 40, 101, 41,
+ 40, 102, 41, 40, 103, 41, 40, 104,
+ 41, 40, 105, 41, 40, 106, 41, 40,
+ 107, 41, 40, 108, 41, 40, 109, 41,
+ 40, 110, 41, 40, 111, 41, 40, 112,
+ 41, 40, 113, 41, 40, 114, 41, 40,
+ 115, 41, 40, 116, 41, 40, 117, 41,
+ 40, 118, 41, 40, 119, 41, 40, 120,
+ 41, 40, 121, 41, 40, 122, 41, 9424,
+ 9425, 9426, 9427, 9428, 9429, 9430, 9431, 9432,
+ 9433, 9434, 9435, 9436, 9437, 9438, 9439, 9440,
+ 9441, 83, 9442, 9443, 9444, 9445, 9446, 9447,
+ 89, 9448, 9449, 8747, 8747, 8747, 8747, 58,
+ 58, 61, 61, 61, 61, 61, 61, 10973,
+ 824, 11312, 11313, 11314, 11315, 11316, 11317, 11318,
+ 11319, 11320, 11321, 11322, 11323, 11324, 11325, 11326,
+ 11327, 11328, 11329, 11330, 11331, 11332, 11333, 11334,
+ 11335, 11336, 11337, 11338, 11339, 11340, 11341, 11342,
+ 11343, 11344, 11345, 11346, 11347, 11348, 11349, 11350,
+ 11351, 11352, 11353, 11354, 11355, 11356, 11357, 11358,
+ 11361, 619, 7549, 637, 11368, 11370, 11372, 11379,
+ 11382, 575, 576, 11393, 11395, 11397, 11399, 11401,
+ 11403, 11405, 11407, 11409, 11411, 11413, 11415, 11417,
+ 11419, 11421, 11423, 11425, 11427, 11429, 11431, 11433,
+ 11435, 11437, 11439, 11441, 11443, 11445, 11447, 11449,
+ 11451, 11453, 11455, 11457, 11459, 11461, 11463, 11465,
+ 11467, 11469, 11471, 11473, 11475, 11477, 11479, 11481,
+ 11483, 11485, 11487, 11489, 11491, 11500, 11502, 11507,
+ 11617, 27597, 40863, 19968, 20008, 20022, 20031, 20057,
+ 20101, 20108, 20128, 20154, 20799, 20837, 20843, 20866,
+ 20886, 20907, 20960, 20981, 20992, 21147, 21241, 21269,
+ 21274, 21304, 21313, 21340, 21353, 21378, 21430, 21448,
+ 21475, 22231, 22303, 22763, 22786, 22794, 22805, 22823,
+ 22899, 23376, 23424, 23544, 23567, 23586, 23608, 23662,
+ 23665, 24027, 24037, 24049, 24062, 24178, 24186, 24191,
+ 24308, 24318, 24331, 24339, 24400, 24417, 24435, 24515,
+ 25096, 25142, 25163, 25903, 25908, 25991, 26007, 26020,
+ 26041, 26080, 26085, 26352, 26376, 26408, 27424, 27490,
+ 27513, 27571, 27595, 27604, 27611, 27663, 27668, 27700,
+ 28779, 29226, 29238, 29243, 29247, 29255, 29273, 29275,
+ 29356, 29572, 29577, 29916, 29926, 29976, 29983, 29992,
+ 30000, 30091, 30098, 30326, 30333, 30382, 30399, 30446,
+ 30683, 30690, 30707, 31034, 31160, 31166, 31348, 31435,
+ 31481, 31859, 31992, 32566, 32593, 32650, 32701, 32769,
+ 32780, 32786, 32819, 32895, 32905, 33251, 33258, 33267,
+ 33276, 33292, 33307, 33311, 33390, 33394, 33400, 34381,
+ 34411, 34880, 34892, 34915, 35198, 35211, 35282, 35328,
+ 35895, 35910, 35925, 35960, 35997, 36196, 36208, 36275,
+ 36523, 36554, 36763, 36784, 36789, 37009, 37193, 37318,
+ 37324, 37329, 38263, 38272, 38428, 38582, 38585, 38632,
+ 38737, 38750, 38754, 38761, 38859, 38893, 38899, 38913,
+ 39080, 39131, 39135, 39318, 39321, 39340, 39592, 39640,
+ 39647, 39717, 39727, 39730, 39740, 39770, 40165, 40565,
+ 40575, 40613, 40635, 40643, 40653, 40657, 40697, 40701,
+ 40718, 40723, 40736, 40763, 40778, 40786, 40845, 40860,
+ 40864, 12306, 21316, 21317, 12363, 12441, 12365, 12441,
+ 12367, 12441, 12369, 12441, 12371, 12441, 12373, 12441,
+ 12375, 12441, 12377, 12441, 12379, 12441, 12381, 12441,
+ 12383, 12441, 12385, 12441, 12388, 12441, 12390, 12441,
+ 12392, 12441, 12399, 12441, 12399, 12442, 12402, 12441,
+ 12402, 12442, 12405, 12441, 12405, 12442, 12408, 12441,
+ 12408, 12442, 12411, 12441, 12411, 12442, 12358, 12441,
+ 32, 12441, 32, 12442, 12445, 12441, 12424, 12426,
+ 12459, 12441, 12461, 12441, 12463, 12441, 12465, 12441,
+ 12467, 12441, 12469, 12441, 12471, 12441, 12473, 12441,
+ 12475, 12441, 12477, 12441, 12479, 12441, 12481, 12441,
+ 12484, 12441, 12486, 12441, 12488, 12441, 12495, 12441,
+ 12495, 12442, 12498, 12441, 12498, 12442, 12501, 12441,
+ 12501, 12442, 12504, 12441, 12504, 12442, 12507, 12441,
+ 12507, 12442, 12454, 12441, 12527, 12441, 12528, 12441,
+ 12529, 12441, 12530, 12441, 12541, 12441, 12467, 12488,
+ 4352, 4353, 4522, 4354, 4524, 4525, 4355, 4356,
+ 4357, 4528, 4529, 4530, 4531, 4532, 4533, 4378,
+ 4358, 4359, 4360, 4385, 4361, 4362, 4363, 4364,
+ 4365, 4366, 4367, 4368, 4369, 4370, 4449, 4450,
+ 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458,
+ 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466,
+ 4467, 4468, 4469, 4448, 4372, 4373, 4551, 4552,
+ 4556, 4558, 4563, 4567, 4569, 4380, 4573, 4575,
+ 4381, 4382, 4384, 4386, 4387, 4391, 4393, 4395,
+ 4396, 4397, 4398, 4399, 4402, 4406, 4416, 4423,
+ 4428, 4593, 4594, 4439, 4440, 4441, 4484, 4485,
+ 4488, 4497, 4498, 4500, 4510, 4513, 19977, 22235,
+ 19978, 20013, 19979, 30002, 19993, 19969, 22825, 22320,
+ 40, 4352, 41, 40, 4354, 41, 40, 4355,
+ 41, 40, 4357, 41, 40, 4358, 41, 40,
+ 4359, 41, 40, 4361, 41, 40, 4363, 41,
+ 40, 4364, 41, 40, 4366, 41, 40, 4367,
+ 41, 40, 4368, 41, 40, 4369, 41, 40,
+ 4370, 41, 40, 4352, 4449, 41, 40, 4354,
+ 4449, 41, 40, 4355, 4449, 41, 40, 4357,
+ 4449, 41, 40, 4358, 4449, 41, 40, 4359,
+ 4449, 41, 40, 4361, 4449, 41, 40, 4363,
+ 4449, 41, 40, 4364, 4449, 41, 40, 4366,
+ 4449, 41, 40, 4367, 4449, 41, 40, 4368,
+ 4449, 41, 40, 4369, 4449, 41, 40, 4370,
+ 4449, 41, 40, 4364, 4462, 41, 40, 4363,
+ 4457, 4364, 4453, 4523, 41, 40, 4363, 4457,
+ 4370, 4462, 41, 40, 19968, 41, 40, 20108,
+ 41, 40, 19977, 41, 40, 22235, 41, 40,
+ 20116, 41, 40, 20845, 41, 40, 19971, 41,
+ 40, 20843, 41, 40, 20061, 41, 40, 21313,
+ 41, 40, 26376, 41, 40, 28779, 41, 40,
+ 27700, 41, 40, 26408, 41, 40, 37329, 41,
+ 40, 22303, 41, 40, 26085, 41, 40, 26666,
+ 41, 40, 26377, 41, 40, 31038, 41, 40,
+ 21517, 41, 40, 29305, 41, 40, 36001, 41,
+ 40, 31069, 41, 40, 21172, 41, 40, 20195,
+ 41, 40, 21628, 41, 40, 23398, 41, 40,
+ 30435, 41, 40, 20225, 41, 40, 36039, 41,
+ 40, 21332, 41, 40, 31085, 41, 40, 20241,
+ 41, 40, 33258, 41, 40, 33267, 41, 21839,
+ 24188, 31631, 80, 84, 69, 50, 49, 50,
+ 50, 50, 51, 50, 52, 50, 53, 50,
+ 54, 50, 55, 50, 56, 50, 57, 51,
+ 48, 51, 49, 51, 50, 51, 51, 51,
+ 52, 51, 53, 4352, 4449, 4354, 4449, 4355,
+ 4449, 4357, 4449, 4358, 4449, 4359, 4449, 4361,
+ 4449, 4363, 4449, 4364, 4449, 4366, 4449, 4367,
+ 4449, 4368, 4449, 4369, 4449, 4370, 4449, 4366,
+ 4449, 4535, 4352, 4457, 4364, 4462, 4363, 4468,
+ 4363, 4462, 20116, 20845, 19971, 20061, 26666, 26377,
+ 31038, 21517, 29305, 36001, 31069, 21172, 31192, 30007,
+ 36969, 20778, 21360, 27880, 38917, 20241, 20889, 27491,
+ 24038, 21491, 21307, 23447, 23398, 30435, 20225, 36039,
+ 21332, 22812, 51, 54, 51, 55, 51, 56,
+ 51, 57, 52, 48, 52, 49, 52, 50,
+ 52, 51, 52, 52, 52, 53, 52, 54,
+ 52, 55, 52, 56, 52, 57, 53, 48,
+ 49, 26376, 50, 26376, 51, 26376, 52, 26376,
+ 53, 26376, 54, 26376, 55, 26376, 56, 26376,
+ 57, 26376, 49, 48, 26376, 49, 49, 26376,
+ 49, 50, 26376, 72, 103, 101, 114, 103,
+ 101, 86, 76, 84, 68, 12450, 12452, 12454,
+ 12456, 12458, 12459, 12461, 12463, 12465, 12467, 12469,
+ 12471, 12473, 12475, 12477, 12479, 12481, 12484, 12486,
+ 12488, 12490, 12491, 12492, 12493, 12494, 12495, 12498,
+ 12501, 12504, 12507, 12510, 12511, 12512, 12513, 12514,
+ 12516, 12518, 12520, 12521, 12522, 12523, 12524, 12525,
+ 12527, 12528, 12529, 12530, 12450, 12497, 12540, 12488,
+ 12450, 12523, 12501, 12449, 12450, 12531, 12506, 12450,
+ 12450, 12540, 12523, 12452, 12491, 12531, 12464, 12452,
+ 12531, 12481, 12454, 12457, 12531, 12456, 12473, 12463,
+ 12540, 12489, 12456, 12540, 12459, 12540, 12458, 12531,
+ 12473, 12458, 12540, 12512, 12459, 12452, 12522, 12459,
+ 12521, 12483, 12488, 12459, 12525, 12522, 12540, 12460,
+ 12525, 12531, 12460, 12531, 12510, 12462, 12460, 12462,
+ 12491, 12540, 12461, 12517, 12522, 12540, 12462, 12523,
+ 12480, 12540, 12461, 12525, 12461, 12525, 12464, 12521,
+ 12512, 12461, 12525, 12513, 12540, 12488, 12523, 12461,
+ 12525, 12527, 12483, 12488, 12464, 12521, 12512, 12464,
+ 12521, 12512, 12488, 12531, 12463, 12523, 12476, 12452,
+ 12525, 12463, 12525, 12540, 12493, 12465, 12540, 12473,
+ 12467, 12523, 12490, 12467, 12540, 12509, 12469, 12452,
+ 12463, 12523, 12469, 12531, 12481, 12540, 12512, 12471,
+ 12522, 12531, 12464, 12475, 12531, 12481, 12475, 12531,
+ 12488, 12480, 12540, 12473, 12487, 12471, 12489, 12523,
+ 12488, 12531, 12490, 12494, 12494, 12483, 12488, 12495,
+ 12452, 12484, 12497, 12540, 12475, 12531, 12488, 12497,
+ 12540, 12484, 12496, 12540, 12524, 12523, 12500, 12450,
+ 12473, 12488, 12523, 12500, 12463, 12523, 12500, 12467,
+ 12499, 12523, 12501, 12449, 12521, 12483, 12489, 12501,
+ 12451, 12540, 12488, 12502, 12483, 12471, 12455, 12523,
+ 12501, 12521, 12531, 12504, 12463, 12479, 12540, 12523,
+ 12506, 12477, 12506, 12491, 12498, 12504, 12523, 12484,
+ 12506, 12531, 12473, 12506, 12540, 12472, 12505, 12540,
+ 12479, 12509, 12452, 12531, 12488, 12508, 12523, 12488,
+ 12507, 12531, 12509, 12531, 12489, 12507, 12540, 12523,
+ 12507, 12540, 12531, 12510, 12452, 12463, 12525, 12510,
+ 12452, 12523, 12510, 12483, 12495, 12510, 12523, 12463,
+ 12510, 12531, 12471, 12519, 12531, 12511, 12463, 12525,
+ 12531, 12511, 12522, 12511, 12522, 12496, 12540, 12523,
+ 12513, 12460, 12513, 12460, 12488, 12531, 12513, 12540,
+ 12488, 12523, 12516, 12540, 12489, 12516, 12540, 12523,
+ 12518, 12450, 12531, 12522, 12483, 12488, 12523, 12522,
+ 12521, 12523, 12500, 12540, 12523, 12540, 12502, 12523,
+ 12524, 12512, 12524, 12531, 12488, 12466, 12531, 12527,
+ 12483, 12488, 48, 28857, 49, 28857, 50, 28857,
+ 51, 28857, 52, 28857, 53, 28857, 54, 28857,
+ 55, 28857, 56, 28857, 57, 28857, 49, 48,
+ 28857, 49, 49, 28857, 49, 50, 28857, 49,
+ 51, 28857, 49, 52, 28857, 49, 53, 28857,
+ 49, 54, 28857, 49, 55, 28857, 49, 56,
+ 28857, 49, 57, 28857, 50, 48, 28857, 50,
+ 49, 28857, 50, 50, 28857, 50, 51, 28857,
+ 50, 52, 28857, 104, 80, 97, 100, 97,
+ 65, 85, 98, 97, 114, 111, 86, 112,
+ 99, 100, 109, 100, 109, 178, 100, 109,
+ 179, 73, 85, 24179, 25104, 26157, 21644, 22823,
+ 27491, 26126, 27835, 26666, 24335, 20250, 31038, 112,
+ 65, 110, 65, 956, 65, 109, 65, 107,
+ 65, 75, 66, 77, 66, 71, 66, 99,
+ 97, 108, 107, 99, 97, 108, 112, 70,
+ 110, 70, 956, 70, 956, 103, 109, 103,
+ 107, 103, 72, 122, 107, 72, 122, 77,
+ 72, 122, 71, 72, 122, 84, 72, 122,
+ 956, 8467, 109, 8467, 100, 8467, 107, 8467,
+ 102, 109, 110, 109, 956, 109, 109, 109,
+ 99, 109, 107, 109, 109, 109, 178, 99,
+ 109, 178, 109, 178, 107, 109, 178, 109,
+ 109, 179, 99, 109, 179, 109, 179, 107,
+ 109, 179, 109, 8725, 115, 109, 8725, 115,
+ 178, 80, 97, 107, 80, 97, 77, 80,
+ 97, 71, 80, 97, 114, 97, 100, 114,
+ 97, 100, 8725, 115, 114, 97, 100, 8725,
+ 115, 178, 112, 115, 110, 115, 956, 115,
+ 109, 115, 112, 86, 110, 86, 956, 86,
+ 109, 86, 107, 86, 77, 86, 112, 87,
+ 110, 87, 956, 87, 109, 87, 107, 87,
+ 77, 87, 107, 937, 77, 937, 97, 46,
+ 109, 46, 66, 113, 99, 99, 99, 100,
+ 67, 8725, 107, 103, 67, 111, 46, 100,
+ 66, 71, 121, 104, 97, 72, 80, 105,
+ 110, 75, 75, 75, 77, 107, 116, 108,
+ 109, 108, 110, 108, 111, 103, 108, 120,
+ 109, 98, 109, 105, 108, 109, 111, 108,
+ 80, 72, 112, 46, 109, 46, 80, 80,
+ 77, 80, 82, 115, 114, 83, 118, 87,
+ 98, 86, 8725, 109, 65, 8725, 109, 49,
+ 26085, 50, 26085, 51, 26085, 52, 26085, 53,
+ 26085, 54, 26085, 55, 26085, 56, 26085, 57,
+ 26085, 49, 48, 26085, 49, 49, 26085, 49,
+ 50, 26085, 49, 51, 26085, 49, 52, 26085,
+ 49, 53, 26085, 49, 54, 26085, 49, 55,
+ 26085, 49, 56, 26085, 49, 57, 26085, 50,
+ 48, 26085, 50, 49, 26085, 50, 50, 26085,
+ 50, 51, 26085, 50, 52, 26085, 50, 53,
+ 26085, 50, 54, 26085, 50, 55, 26085, 50,
+ 56, 26085, 50, 57, 26085, 51, 48, 26085,
+ 51, 49, 26085, 103, 97, 108, 42561, 42563,
+ 42565, 42567, 42569, 42573, 42575, 42577, 42579, 42581,
+ 42583, 42585, 42587, 42589, 42591, 42593, 42595, 42597,
+ 42599, 42601, 42603, 42605, 42625, 42627, 42629, 42631,
+ 42633, 42635, 42637, 42639, 42641, 42643, 42645, 42647,
+ 42649, 42651, 42787, 42789, 42791, 42793, 42795, 42797,
+ 42799, 42803, 42805, 42807, 42809, 42811, 42813, 42815,
+ 42817, 42819, 42821, 42823, 42825, 42827, 42829, 42831,
+ 42833, 42835, 42837, 42839, 42841, 42843, 42845, 42847,
+ 42849, 42851, 42853, 42855, 42857, 42859, 42861, 42863,
+ 42874, 42876, 7545, 42879, 42881, 42883, 42885, 42887,
+ 42892, 42897, 42899, 42903, 42905, 42907, 42909, 42911,
+ 42913, 42915, 42917, 42919, 42921, 620, 670, 647,
+ 43859, 42933, 42935, 294, 43831, 43858, 5024, 5025,
+ 5026, 5027, 5028, 5029, 5030, 5031, 5032, 5033,
+ 5034, 5035, 5036, 5037, 5038, 5039, 5040, 5041,
+ 5042, 5043, 5044, 5045, 5046, 5047, 5048, 5049,
+ 5050, 5051, 5052, 5053, 5054, 5055, 5056, 5057,
+ 5058, 5059, 5060, 5061, 5062, 5063, 5064, 5065,
+ 5066, 5067, 5068, 5069, 5070, 5071, 5072, 5073,
+ 5074, 5075, 5076, 5077, 5078, 5079, 5080, 5081,
+ 5082, 5083, 5084, 5085, 5086, 5087, 5088, 5089,
+ 5090, 5091, 5092, 5093, 5094, 5095, 5096, 5097,
+ 5098, 5099, 5100, 5101, 5102, 5103, 35912, 26356,
+ 36040, 28369, 20018, 21477, 22865, 21895, 22856, 25078,
+ 30313, 32645, 34367, 34746, 35064, 37007, 27138, 27931,
+ 28889, 29662, 33853, 37226, 39409, 20098, 21365, 27396,
+ 29211, 34349, 40478, 23888, 28651, 34253, 35172, 25289,
+ 33240, 34847, 24266, 26391, 28010, 29436, 37070, 20358,
+ 20919, 21214, 25796, 27347, 29200, 30439, 34310, 34396,
+ 36335, 38706, 39791, 40442, 30860, 31103, 32160, 33737,
+ 37636, 35542, 22751, 24324, 31840, 32894, 29282, 30922,
+ 36034, 38647, 22744, 23650, 27155, 28122, 28431, 32047,
+ 32311, 38475, 21202, 32907, 20956, 20940, 31260, 32190,
+ 33777, 38517, 35712, 25295, 35582, 20025, 23527, 24594,
+ 29575, 30064, 21271, 30971, 20415, 24489, 19981, 27852,
+ 25976, 32034, 21443, 22622, 30465, 33865, 35498, 27578,
+ 27784, 25342, 33509, 25504, 30053, 20142, 20841, 20937,
+ 26753, 31975, 33391, 35538, 37327, 21237, 21570, 24300,
+ 26053, 28670, 31018, 38317, 39530, 40599, 40654, 26310,
+ 27511, 36706, 24180, 24976, 25088, 25754, 28451, 29001,
+ 29833, 31178, 32244, 32879, 36646, 34030, 36899, 37706,
+ 21015, 21155, 21693, 28872, 35010, 24265, 24565, 25467,
+ 27566, 31806, 29557, 20196, 22265, 23994, 24604, 29618,
+ 29801, 32666, 32838, 37428, 38646, 38728, 38936, 20363,
+ 31150, 37300, 38584, 24801, 20102, 20698, 23534, 23615,
+ 26009, 29134, 30274, 34044, 36988, 26248, 38446, 21129,
+ 26491, 26611, 27969, 28316, 29705, 30041, 30827, 32016,
+ 39006, 25134, 38520, 20523, 23833, 28138, 36650, 24459,
+ 24900, 26647, 38534, 21033, 21519, 23653, 26131, 26446,
+ 26792, 27877, 29702, 30178, 32633, 35023, 35041, 38626,
+ 21311, 28346, 21533, 29136, 29848, 34298, 38563, 40023,
+ 40607, 26519, 28107, 33256, 31520, 31890, 29376, 28825,
+ 35672, 20160, 33590, 21050, 20999, 24230, 25299, 31958,
+ 23429, 27934, 26292, 36667, 38477, 24275, 20800, 21952,
+ 22618, 26228, 20958, 29482, 30410, 31036, 31070, 31077,
+ 31119, 38742, 31934, 34322, 35576, 36920, 37117, 39151,
+ 39164, 39208, 40372, 37086, 38583, 20398, 20711, 20813,
+ 21193, 21220, 21329, 21917, 22022, 22120, 22592, 22696,
+ 23652, 24724, 24936, 24974, 25074, 25935, 26082, 26257,
+ 26757, 28023, 28186, 28450, 29038, 29227, 29730, 30865,
+ 31049, 31048, 31056, 31062, 31117, 31118, 31296, 31361,
+ 31680, 32265, 32321, 32626, 32773, 33261, 33401, 33879,
+ 35088, 35222, 35585, 35641, 36051, 36104, 36790, 38627,
+ 38911, 38971, 24693, 55376, 57070, 33304, 20006, 20917,
+ 20840, 20352, 20805, 20864, 21191, 21242, 21845, 21913,
+ 21986, 22707, 22852, 22868, 23138, 23336, 24274, 24281,
+ 24425, 24493, 24792, 24910, 24840, 24928, 25140, 25540,
+ 25628, 25682, 25942, 26395, 26454, 28379, 28363, 28702,
+ 30631, 29237, 29359, 29809, 29958, 30011, 30237, 30239,
+ 30427, 30452, 30538, 30528, 30924, 31409, 31867, 32091,
+ 32574, 33618, 33775, 34681, 35137, 35206, 35519, 35531,
+ 35565, 35722, 36664, 36978, 37273, 37494, 38524, 38875,
+ 38923, 39698, 55370, 56394, 55370, 56388, 55372, 57301,
+ 15261, 16408, 16441, 55380, 56905, 55383, 56528, 55391,
+ 57043, 40771, 40846, 102, 102, 102, 105, 102,
+ 108, 102, 102, 105, 102, 102, 108, 383,
+ 116, 115, 116, 1396, 1398, 1396, 1381, 1396,
+ 1387, 1406, 1398, 1396, 1389, 1497, 1460, 1522,
+ 1463, 1506, 1492, 1499, 1500, 1501, 1512, 1514,
+ 1513, 1473, 1513, 1474, 64329, 1473, 64329, 1474,
+ 1488, 1463, 1488, 1464, 1488, 1468, 1489, 1468,
+ 1490, 1468, 1491, 1468, 1492, 1468, 1493, 1468,
+ 1494, 1468, 1496, 1468, 1497, 1468, 1498, 1468,
+ 1499, 1468, 1500, 1468, 1502, 1468, 1504, 1468,
+ 1505, 1468, 1507, 1468, 1508, 1468, 1510, 1468,
+ 1511, 1468, 1512, 1468, 1513, 1468, 1514, 1468,
+ 1493, 1465, 1489, 1471, 1499, 1471, 1508, 1471,
+ 1488, 1500, 1649, 1659, 1662, 1664, 1658, 1663,
+ 1657, 1700, 1702, 1668, 1667, 1670, 1671, 1677,
+ 1676, 1678, 1672, 1688, 1681, 1705, 1711, 1715,
+ 1713, 1722, 1723, 1728, 1729, 1726, 1746, 1747,
+ 1709, 1735, 1734, 1736, 1655, 1739, 1733, 1737,
+ 1744, 1609, 1574, 1575, 1574, 1749, 1574, 1608,
+ 1574, 1735, 1574, 1734, 1574, 1736, 1574, 1744,
+ 1574, 1609, 1740, 1574, 1580, 1574, 1581, 1574,
+ 1605, 1574, 1610, 1576, 1580, 1576, 1581, 1576,
+ 1582, 1576, 1605, 1576, 1609, 1576, 1610, 1578,
+ 1580, 1578, 1581, 1578, 1582, 1578, 1605, 1578,
+ 1609, 1578, 1610, 1579, 1580, 1579, 1605, 1579,
+ 1609, 1579, 1610, 1580, 1581, 1580, 1605, 1581,
+ 1580, 1581, 1605, 1582, 1580, 1582, 1581, 1582,
+ 1605, 1587, 1580, 1587, 1581, 1587, 1582, 1587,
+ 1605, 1589, 1581, 1589, 1605, 1590, 1580, 1590,
+ 1581, 1590, 1582, 1590, 1605, 1591, 1581, 1591,
+ 1605, 1592, 1605, 1593, 1580, 1593, 1605, 1594,
+ 1580, 1594, 1605, 1601, 1580, 1601, 1581, 1601,
+ 1582, 1601, 1605, 1601, 1609, 1601, 1610, 1602,
+ 1581, 1602, 1605, 1602, 1609, 1602, 1610, 1603,
+ 1575, 1603, 1580, 1603, 1581, 1603, 1582, 1603,
+ 1604, 1603, 1605, 1603, 1609, 1603, 1610, 1604,
+ 1580, 1604, 1581, 1604, 1582, 1604, 1605, 1604,
+ 1609, 1604, 1610, 1605, 1580, 1605, 1581, 1605,
+ 1582, 1605, 1605, 1605, 1609, 1605, 1610, 1606,
+ 1580, 1606, 1581, 1606, 1582, 1606, 1605, 1606,
+ 1609, 1606, 1610, 1607, 1580, 1607, 1605, 1607,
+ 1609, 1607, 1610, 1610, 1580, 1610, 1581, 1610,
+ 1582, 1610, 1605, 1610, 1609, 1610, 1610, 1584,
+ 1648, 1585, 1648, 1609, 1648, 32, 1612, 1617,
+ 32, 1613, 1617, 32, 1614, 1617, 32, 1615,
+ 1617, 32, 1616, 1617, 32, 1617, 1648, 1574,
+ 1585, 1574, 1586, 1574, 1606, 1576, 1585, 1576,
+ 1586, 1576, 1606, 1578, 1585, 1578, 1586, 1578,
+ 1606, 1579, 1585, 1579, 1586, 1579, 1606, 1605,
+ 1575, 1606, 1585, 1606, 1586, 1606, 1606, 1610,
+ 1585, 1610, 1586, 1610, 1606, 1574, 1582, 1574,
+ 1607, 1576, 1607, 1578, 1607, 1589, 1582, 1604,
+ 1607, 1606, 1607, 1607, 1648, 1610, 1607, 1579,
+ 1607, 1587, 1607, 1588, 1605, 1588, 1607, 1600,
+ 1614, 1617, 1600, 1615, 1617, 1600, 1616, 1617,
+ 1591, 1609, 1591, 1610, 1593, 1609, 1593, 1610,
+ 1594, 1609, 1594, 1610, 1587, 1609, 1587, 1610,
+ 1588, 1609, 1588, 1610, 1581, 1609, 1581, 1610,
+ 1580, 1609, 1580, 1610, 1582, 1609, 1582, 1610,
+ 1589, 1609, 1589, 1610, 1590, 1609, 1590, 1610,
+ 1588, 1580, 1588, 1581, 1588, 1582, 1588, 1585,
+ 1587, 1585, 1589, 1585, 1590, 1585, 1575, 1611,
+ 1578, 1580, 1605, 1578, 1581, 1580, 1578, 1581,
+ 1605, 1578, 1582, 1605, 1578, 1605, 1580, 1578,
+ 1605, 1581, 1578, 1605, 1582, 1580, 1605, 1581,
+ 1581, 1605, 1610, 1581, 1605, 1609, 1587, 1581,
+ 1580, 1587, 1580, 1581, 1587, 1580, 1609, 1587,
+ 1605, 1581, 1587, 1605, 1580, 1587, 1605, 1605,
+ 1589, 1581, 1581, 1589, 1605, 1605, 1588, 1581,
+ 1605, 1588, 1580, 1610, 1588, 1605, 1582, 1588,
+ 1605, 1605, 1590, 1581, 1609, 1590, 1582, 1605,
+ 1591, 1605, 1581, 1591, 1605, 1605, 1591, 1605,
+ 1610, 1593, 1580, 1605, 1593, 1605, 1605, 1593,
+ 1605, 1609, 1594, 1605, 1605, 1594, 1605, 1610,
+ 1594, 1605, 1609, 1601, 1582, 1605, 1602, 1605,
+ 1581, 1602, 1605, 1605, 1604, 1581, 1605, 1604,
+ 1581, 1610, 1604, 1581, 1609, 1604, 1580, 1580,
+ 1604, 1582, 1605, 1604, 1605, 1581, 1605, 1581,
+ 1580, 1605, 1581, 1605, 1605, 1581, 1610, 1605,
+ 1580, 1581, 1605, 1580, 1605, 1605, 1582, 1580,
+ 1605, 1582, 1605, 1605, 1580, 1582, 1607, 1605,
+ 1580, 1607, 1605, 1605, 1606, 1581, 1605, 1606,
+ 1581, 1609, 1606, 1580, 1605, 1606, 1580, 1609,
+ 1606, 1605, 1610, 1606, 1605, 1609, 1610, 1605,
+ 1605, 1576, 1582, 1610, 1578, 1580, 1610, 1578,
+ 1580, 1609, 1578, 1582, 1610, 1578, 1582, 1609,
+ 1578, 1605, 1610, 1578, 1605, 1609, 1580, 1605,
+ 1610, 1580, 1581, 1609, 1580, 1605, 1609, 1587,
+ 1582, 1609, 1589, 1581, 1610, 1588, 1581, 1610,
+ 1590, 1581, 1610, 1604, 1580, 1610, 1604, 1605,
+ 1610, 1610, 1581, 1610, 1610, 1580, 1610, 1610,
+ 1605, 1610, 1605, 1605, 1610, 1602, 1605, 1610,
+ 1606, 1581, 1610, 1593, 1605, 1610, 1603, 1605,
+ 1610, 1606, 1580, 1581, 1605, 1582, 1610, 1604,
+ 1580, 1605, 1603, 1605, 1605, 1580, 1581, 1610,
+ 1581, 1580, 1610, 1605, 1580, 1610, 1601, 1605,
+ 1610, 1576, 1581, 1610, 1587, 1582, 1610, 1606,
+ 1580, 1610, 1589, 1604, 1746, 1602, 1604, 1746,
+ 1575, 1604, 1604, 1607, 1575, 1603, 1576, 1585,
+ 1605, 1581, 1605, 1583, 1589, 1604, 1593, 1605,
+ 1585, 1587, 1608, 1604, 1593, 1604, 1610, 1607,
+ 1608, 1587, 1604, 1605, 1589, 1604, 1609, 17,
+ 1589, 1604, 1609, 32, 1575, 1604, 1604, 1607,
+ 32, 1593, 1604, 1610, 1607, 32, 1608, 1587,
+ 1604, 1605, 7, 1580, 1604, 32, 1580, 1604,
+ 1575, 1604, 1607, 1585, 1740, 1575, 1604, 44,
+ 12289, 12290, 58, 33, 63, 12310, 12311, 8230,
+ 8229, 8212, 8211, 95, 123, 125, 12308, 12309,
+ 12304, 12305, 12298, 12299, 12300, 12301, 12302, 12303,
+ 91, 93, 8254, 35, 38, 42, 45, 60,
+ 62, 92, 36, 37, 64, 32, 1611, 1600,
+ 1611, 32, 1612, 32, 1613, 32, 1614, 1600,
+ 1614, 32, 1615, 1600, 1615, 32, 1616, 1600,
+ 1616, 32, 1617, 1600, 1617, 32, 1618, 1600,
+ 1618, 1569, 1570, 1571, 1572, 1573, 1574, 1575,
+ 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583,
+ 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591,
+ 1592, 1593, 1594, 1601, 1602, 1603, 1604, 1605,
+ 1606, 1607, 1608, 1610, 1604, 1570, 1604, 1571,
+ 1604, 1573, 1604, 1575, 34, 39, 47, 65345,
+ 65346, 65347, 65348, 65349, 65350, 65351, 65352, 65353,
+ 65354, 65355, 65356, 65357, 65358, 65359, 65360, 65361,
+ 65362, 65363, 65364, 65365, 65366, 65367, 65368, 65369,
+ 65370, 94, 124, 126, 10629, 10630, 12539, 12449,
+ 12451, 12453, 12455, 12457, 12515, 12517, 12519, 12483,
+ 12540, 12531, 12441, 12442, 12644, 12593, 12594, 12595,
+ 12596, 12597, 12598, 12599, 12600, 12601, 12602, 12603,
+ 12604, 12605, 12606, 12607, 12608, 12609, 12610, 12611,
+ 12612, 12613, 12614, 12615, 12616, 12617, 12618, 12619,
+ 12620, 12621, 12622, 12623, 12624, 12625, 12626, 12627,
+ 12628, 12629, 12630, 12631, 12632, 12633, 12634, 12635,
+ 12636, 12637, 12638, 12639, 12640, 12641, 12642, 12643,
+ 162, 163, 172, 175, 166, 165, 8361, 9474,
+ 8592, 8593, 8594, 8595, 9632, 9675, 55297, 56360,
+ 55297, 56361, 55297, 56362, 55297, 56363, 55297, 56364,
+ 55297, 56365, 55297, 56366, 55297, 56367, 55297, 56368,
+ 55297, 56369, 55297, 56370, 55297, 56371, 55297, 56372,
+ 55297, 56373, 55297, 56374, 55297, 56375, 55297, 56376,
+ 55297, 56377, 55297, 56378, 55297, 56379, 55297, 56380,
+ 55297, 56381, 55297, 56382, 55297, 56383, 55297, 56384,
+ 55297, 56385, 55297, 56386, 55297, 56387, 55297, 56388,
+ 55297, 56389, 55297, 56390, 55297, 56391, 55297, 56392,
+ 55297, 56393, 55297, 56394, 55297, 56395, 55297, 56396,
+ 55297, 56397, 55297, 56398, 55297, 56399, 55297, 56536,
+ 55297, 56537, 55297, 56538, 55297, 56539, 55297, 56540,
+ 55297, 56541, 55297, 56542, 55297, 56543, 55297, 56544,
+ 55297, 56545, 55297, 56546, 55297, 56547, 55297, 56548,
+ 55297, 56549, 55297, 56550, 55297, 56551, 55297, 56552,
+ 55297, 56553, 55297, 56554, 55297, 56555, 55297, 56556,
+ 55297, 56557, 55297, 56558, 55297, 56559, 55297, 56560,
+ 55297, 56561, 55297, 56562, 55297, 56563, 55297, 56564,
+ 55297, 56565, 55297, 56566, 55297, 56567, 55297, 56568,
+ 55297, 56569, 55297, 56570, 55297, 56571, 55299, 56512,
+ 55299, 56513, 55299, 56514, 55299, 56515, 55299, 56516,
+ 55299, 56517, 55299, 56518, 55299, 56519, 55299, 56520,
+ 55299, 56521, 55299, 56522, 55299, 56523, 55299, 56524,
+ 55299, 56525, 55299, 56526, 55299, 56527, 55299, 56528,
+ 55299, 56529, 55299, 56530, 55299, 56531, 55299, 56532,
+ 55299, 56533, 55299, 56534, 55299, 56535, 55299, 56536,
+ 55299, 56537, 55299, 56538, 55299, 56539, 55299, 56540,
+ 55299, 56541, 55299, 56542, 55299, 56543, 55299, 56544,
+ 55299, 56545, 55299, 56546, 55299, 56547, 55299, 56548,
+ 55299, 56549, 55299, 56550, 55299, 56551, 55299, 56552,
+ 55299, 56553, 55299, 56554, 55299, 56555, 55299, 56556,
+ 55299, 56557, 55299, 56558, 55299, 56559, 55299, 56560,
+ 55299, 56561, 55299, 56562, 55300, 56473, 55300, 56506,
+ 55300, 56475, 55300, 56506, 55300, 56485, 55300, 56506,
+ 55300, 56625, 55300, 56615, 55300, 56626, 55300, 56615,
+ 55300, 57159, 55300, 57150, 55300, 57159, 55300, 57175,
+ 55301, 56505, 55301, 56506, 55301, 56505, 55301, 56496,
+ 55301, 56505, 55301, 56509, 55301, 56760, 55301, 56751,
+ 55301, 56761, 55301, 56751, 55302, 56512, 55302, 56513,
+ 55302, 56514, 55302, 56515, 55302, 56516, 55302, 56517,
+ 55302, 56518, 55302, 56519, 55302, 56520, 55302, 56521,
+ 55302, 56522, 55302, 56523, 55302, 56524, 55302, 56525,
+ 55302, 56526, 55302, 56527, 55302, 56528, 55302, 56529,
+ 55302, 56530, 55302, 56531, 55302, 56532, 55302, 56533,
+ 55302, 56534, 55302, 56535, 55302, 56536, 55302, 56537,
+ 55302, 56538, 55302, 56539, 55302, 56540, 55302, 56541,
+ 55302, 56542, 55302, 56543, 55348, 56663, 55348, 56677,
+ 55348, 56664, 55348, 56677, 55348, 56671, 55348, 56686,
+ 55348, 56671, 55348, 56687, 55348, 56671, 55348, 56688,
+ 55348, 56671, 55348, 56689, 55348, 56671, 55348, 56690,
+ 55348, 56761, 55348, 56677, 55348, 56762, 55348, 56677,
+ 55348, 56763, 55348, 56686, 55348, 56764, 55348, 56686,
+ 55348, 56763, 55348, 56687, 55348, 56764, 55348, 56687,
+ 305, 567, 913, 914, 916, 917, 918, 919,
+ 921, 922, 923, 924, 925, 926, 927, 929,
+ 1012, 932, 934, 935, 936, 8711, 8706, 1013,
+ 977, 1008, 981, 1009, 982, 988, 55354, 56610,
+ 55354, 56611, 55354, 56612, 55354, 56613, 55354, 56614,
+ 55354, 56615, 55354, 56616, 55354, 56617, 55354, 56618,
+ 55354, 56619, 55354, 56620, 55354, 56621, 55354, 56622,
+ 55354, 56623, 55354, 56624, 55354, 56625, 55354, 56626,
+ 55354, 56627, 55354, 56628, 55354, 56629, 55354, 56630,
+ 55354, 56631, 55354, 56632, 55354, 56633, 55354, 56634,
+ 55354, 56635, 55354, 56636, 55354, 56637, 55354, 56638,
+ 55354, 56639, 55354, 56640, 55354, 56641, 55354, 56642,
+ 55354, 56643, 1646, 1697, 1647, 48, 46, 48,
+ 44, 49, 44, 50, 44, 51, 44, 52,
+ 44, 53, 44, 54, 44, 55, 44, 56,
+ 44, 57, 44, 40, 65, 41, 40, 66,
+ 41, 40, 67, 41, 40, 68, 41, 40,
+ 69, 41, 40, 70, 41, 40, 71, 41,
+ 40, 72, 41, 40, 73, 41, 40, 74,
+ 41, 40, 75, 41, 40, 76, 41, 40,
+ 77, 41, 40, 78, 41, 40, 79, 41,
+ 40, 80, 41, 40, 81, 41, 40, 82,
+ 41, 40, 83, 41, 40, 84, 41, 40,
+ 85, 41, 40, 86, 41, 40, 87, 41,
+ 40, 88, 41, 40, 89, 41, 40, 90,
+ 41, 12308, 83, 12309, 67, 68, 87, 90,
+ 72, 86, 83, 68, 83, 83, 80, 80,
+ 86, 87, 67, 77, 67, 77, 68, 68,
+ 74, 12411, 12363, 12467, 12467, 23383, 21452, 12487,
+ 22810, 35299, 20132, 26144, 28961, 21069, 24460, 20877,
+ 26032, 21021, 32066, 36009, 22768, 21561, 28436, 25237,
+ 25429, 36938, 25351, 25171, 31105, 31354, 21512, 28288,
+ 30003, 21106, 21942, 37197, 12308, 26412, 12309, 12308,
+ 19977, 12309, 12308, 20108, 12309, 12308, 23433, 12309,
+ 12308, 28857, 12309, 12308, 25171, 12309, 12308, 30423,
+ 12309, 12308, 21213, 12309, 12308, 25943, 12309, 24471,
+ 21487, 20029, 20024, 20033, 55360, 56610, 20320, 20411,
+ 20482, 20602, 20633, 20687, 13470, 55361, 56890, 20820,
+ 20836, 20855, 55361, 56604, 13497, 20839, 55361, 56651,
+ 20887, 20900, 20172, 20908, 55396, 56799, 20995, 13535,
+ 21051, 21062, 21111, 13589, 21253, 21254, 21321, 21338,
+ 21363, 21373, 21375, 55362, 56876, 28784, 21450, 21471,
+ 55362, 57187, 21483, 21489, 21510, 21662, 21560, 21576,
+ 21608, 21666, 21750, 21776, 21843, 21859, 21892, 21931,
+ 21939, 21954, 22294, 22295, 22097, 22132, 22766, 22478,
+ 22516, 22541, 22411, 22578, 22577, 22700, 55365, 56548,
+ 22770, 22775, 22790, 22818, 22882, 55365, 57000, 55365,
+ 57066, 23020, 23067, 23079, 23000, 23142, 14062, 14076,
+ 23304, 23358, 55366, 56776, 23491, 23512, 23539, 55366,
+ 57112, 23551, 23558, 24403, 14209, 23648, 23744, 23693,
+ 55367, 56804, 23875, 55367, 56806, 23918, 23915, 23932,
+ 24033, 24034, 14383, 24061, 24104, 24125, 24169, 14434,
+ 55368, 56707, 14460, 24240, 24243, 24246, 55400, 57234,
+ 55368, 57137, 33281, 24354, 14535, 55372, 57016, 55384,
+ 56794, 24418, 24427, 14563, 24474, 24525, 24535, 24569,
+ 24705, 14650, 14620, 55369, 57044, 24775, 24904, 24908,
+ 24954, 25010, 24996, 25007, 25054, 25104, 25115, 25181,
+ 25265, 25300, 25424, 55370, 57100, 25405, 25340, 25448,
+ 25475, 25572, 55370, 57329, 25634, 25541, 25513, 14894,
+ 25705, 25726, 25757, 25719, 14956, 25964, 55372, 56330,
+ 26083, 26360, 26185, 15129, 15112, 15076, 20882, 20885,
+ 26368, 26268, 32941, 17369, 26401, 26462, 26451, 55372,
+ 57283, 15177, 26618, 26501, 26706, 55373, 56429, 26766,
+ 26655, 26900, 26946, 27043, 27114, 27304, 55373, 56995,
+ 27355, 15384, 27425, 55374, 56487, 27476, 15438, 27506,
+ 27551, 27579, 55374, 56973, 55367, 56587, 55374, 57082,
+ 27726, 55375, 56508, 27839, 27853, 27751, 27926, 27966,
+ 28009, 28024, 28037, 55375, 56606, 27956, 28207, 28270,
+ 15667, 28359, 55375, 57041, 28153, 28526, 55375, 57182,
+ 55375, 57230, 28614, 28729, 28699, 15766, 28746, 28797,
+ 28791, 28845, 55361, 56613, 28997, 55376, 56931, 29084,
+ 55376, 57259, 29224, 29264, 55377, 56840, 29312, 29333,
+ 55377, 57141, 55378, 56340, 29562, 29579, 16044, 29605,
+ 16056, 29767, 29788, 29829, 29898, 16155, 29988, 55379,
+ 56374, 30014, 55379, 56466, 55368, 56735, 30224, 55379,
+ 57249, 55379, 57272, 55380, 56388, 16380, 16392, 55380,
+ 56563, 55380, 56562, 55380, 56601, 55380, 56627, 30494,
+ 30495, 30603, 16454, 16534, 55381, 56349, 30798, 16611,
+ 55381, 56870, 55381, 56986, 55381, 57029, 31211, 16687,
+ 31306, 31311, 55382, 56700, 55382, 56999, 31470, 16898,
+ 55382, 57259, 31686, 31689, 16935, 55383, 56448, 31954,
+ 17056, 31976, 31971, 32000, 55383, 57222, 32099, 17153,
+ 32199, 32258, 32325, 17204, 55384, 56872, 55384, 56903,
+ 17241, 55384, 57049, 32634, 55384, 57150, 32661, 32762,
+ 55385, 56538, 55385, 56611, 32864, 55385, 56744, 32880,
+ 55372, 57183, 17365, 32946, 33027, 17419, 33086, 23221,
+ 55385, 57255, 55385, 57269, 55372, 57235, 55372, 57244,
+ 33284, 36766, 17515, 33425, 33419, 33437, 21171, 33457,
+ 33459, 33469, 33510, 55386, 57148, 33565, 33635, 33709,
+ 33571, 33725, 33767, 33619, 33738, 33740, 33756, 55387,
+ 56374, 55387, 56683, 55387, 56533, 17707, 34033, 34035,
+ 34070, 55388, 57290, 34148, 55387, 57132, 17757, 17761,
+ 55387, 57265, 55388, 56530, 17771, 34384, 34407, 34409,
+ 34473, 34440, 34574, 34530, 34600, 34667, 34694, 17879,
+ 34785, 34817, 17913, 34912, 55389, 56935, 35031, 35038,
+ 17973, 35066, 13499, 55390, 56494, 55390, 56678, 18110,
+ 18119, 35488, 55391, 56488, 36011, 36033, 36123, 36215,
+ 55391, 57135, 55362, 56324, 36299, 36284, 36336, 55362,
+ 56542, 36564, 55393, 56786, 55393, 56813, 37012, 37105,
+ 37137, 55393, 57134, 37147, 37432, 37591, 37592, 37500,
+ 37881, 37909, 55394, 57338, 38283, 18837, 38327, 55395,
+ 56695, 18918, 38595, 23986, 38691, 55396, 56645, 55396,
+ 56858, 19054, 19062, 38880, 55397, 56330, 19122, 55397,
+ 56470, 38953, 55397, 56758, 39138, 19251, 39209, 39335,
+ 39362, 39422, 19406, 55398, 57136, 40000, 40189, 19662,
+ 19693, 40295, 55400, 56526, 19704, 55400, 56581, 55400,
+ 56846, 55400, 56977, 19798, 40702, 40709, 40719, 40726,
+ 55401, 56832, 192, 193, 194, 195, 196, 199,
+ 200, 201, 202, 203, 204, 205, 206, 207,
+ 208, 209, 210, 211, 212, 213, 214, 216,
+ 217, 218, 219, 220, 221, 222, 376, 256,
+ 258, 260, 262, 264, 266, 268, 270, 272,
+ 274, 276, 278, 280, 282, 284, 286, 288,
+ 290, 292, 296, 298, 300, 302, 306, 308,
+ 310, 313, 315, 317, 319, 321, 323, 325,
+ 327, 330, 332, 334, 336, 338, 340, 342,
+ 344, 346, 348, 350, 352, 354, 356, 358,
+ 360, 362, 364, 366, 368, 370, 372, 374,
+ 377, 379, 381, 579, 386, 388, 391, 395,
+ 401, 502, 408, 573, 544, 416, 418, 420,
+ 423, 428, 431, 435, 437, 440, 444, 503,
+ 453, 452, 456, 455, 459, 458, 461, 463,
+ 465, 467, 469, 471, 473, 475, 478, 480,
+ 482, 484, 486, 488, 490, 492, 494, 498,
+ 497, 500, 504, 506, 508, 510, 512, 514,
+ 516, 518, 520, 522, 524, 526, 528, 530,
+ 532, 534, 536, 538, 540, 542, 548, 550,
+ 552, 554, 556, 558, 560, 562, 571, 11390,
+ 11391, 577, 582, 584, 586, 588, 590, 11375,
+ 11373, 11376, 385, 390, 393, 394, 399, 42923,
+ 403, 42924, 404, 42893, 42922, 407, 406, 42926,
+ 11362, 42925, 412, 11374, 413, 415, 11364, 422,
+ 425, 42929, 430, 580, 433, 434, 581, 439,
+ 42930, 42928, 880, 882, 886, 1021, 1022, 1023,
+ 938, 939, 975, 984, 986, 990, 992, 994,
+ 996, 998, 1000, 1002, 1004, 1006, 1017, 895,
+ 1015, 1018, 1040, 1041, 1042, 1043, 1044, 1045,
+ 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053,
+ 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061,
+ 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,
+ 1070, 1071, 1024, 1025, 1026, 1027, 1028, 1029,
+ 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037,
+ 1038, 1039, 1120, 1122, 1124, 1126, 1128, 1130,
+ 1132, 1134, 1136, 1138, 1140, 1142, 1144, 1146,
+ 1148, 1150, 1152, 1162, 1164, 1166, 1168, 1170,
+ 1172, 1174, 1176, 1178, 1180, 1182, 1184, 1186,
+ 1188, 1190, 1192, 1194, 1196, 1198, 1200, 1202,
+ 1204, 1206, 1208, 1210, 1212, 1214, 1217, 1219,
+ 1221, 1223, 1225, 1227, 1229, 1216, 1232, 1234,
+ 1236, 1238, 1240, 1242, 1244, 1246, 1248, 1250,
+ 1252, 1254, 1256, 1258, 1260, 1262, 1264, 1266,
+ 1268, 1270, 1272, 1274, 1276, 1278, 1280, 1282,
+ 1284, 1286, 1288, 1290, 1292, 1294, 1296, 1298,
+ 1300, 1302, 1304, 1306, 1308, 1310, 1312, 1314,
+ 1316, 1318, 1320, 1322, 1324, 1326, 1329, 1330,
+ 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338,
+ 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346,
+ 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354,
+ 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362,
+ 1363, 1364, 1365, 1366, 43888, 43889, 43890, 43891,
+ 43892, 43893, 43894, 43895, 43896, 43897, 43898, 43899,
+ 43900, 43901, 43902, 43903, 43904, 43905, 43906, 43907,
+ 43908, 43909, 43910, 43911, 43912, 43913, 43914, 43915,
+ 43916, 43917, 43918, 43919, 43920, 43921, 43922, 43923,
+ 43924, 43925, 43926, 43927, 43928, 43929, 43930, 43931,
+ 43932, 43933, 43934, 43935, 43936, 43937, 43938, 43939,
+ 43940, 43941, 43942, 43943, 43944, 43945, 43946, 43947,
+ 43948, 43949, 43950, 43951, 43952, 43953, 43954, 43955,
+ 43956, 43957, 43958, 43959, 43960, 43961, 43962, 43963,
+ 43964, 43965, 43966, 43967, 5112, 5113, 5114, 5115,
+ 5116, 5117, 42570, 42877, 11363, 7680, 7682, 7684,
+ 7686, 7688, 7690, 7692, 7694, 7696, 7698, 7700,
+ 7702, 7704, 7706, 7708, 7710, 7712, 7714, 7716,
+ 7718, 7720, 7722, 7724, 7726, 7728, 7730, 7732,
+ 7734, 7736, 7738, 7740, 7742, 7744, 7746, 7748,
+ 7750, 7752, 7754, 7756, 7758, 7760, 7762, 7764,
+ 7766, 7768, 7770, 7772, 7774, 7776, 7778, 7780,
+ 7782, 7784, 7786, 7788, 7790, 7792, 7794, 7796,
+ 7798, 7800, 7802, 7804, 7806, 7808, 7810, 7812,
+ 7814, 7816, 7818, 7820, 7822, 7824, 7826, 7828,
+ 7840, 7842, 7844, 7846, 7848, 7850, 7852, 7854,
+ 7856, 7858, 7860, 7862, 7864, 7866, 7868, 7870,
+ 7872, 7874, 7876, 7878, 7880, 7882, 7884, 7886,
+ 7888, 7890, 7892, 7894, 7896, 7898, 7900, 7902,
+ 7904, 7906, 7908, 7910, 7912, 7914, 7916, 7918,
+ 7920, 7922, 7924, 7926, 7928, 7930, 7932, 7934,
+ 7944, 7945, 7946, 7947, 7948, 7949, 7950, 7951,
+ 7960, 7961, 7962, 7963, 7964, 7965, 7976, 7977,
+ 7978, 7979, 7980, 7981, 7982, 7983, 7992, 7993,
+ 7994, 7995, 7996, 7997, 7998, 7999, 8008, 8009,
+ 8010, 8011, 8012, 8013, 8025, 8027, 8029, 8031,
+ 8040, 8041, 8042, 8043, 8044, 8045, 8046, 8047,
+ 8122, 8123, 8136, 8137, 8138, 8139, 8154, 8155,
+ 8184, 8185, 8170, 8171, 8186, 8187, 8072, 8073,
+ 8074, 8075, 8076, 8077, 8078, 8079, 8088, 8089,
+ 8090, 8091, 8092, 8093, 8094, 8095, 8104, 8105,
+ 8106, 8107, 8108, 8109, 8110, 8111, 8120, 8121,
+ 8124, 8140, 8152, 8153, 8168, 8169, 8172, 8188,
+ 8498, 8544, 8545, 8546, 8547, 8548, 8549, 8550,
+ 8551, 8552, 8553, 8554, 8555, 8556, 8557, 8558,
+ 8559, 8579, 9398, 9399, 9400, 9401, 9402, 9403,
+ 9404, 9405, 9406, 9407, 9408, 9409, 9410, 9411,
+ 9412, 9413, 9414, 9415, 9416, 9417, 9418, 9419,
+ 9420, 9421, 9422, 9423, 11264, 11265, 11266, 11267,
+ 11268, 11269, 11270, 11271, 11272, 11273, 11274, 11275,
+ 11276, 11277, 11278, 11279, 11280, 11281, 11282, 11283,
+ 11284, 11285, 11286, 11287, 11288, 11289, 11290, 11291,
+ 11292, 11293, 11294, 11295, 11296, 11297, 11298, 11299,
+ 11300, 11301, 11302, 11303, 11304, 11305, 11306, 11307,
+ 11308, 11309, 11310, 11360, 570, 574, 11367, 11369,
+ 11371, 11378, 11381, 11392, 11394, 11396, 11398, 11400,
+ 11402, 11404, 11406, 11408, 11410, 11412, 11414, 11416,
+ 11418, 11420, 11422, 11424, 11426, 11428, 11430, 11432,
+ 11434, 11436, 11438, 11440, 11442, 11444, 11446, 11448,
+ 11450, 11452, 11454, 11456, 11458, 11460, 11462, 11464,
+ 11466, 11468, 11470, 11472, 11474, 11476, 11478, 11480,
+ 11482, 11484, 11486, 11488, 11490, 11499, 11501, 11506,
+ 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263,
+ 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271,
+ 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279,
+ 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287,
+ 4288, 4289, 4290, 4291, 4292, 4293, 4295, 4301,
+ 42560, 42562, 42564, 42566, 42568, 42572, 42574, 42576,
+ 42578, 42580, 42582, 42584, 42586, 42588, 42590, 42592,
+ 42594, 42596, 42598, 42600, 42602, 42604, 42624, 42626,
+ 42628, 42630, 42632, 42634, 42636, 42638, 42640, 42642,
+ 42644, 42646, 42648, 42650, 42786, 42788, 42790, 42792,
+ 42794, 42796, 42798, 42802, 42804, 42806, 42808, 42810,
+ 42812, 42814, 42816, 42818, 42820, 42822, 42824, 42826,
+ 42828, 42830, 42832, 42834, 42836, 42838, 42840, 42842,
+ 42844, 42846, 42848, 42850, 42852, 42854, 42856, 42858,
+ 42860, 42862, 42873, 42875, 42878, 42880, 42882, 42884,
+ 42886, 42891, 42896, 42898, 42902, 42904, 42906, 42908,
+ 42910, 42912, 42914, 42916, 42918, 42920, 42932, 42934,
+ 42931, 65313, 65314, 65315, 65316, 65317, 65318, 65319,
+ 65320, 65321, 65322, 65323, 65324, 65325, 65326, 65327,
+ 65328, 65329, 65330, 65331, 65332, 65333, 65334, 65335,
+ 65336, 65337, 65338, 55297, 56320, 55297, 56321, 55297,
+ 56322, 55297, 56323, 55297, 56324, 55297, 56325, 55297,
+ 56326, 55297, 56327, 55297, 56328, 55297, 56329, 55297,
+ 56330, 55297, 56331, 55297, 56332, 55297, 56333, 55297,
+ 56334, 55297, 56335, 55297, 56336, 55297, 56337, 55297,
+ 56338, 55297, 56339, 55297, 56340, 55297, 56341, 55297,
+ 56342, 55297, 56343, 55297, 56344, 55297, 56345, 55297,
+ 56346, 55297, 56347, 55297, 56348, 55297, 56349, 55297,
+ 56350, 55297, 56351, 55297, 56352, 55297, 56353, 55297,
+ 56354, 55297, 56355, 55297, 56356, 55297, 56357, 55297,
+ 56358, 55297, 56359, 55297, 56496, 55297, 56497, 55297,
+ 56498, 55297, 56499, 55297, 56500, 55297, 56501, 55297,
+ 56502, 55297, 56503, 55297, 56504, 55297, 56505, 55297,
+ 56506, 55297, 56507, 55297, 56508, 55297, 56509, 55297,
+ 56510, 55297, 56511, 55297, 56512, 55297, 56513, 55297,
+ 56514, 55297, 56515, 55297, 56516, 55297, 56517, 55297,
+ 56518, 55297, 56519, 55297, 56520, 55297, 56521, 55297,
+ 56522, 55297, 56523, 55297, 56524, 55297, 56525, 55297,
+ 56526, 55297, 56527, 55297, 56528, 55297, 56529, 55297,
+ 56530, 55297, 56531, 55299, 56448, 55299, 56449, 55299,
+ 56450, 55299, 56451, 55299, 56452, 55299, 56453, 55299,
+ 56454, 55299, 56455, 55299, 56456, 55299, 56457, 55299,
+ 56458, 55299, 56459, 55299, 56460, 55299, 56461, 55299,
+ 56462, 55299, 56463, 55299, 56464, 55299, 56465, 55299,
+ 56466, 55299, 56467, 55299, 56468, 55299, 56469, 55299,
+ 56470, 55299, 56471, 55299, 56472, 55299, 56473, 55299,
+ 56474, 55299, 56475, 55299, 56476, 55299, 56477, 55299,
+ 56478, 55299, 56479, 55299, 56480, 55299, 56481, 55299,
+ 56482, 55299, 56483, 55299, 56484, 55299, 56485, 55299,
+ 56486, 55299, 56487, 55299, 56488, 55299, 56489, 55299,
+ 56490, 55299, 56491, 55299, 56492, 55299, 56493, 55299,
+ 56494, 55299, 56495, 55299, 56496, 55299, 56497, 55299,
+ 56498, 55302, 56480, 55302, 56481, 55302, 56482, 55302,
+ 56483, 55302, 56484, 55302, 56485, 55302, 56486, 55302,
+ 56487, 55302, 56488, 55302, 56489, 55302, 56490, 55302,
+ 56491, 55302, 56492, 55302, 56493, 55302, 56494, 55302,
+ 56495, 55302, 56496, 55302, 56497, 55302, 56498, 55302,
+ 56499, 55302, 56500, 55302, 56501, 55302, 56502, 55302,
+ 56503, 55302, 56504, 55302, 56505, 55302, 56506, 55302,
+ 56507, 55302, 56508, 55302, 56509, 55302, 56510, 55302,
+ 56511, 55354, 56576, 55354, 56577, 55354, 56578, 55354,
+ 56579, 55354, 56580, 55354, 56581, 55354, 56582, 55354,
+ 56583, 55354, 56584, 55354, 56585, 55354, 56586, 55354,
+ 56587, 55354, 56588, 55354, 56589, 55354, 56590, 55354,
+ 56591, 55354, 56592, 55354, 56593, 55354, 56594, 55354,
+ 56595, 55354, 56596, 55354, 56597, 55354, 56598, 55354,
+ 56599, 55354, 56600, 55354, 56601, 55354, 56602, 55354,
+ 56603, 55354, 56604, 55354, 56605, 55354, 56606, 55354,
56607, 55354, 56608, 55354, 56609, };
UTF8PROC_DATA
const utf8proc_uint16_t utf8proc_stage1table[] = {
- 0, 256, 512, 768, 1024, 1280, 1536,
- 1792, 2048, 2304, 2560, 2816, 3072, 3328, 3584,
- 3840, 4096, 4352, 4608, 4864, 5120, 5376, 5632,
- 5888, 6144, 6400, 6656, 6912, 7168, 7424, 7680,
- 7936, 8192, 8448, 8704, 8960, 9216, 9472, 9728,
- 9984, 10240, 10496, 10752, 11008, 11264, 11520, 11776,
- 12032, 12288, 12544, 12800, 13056, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13568, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13824, 14080, 13312, 13312, 13312, 14336, 13312, 14592,
- 14848, 15104, 15360, 15616, 15872, 16128, 16384, 16640,
- 16896, 17152, 17408, 17664, 16128, 16384, 16640, 16896,
- 17152, 17408, 17664, 16128, 16384, 16640, 16896, 17152,
- 17408, 17664, 16128, 16384, 16640, 16896, 17152, 17408,
- 17664, 16128, 16384, 16640, 16896, 17152, 17408, 17664,
- 16128, 16384, 16640, 16896, 17152, 17408, 17664, 16128,
- 17920, 18176, 18176, 18176, 18176, 18176, 18176, 18176,
- 18176, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18688, 18944, 19200, 19456, 19712, 19968,
- 20224, 20480, 20736, 20992, 21248, 21504, 21760, 22016,
- 22272, 22528, 22784, 23040, 23296, 23552, 23808, 24064,
- 23808, 24320, 24576, 24832, 25088, 25344, 25600, 25856,
- 26112, 26368, 23808, 26624, 23808, 26880, 23808, 23808,
- 23808, 27136, 27136, 27136, 27392, 27648, 27904, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 27136, 27136, 27136, 27136, 28160, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 27136, 27136, 28416,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 27136, 27136, 28672, 28928, 23808, 23808, 23808,
- 29184, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 29440, 13312, 13312, 29696, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 29952, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 30208, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 30464, 30720, 30976, 31232, 31488, 31744, 32000,
- 32256, 10240, 10240, 32512, 23808, 23808, 23808, 23808,
- 23808, 32768, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 33024, 33280, 23808, 23808, 23808, 23808, 33536,
- 23808, 33792, 34048, 34304, 34560, 34816, 35072, 35328,
- 35584, 35840, 36096, 23808, 23808, 23808, 23808, 23808,
- 23808, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 36352,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 36608, 36864, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
- 13312, 13312, 13312, 13312, 13312, 13312, 13312, 37120,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 37376, 37632, 37888, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 38144, 38400, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
- 23808, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 38656, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
- 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 0, 256, 512, 768, 1024, 1280, 1536,
+ 1792, 2048, 2304, 2560, 2816, 3072, 3328, 3584,
+ 3840, 4096, 4352, 4608, 4864, 5120, 5376, 5632,
+ 5888, 6144, 6400, 6656, 6912, 7168, 7424, 7680,
+ 7936, 8192, 8448, 8704, 8960, 9216, 9472, 9728,
+ 9984, 10240, 10496, 10752, 11008, 11264, 11520, 11776,
+ 12032, 12288, 12544, 12800, 13056, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13568, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13824, 14080, 13312, 13312, 13312, 14336, 13312, 14592,
+ 14848, 15104, 15360, 15616, 15872, 16128, 16384, 16640,
+ 16896, 17152, 17408, 17664, 16128, 16384, 16640, 16896,
+ 17152, 17408, 17664, 16128, 16384, 16640, 16896, 17152,
+ 17408, 17664, 16128, 16384, 16640, 16896, 17152, 17408,
+ 17664, 16128, 16384, 16640, 16896, 17152, 17408, 17664,
+ 16128, 16384, 16640, 16896, 17152, 17408, 17664, 16128,
+ 17920, 18176, 18176, 18176, 18176, 18176, 18176, 18176,
+ 18176, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18688, 18944, 19200, 19456, 19712, 19968,
+ 20224, 20480, 20736, 20992, 21248, 21504, 21760, 22016,
+ 22272, 22528, 22784, 23040, 23296, 23552, 23808, 24064,
+ 23808, 24320, 24576, 24832, 25088, 25344, 25600, 25856,
+ 26112, 26368, 23808, 26624, 23808, 26880, 23808, 23808,
+ 23808, 27136, 27136, 27136, 27392, 27648, 27904, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 27136, 27136, 27136, 27136, 28160, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 27136, 27136, 28416,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 27136, 27136, 28672, 28928, 23808, 23808, 23808,
+ 29184, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 29440, 13312, 13312, 29696, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 29952, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 30208, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 30464, 30720, 30976, 31232, 31488, 31744, 32000,
+ 32256, 10240, 10240, 32512, 23808, 23808, 23808, 23808,
+ 23808, 32768, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 33024, 33280, 23808, 23808, 23808, 23808, 33536,
+ 23808, 33792, 34048, 34304, 34560, 34816, 35072, 35328,
+ 35584, 35840, 36096, 23808, 23808, 23808, 23808, 23808,
+ 23808, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 36352,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 36608, 36864, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312,
+ 13312, 13312, 13312, 13312, 13312, 13312, 13312, 37120,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 37376, 37632, 37888, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 38144, 38400, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 23808, 23808, 23808, 23808, 23808, 23808, 23808,
+ 23808, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 38656, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
+ 18432, 18432, 18432, 18432, 18432, 18432, 18432, 18432,
38656, };
UTF8PROC_DATA
const utf8proc_uint16_t utf8proc_stage2table[] = {
- 1, 2, 2, 2, 2, 2, 2,
- 2, 2, 3, 4, 3, 5, 6, 2,
- 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 7, 7, 7,
- 3, 8, 9, 9, 10, 11, 10, 9,
- 9, 12, 13, 9, 14, 15, 16, 15,
- 15, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 15, 9, 18, 19, 20,
- 9, 9, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 12, 9, 13, 47,
- 48, 47, 49, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, 68, 69, 70,
- 71, 72, 73, 74, 12, 75, 13, 75,
- 2, 2, 2, 2, 2, 2, 7, 2,
- 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 76, 9, 11, 11, 11, 11, 77,
- 9, 78, 77, 79, 80, 75, 81, 77,
- 82, 83, 84, 85, 86, 87, 88, 9,
- 9, 89, 90, 91, 92, 93, 94, 95,
- 9, 96, 97, 98, 99, 100, 101, 102,
- 103, 104, 105, 106, 107, 108, 109, 110,
- 111, 112, 113, 114, 115, 116, 117, 118,
- 75, 119, 120, 121, 122, 123, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133,
- 134, 135, 136, 137, 138, 139, 140, 141,
- 142, 143, 144, 145, 146, 147, 148, 149,
- 75, 150, 151, 152, 153, 154, 155, 156,
- 157, 158, 159, 160, 161, 162, 163, 164,
- 165, 166, 167, 168, 169, 170, 171, 172,
- 173, 174, 175, 176, 177, 178, 179, 180,
- 181, 182, 183, 184, 185, 186, 187, 188,
- 189, 190, 191, 192, 193, 194, 195, 196,
- 197, 198, 199, 200, 201, 202, 203, 204,
- 205, 206, 207, 208, 209, 210, 211, 212,
- 213, 214, 215, 216, 217, 218, 219, 220,
- 221, 222, 223, 224, 225, 226, 227, 228,
- 229, 230, 231, 232, 233, 234, 235, 236,
- 237, 238, 239, 240, 241, 242, 243, 244,
- 245, 246, 247, 248, 249, 250, 251, 252,
- 253, 254, 255, 256, 257, 258, 259, 260,
- 261, 262, 263, 264, 265, 266, 267, 268,
- 269, 270, 271, 272, 273, 274, 275, 276,
- 277, 278, 279, 280, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292,
- 293, 294, 295, 296, 297, 298, 214, 299,
- 300, 301, 302, 303, 304, 305, 306, 307,
- 308, 309, 310, 311, 214, 312, 313, 314,
- 315, 316, 317, 318, 319, 320, 321, 322,
- 323, 324, 325, 214, 214, 326, 327, 328,
- 329, 330, 331, 332, 333, 334, 335, 336,
- 337, 338, 339, 214, 340, 341, 342, 214,
- 343, 340, 340, 340, 340, 344, 345, 346,
- 347, 348, 349, 350, 351, 352, 353, 354,
- 355, 356, 357, 358, 359, 360, 361, 362,
- 363, 364, 365, 366, 367, 368, 369, 370,
- 371, 372, 373, 374, 375, 376, 377, 378,
- 379, 380, 381, 382, 383, 384, 385, 386,
- 387, 388, 389, 390, 391, 392, 393, 394,
- 395, 396, 397, 398, 399, 400, 401, 402,
- 403, 404, 405, 406, 407, 408, 409, 410,
- 411, 412, 413, 414, 415, 416, 417, 418,
- 419, 420, 421, 422, 423, 424, 425, 426,
- 427, 428, 429, 430, 431, 432, 433, 434,
- 435, 436, 214, 437, 438, 439, 440, 441,
- 442, 443, 444, 445, 446, 447, 448, 449,
- 450, 451, 452, 453, 454, 214, 214, 214,
- 214, 214, 214, 455, 456, 457, 458, 459,
- 460, 461, 462, 463, 464, 465, 466, 467,
- 468, 469, 470, 471, 472, 473, 474, 475,
- 476, 477, 478, 479, 480, 481, 214, 482,
- 483, 214, 484, 214, 485, 486, 214, 214,
- 214, 487, 488, 214, 489, 214, 490, 491,
- 214, 492, 493, 494, 495, 496, 214, 214,
- 497, 214, 498, 499, 214, 214, 500, 214,
- 214, 214, 214, 214, 214, 214, 501, 214,
- 214, 502, 214, 214, 503, 214, 214, 214,
- 504, 505, 506, 507, 508, 509, 214, 214,
- 214, 214, 214, 510, 214, 340, 214, 214,
- 214, 214, 214, 214, 214, 214, 511, 512,
- 214, 214, 214, 214, 214, 214, 214, 214,
- 214, 214, 214, 214, 214, 214, 214, 214,
- 214, 513, 514, 515, 516, 517, 518, 519,
- 520, 521, 522, 522, 523, 523, 523, 523,
- 523, 523, 523, 47, 47, 47, 47, 522,
- 522, 522, 522, 522, 522, 522, 522, 522,
- 522, 523, 523, 47, 47, 47, 47, 47,
- 47, 524, 525, 526, 527, 528, 529, 47,
- 47, 530, 531, 532, 533, 534, 47, 47,
- 47, 47, 47, 47, 47, 522, 47, 523,
- 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 535, 536, 537, 538, 539, 540, 541,
- 542, 543, 544, 545, 546, 547, 540, 540,
- 548, 540, 549, 540, 550, 551, 552, 553,
- 553, 553, 553, 552, 554, 553, 553, 553,
- 553, 553, 555, 555, 556, 557, 558, 559,
- 560, 561, 553, 553, 553, 553, 562, 563,
- 553, 564, 565, 553, 553, 566, 566, 566,
- 566, 567, 553, 553, 553, 553, 540, 540,
- 540, 568, 569, 570, 571, 572, 573, 540,
- 553, 553, 553, 540, 540, 540, 553, 553,
- 574, 540, 540, 540, 553, 553, 553, 553,
- 540, 552, 553, 553, 540, 575, 576, 576,
- 575, 576, 576, 575, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 577, 578, 579, 580, 581, 47, 582,
- 583, 0, 0, 584, 585, 586, 587, 588,
- 589, 0, 0, 0, 0, 87, 590, 591,
- 592, 593, 594, 595, 0, 596, 0, 597,
- 598, 599, 600, 601, 602, 603, 604, 605,
- 606, 607, 608, 609, 610, 611, 612, 613,
- 614, 615, 616, 0, 617, 618, 619, 620,
- 621, 622, 623, 624, 625, 626, 627, 628,
- 629, 630, 631, 632, 633, 634, 635, 636,
- 637, 638, 639, 640, 641, 642, 643, 644,
- 645, 646, 647, 648, 649, 650, 651, 652,
- 653, 654, 655, 656, 657, 658, 659, 660,
- 661, 662, 663, 664, 665, 666, 667, 668,
- 669, 670, 671, 672, 673, 674, 675, 676,
- 677, 678, 679, 680, 681, 682, 683, 684,
- 685, 686, 687, 688, 689, 690, 691, 692,
- 693, 694, 695, 696, 697, 698, 699, 75,
- 700, 701, 702, 703, 704, 214, 705, 706,
- 707, 708, 709, 710, 711, 712, 713, 714,
- 715, 716, 717, 718, 719, 720, 721, 722,
- 723, 724, 725, 726, 727, 728, 729, 730,
- 731, 732, 733, 734, 735, 736, 737, 738,
- 739, 740, 741, 742, 743, 744, 745, 746,
- 747, 748, 749, 750, 751, 752, 753, 754,
- 755, 756, 757, 758, 759, 760, 761, 762,
- 763, 764, 765, 766, 767, 768, 769, 770,
- 771, 772, 773, 774, 775, 776, 777, 778,
- 779, 780, 781, 782, 783, 784, 785, 786,
- 787, 788, 789, 790, 791, 792, 793, 794,
- 795, 796, 797, 798, 799, 800, 801, 802,
- 803, 804, 805, 806, 807, 808, 809, 810,
- 811, 812, 813, 814, 815, 816, 817, 818,
- 819, 820, 821, 822, 823, 824, 825, 826,
- 827, 828, 829, 830, 831, 832, 833, 834,
- 835, 836, 837, 838, 540, 540, 540, 540,
- 540, 839, 839, 840, 841, 842, 843, 844,
- 845, 846, 847, 848, 849, 850, 851, 852,
- 853, 854, 855, 856, 857, 858, 859, 860,
- 861, 862, 863, 864, 865, 866, 867, 868,
- 869, 870, 871, 872, 873, 874, 875, 876,
- 877, 878, 879, 880, 881, 882, 883, 884,
- 885, 886, 887, 888, 889, 890, 891, 892,
- 893, 894, 895, 896, 897, 898, 899, 900,
- 901, 902, 903, 904, 905, 906, 907, 908,
- 909, 910, 911, 912, 913, 914, 915, 916,
- 917, 918, 919, 920, 921, 922, 923, 924,
- 925, 926, 927, 928, 929, 930, 931, 932,
- 933, 934, 935, 936, 937, 938, 939, 940,
- 941, 942, 943, 944, 945, 946, 947, 948,
- 949, 950, 951, 952, 953, 954, 955, 956,
- 957, 958, 959, 960, 961, 962, 963, 964,
- 965, 966, 967, 968, 969, 970, 971, 972,
- 973, 974, 975, 976, 977, 978, 979, 980,
- 981, 982, 983, 984, 985, 986, 987, 988,
- 989, 990, 991, 992, 993, 994, 995, 996,
- 997, 998, 999, 1000, 1001, 1002, 1003, 1004,
- 1005, 0, 1006, 1007, 1008, 1009, 1010, 1011,
- 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019,
- 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027,
- 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035,
- 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,
- 0, 0, 523, 1044, 1044, 1044, 1044, 1044,
- 1044, 0, 1045, 1046, 1047, 1048, 1049, 1050,
- 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058,
- 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066,
- 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074,
- 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,
- 1083, 0, 1044, 1084, 0, 0, 1085, 1085,
- 11, 0, 553, 540, 540, 540, 540, 553,
- 540, 540, 540, 1086, 553, 540, 540, 540,
- 540, 540, 540, 553, 553, 553, 553, 553,
- 553, 540, 540, 553, 540, 540, 1086, 1087,
- 540, 1088, 1089, 1090, 1091, 1092, 1093, 1094,
- 1095, 1096, 1097, 1097, 1098, 1099, 1100, 1101,
- 1102, 1103, 1104, 1105, 1103, 540, 553, 1103,
- 1096, 0, 0, 0, 0, 0, 0, 0,
- 0, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 0, 0, 0, 0,
- 0, 1106, 1106, 1106, 1103, 1103, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1107, 1108, 1108, 1108, 1107, 1107, 1109,
- 1109, 1110, 10, 10, 1111, 15, 1112, 1085,
- 1085, 540, 540, 540, 540, 540, 540, 540,
- 540, 1113, 1114, 1115, 1112, 1116, 0, 1117,
- 1112, 1118, 1118, 1119, 1120, 1121, 1122, 1123,
- 1124, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1125, 1118, 1118, 1118, 1118, 1118, 1118,
- 1126, 1127, 1118, 1128, 1129, 1130, 1131, 1113,
- 1114, 1115, 1132, 1133, 1134, 1135, 1136, 553,
- 540, 540, 540, 540, 540, 553, 540, 540,
- 553, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
- 1137, 1137, 1137, 10, 1138, 1138, 1112, 1118,
- 1118, 1139, 1118, 1118, 1118, 1118, 1140, 1141,
- 1142, 1143, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1126, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1144, 1145, 1146, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1147, 1148, 1112, 1149, 540,
- 540, 540, 540, 540, 540, 540, 1108, 1085,
- 540, 540, 540, 540, 553, 540, 1125, 1125,
- 540, 540, 1085, 553, 540, 540, 553, 1118,
- 1118, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 1118, 1118, 1118, 1150, 1150,
- 1126, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
- 1117, 1117, 1117, 1117, 1117, 1117, 1117, 0,
- 1151, 1126, 1152, 1126, 1126, 1126, 1126, 1126,
- 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
- 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
- 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
- 1126, 540, 553, 540, 540, 553, 540, 540,
- 553, 553, 553, 540, 553, 553, 540, 553,
- 540, 540, 540, 553, 540, 553, 540, 553,
- 540, 553, 540, 540, 0, 0, 1126, 1126,
- 1126, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1126, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 1126, 1126,
- 1126, 1118, 1118, 1118, 1118, 1118, 1118, 1153,
- 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 1153, 1153, 1118, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1154, 1154, 1154, 1154, 1154, 1154, 1154,
- 1154, 1154, 1154, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 540, 540, 540, 540,
- 540, 540, 540, 553, 540, 1155, 1155, 77,
- 9, 9, 9, 1155, 0, 0, 0, 0,
- 0, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
- 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
- 1156, 1156, 1156, 1156, 1156, 1156, 1156, 540,
- 540, 540, 540, 1157, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 1157, 540, 540,
- 540, 1157, 540, 540, 540, 540, 540, 0,
- 0, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
- 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
- 0, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
- 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
- 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
- 1156, 1156, 553, 553, 553, 0, 0, 1158,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 0, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 1107, 553, 540, 540, 553,
- 540, 540, 553, 540, 540, 540, 553, 553,
- 553, 1129, 1130, 1131, 540, 540, 540, 553,
- 540, 540, 553, 553, 540, 540, 540, 540,
- 540, 1153, 1153, 1153, 1159, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1161, 1162, 1160, 1160, 1160, 1160, 1160,
- 1160, 1163, 1164, 1160, 1165, 1166, 1160, 1160,
- 1160, 1160, 1160, 1153, 1159, 1167, 1160, 1159,
- 1159, 1159, 1153, 1153, 1153, 1153, 1153, 1153,
- 1153, 1153, 1159, 1159, 1159, 1159, 1168, 1159,
- 1159, 1160, 540, 553, 540, 540, 1153, 1153,
- 1153, 1169, 1170, 1171, 1172, 1173, 1174, 1175,
- 1176, 1160, 1160, 1153, 1153, 1177, 1177, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1177, 1179, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1153, 1159, 1159, 0, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 0, 0,
- 1160, 1160, 0, 0, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 0, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 0, 1160, 0, 0, 0, 1160,
- 1160, 1160, 1160, 0, 0, 1180, 1160, 1181,
- 1159, 1159, 1153, 1153, 1153, 1153, 0, 0,
- 1182, 1159, 0, 0, 1183, 1184, 1168, 1160,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 1185, 0, 0, 0, 0, 1186, 1187, 0,
- 1188, 1160, 1160, 1153, 1153, 0, 0, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1160, 1160, 1189, 1189, 1190, 1190, 1190,
- 1190, 1190, 1190, 1191, 1189, 0, 0, 0,
- 0, 0, 1153, 1153, 1159, 0, 1160, 1160,
- 1160, 1160, 1160, 1160, 0, 0, 0, 0,
- 1160, 1160, 0, 0, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 0, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 0, 1160, 1192, 0, 1160, 1193,
- 0, 1160, 1160, 0, 0, 1180, 0, 1159,
- 1159, 1159, 1153, 1153, 0, 0, 0, 0,
- 1153, 1153, 0, 0, 1153, 1153, 1168, 0,
- 0, 0, 1153, 0, 0, 0, 0, 0,
- 0, 0, 1194, 1195, 1196, 1160, 0, 1197,
- 0, 0, 0, 0, 0, 0, 0, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1153, 1153, 1160, 1160, 1160, 1153, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1153, 1153, 1159, 0, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 0,
- 1160, 1160, 1160, 0, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 0, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 0, 1160, 1160, 0, 1160, 1160,
- 1160, 1160, 1160, 0, 0, 1180, 1160, 1159,
- 1159, 1159, 1153, 1153, 1153, 1153, 1153, 0,
- 1153, 1153, 1159, 0, 1159, 1159, 1168, 0,
- 0, 1160, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1153, 1153, 0, 0, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1177, 1189, 0, 0, 0, 0, 0,
- 0, 0, 1160, 0, 0, 0, 0, 0,
- 0, 0, 1153, 1159, 1159, 0, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 0, 0,
- 1160, 1160, 0, 0, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 0, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 0, 1160, 1160, 0, 1160, 1160,
- 1160, 1160, 1160, 0, 0, 1180, 1160, 1198,
- 1153, 1159, 1153, 1153, 1153, 1153, 0, 0,
- 1199, 1200, 0, 0, 1201, 1202, 1168, 0,
- 0, 0, 0, 0, 0, 0, 0, 1203,
- 1204, 0, 0, 0, 0, 1205, 1206, 0,
- 1160, 1160, 1160, 1153, 1153, 0, 0, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1191, 1160, 1190, 1190, 1190, 1190, 1190,
- 1190, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1153, 1160, 0, 1160, 1160,
- 1160, 1160, 1160, 1160, 0, 0, 0, 1160,
- 1160, 1160, 0, 1207, 1160, 1208, 1160, 0,
- 0, 0, 1160, 1160, 0, 1160, 0, 1160,
- 1160, 0, 0, 0, 1160, 1160, 0, 0,
- 0, 1160, 1160, 1160, 0, 0, 0, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 0, 0, 0, 0, 1209,
- 1159, 1153, 1159, 1159, 0, 0, 0, 1210,
- 1211, 1159, 0, 1212, 1213, 1214, 1168, 0,
- 0, 1160, 0, 0, 0, 0, 0, 0,
- 1215, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1190, 1190, 1190, 1085, 1085, 1085, 1085,
- 1085, 1085, 1189, 1085, 0, 0, 0, 0,
- 0, 1153, 1159, 1159, 1159, 0, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 0, 1160,
- 1160, 1160, 0, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 0, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 0, 0, 0, 1160, 1153,
- 1153, 1153, 1159, 1159, 1159, 1159, 0, 1216,
- 1153, 1217, 0, 1153, 1153, 1153, 1168, 0,
- 0, 0, 0, 0, 0, 0, 1218, 1219,
- 0, 1160, 1160, 1160, 0, 0, 0, 0,
- 0, 1160, 1160, 1153, 1153, 0, 0, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 0, 0, 0, 0, 0, 0, 0,
- 0, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
- 1191, 1160, 1153, 1159, 1159, 0, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 0, 1160,
- 1160, 1160, 0, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 0, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 0, 1160, 1160,
- 1160, 1160, 1160, 0, 0, 1180, 1160, 1159,
- 1221, 1222, 1159, 1223, 1159, 1159, 0, 1224,
- 1225, 1226, 0, 1227, 1228, 1153, 1168, 0,
- 0, 0, 0, 0, 0, 0, 1229, 1230,
- 0, 0, 0, 0, 0, 0, 0, 1160,
- 0, 1160, 1160, 1153, 1153, 0, 0, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 0, 1160, 1160, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1153, 1159, 1159, 0, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 0, 1160,
- 1160, 1160, 0, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 0, 0, 1160, 1231,
- 1159, 1159, 1153, 1153, 1153, 1153, 0, 1232,
- 1233, 1159, 0, 1234, 1235, 1236, 1168, 1237,
- 1191, 0, 0, 0, 0, 1160, 1160, 1160,
- 1238, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
- 1160, 1160, 1160, 1153, 1153, 0, 0, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
- 1190, 1190, 1191, 1160, 1160, 1160, 1160, 1160,
- 1160, 0, 0, 1159, 1159, 0, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 0, 0, 0, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 0, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 0, 1160, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 0, 0, 0, 1239, 0, 0, 0, 0,
- 1240, 1159, 1159, 1153, 1153, 1153, 0, 1153,
- 0, 1159, 1241, 1242, 1159, 1243, 1244, 1245,
- 1246, 0, 0, 0, 0, 0, 0, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 0, 0, 1159, 1159, 1177, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 1153, 340, 1247, 1153, 1153, 1153,
- 1153, 1248, 1248, 1168, 0, 0, 0, 0,
- 11, 340, 340, 340, 340, 340, 340, 523,
- 1153, 1249, 1249, 1249, 1249, 1153, 1153, 1153,
- 1044, 1250, 1250, 1250, 1250, 1250, 1250, 1250,
- 1250, 1250, 1250, 1044, 1044, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 340, 340, 0, 340, 0, 0,
- 340, 340, 0, 340, 0, 0, 340, 0,
- 0, 0, 0, 0, 0, 340, 340, 340,
- 340, 0, 340, 340, 340, 340, 340, 340,
- 340, 0, 340, 340, 340, 0, 340, 0,
- 340, 0, 0, 340, 340, 0, 340, 340,
- 340, 340, 1153, 340, 1251, 1153, 1153, 1153,
- 1153, 1252, 1252, 0, 1153, 1153, 340, 0,
- 0, 340, 340, 340, 340, 340, 0, 523,
- 0, 1253, 1253, 1253, 1253, 1153, 1153, 0,
- 0, 1250, 1250, 1250, 1250, 1250, 1250, 1250,
- 1250, 1250, 1250, 0, 0, 1254, 1255, 340,
- 340, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1191, 1191, 1191, 1177, 1177, 1177,
- 1177, 1177, 1177, 1177, 1177, 1256, 1177, 1177,
- 1177, 1177, 1177, 1177, 1191, 1177, 1191, 1191,
- 1191, 553, 553, 1191, 1191, 1191, 1191, 1191,
- 1191, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1190, 1190, 1190, 1190, 1190,
- 1190, 1190, 1190, 1190, 1190, 1191, 553, 1191,
- 553, 1191, 1257, 1258, 1259, 1258, 1259, 1159,
- 1159, 1160, 1160, 1160, 1260, 1160, 1160, 1160,
- 1160, 0, 1160, 1160, 1160, 1160, 1261, 1160,
- 1160, 1160, 1160, 1262, 1160, 1160, 1160, 1160,
- 1263, 1160, 1160, 1160, 1160, 1264, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1265, 1160, 1160, 1160, 0, 0,
- 0, 0, 1266, 1267, 1268, 1269, 1270, 1271,
- 1272, 1273, 1274, 1267, 1267, 1267, 1267, 1153,
- 1159, 1267, 1275, 540, 540, 1168, 1177, 540,
- 540, 1160, 1160, 1160, 1160, 1160, 1153, 1153,
- 1153, 1153, 1153, 1153, 1276, 1153, 1153, 1153,
- 1153, 0, 1153, 1153, 1153, 1153, 1277, 1153,
- 1153, 1153, 1153, 1278, 1153, 1153, 1153, 1153,
- 1279, 1153, 1153, 1153, 1153, 1280, 1153, 1153,
- 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 1153, 1153, 1281, 1153, 1153, 1153, 0, 1191,
- 1191, 1191, 1191, 1191, 1191, 1191, 1191, 553,
- 1191, 1191, 1191, 1191, 1191, 1191, 0, 1191,
- 1191, 1177, 1177, 1177, 1177, 1177, 1191, 1191,
- 1191, 1191, 1177, 1177, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 340, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 340, 1160, 1160, 1160, 1160, 1282, 1283,
- 1160, 1160, 1160, 1160, 1284, 1284, 1153, 1285,
- 1153, 1153, 1159, 1153, 1153, 1153, 1153, 1153,
- 1180, 1284, 1168, 1168, 1159, 1159, 1153, 1153,
- 1160, 1178, 1178, 1250, 1250, 1178, 1178, 1178,
- 1178, 1178, 1178, 1044, 1044, 1044, 1177, 1177,
- 1177, 1160, 1160, 1160, 1160, 340, 1160, 1159,
- 1159, 1153, 1153, 1160, 1160, 1160, 1160, 1153,
- 1153, 1153, 1160, 1284, 1284, 1284, 1160, 1160,
- 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1160,
- 1160, 1160, 1153, 1153, 1153, 1153, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1153, 1284, 1159, 1153, 1153,
- 1284, 1284, 1284, 1284, 1284, 1284, 553, 1160,
- 1284, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1284, 1284, 1284, 1153, 1191,
- 1191, 1286, 1287, 1288, 1289, 1290, 1291, 1292,
- 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300,
- 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308,
- 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316,
- 1317, 1318, 1319, 1320, 1321, 1322, 1323, 0,
- 1324, 0, 0, 0, 0, 0, 1325, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 1044, 1326, 340, 340,
- 340, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
- 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
- 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
- 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
- 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
- 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
- 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
- 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
- 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
- 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
- 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
- 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
- 1328, 1329, 1330, 1330, 1330, 1330, 1330, 1330,
- 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330,
- 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330,
- 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330,
- 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330,
- 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330,
- 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330,
- 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330,
- 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330,
- 1330, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
- 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
- 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
- 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
- 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
- 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
- 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
- 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
- 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
- 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
- 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
- 1331, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 0, 1160, 1160, 1160, 1160, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 0, 1160, 0, 1160, 1160, 1160, 1160, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 0, 1160, 1160, 1160, 1160, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 0, 1160, 1160, 1160, 1160, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 0, 1160, 0, 1160, 1160, 1160, 1160, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 0, 1160, 1160, 1160, 1160, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 340, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 0, 0, 540, 540,
- 540, 1177, 1044, 1177, 1177, 1177, 1177, 1177,
- 1177, 1177, 1190, 1190, 1190, 1190, 1190, 1190,
- 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
- 1190, 1190, 1190, 1190, 1190, 1190, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 77, 77, 77, 77, 77, 1085, 77,
- 1085, 1085, 77, 0, 0, 0, 0, 0,
- 0, 1332, 1333, 1334, 1335, 1336, 1337, 1338,
- 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346,
- 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354,
- 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362,
- 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370,
- 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378,
- 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386,
- 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394,
- 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402,
- 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410,
- 1411, 1412, 1413, 1414, 1415, 1416, 1417, 0,
- 0, 1418, 1419, 1420, 1421, 1422, 1423, 0,
- 0, 1424, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 340, 340, 340, 340,
- 340, 340, 340, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 340, 340, 340, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 340,
- 1160, 1160, 1160, 1160, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 340, 340, 340, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 1160, 1160, 1160, 1160, 1160,
- 1160, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 340, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 340, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 340, 340, 340, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 340,
- 340, 340, 340, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 340, 340, 340, 340, 1160, 1160, 1160, 1160,
- 340, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 340,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 340, 340, 340, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 340,
- 340, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 340, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1177, 1044,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 1425, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1258, 1259, 0, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 1160, 340, 1160, 340, 340, 340, 340,
- 340, 340, 340, 340, 1044, 1044, 1044, 1426,
- 1426, 1426, 340, 340, 340, 340, 340, 340,
- 340, 340, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 0, 1160,
- 1160, 1160, 1160, 1153, 1153, 1168, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1153, 1153, 1168, 1177, 1177,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1153, 1153, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 340, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 0, 1160,
- 1160, 1160, 0, 1153, 1153, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 574, 574, 1159,
- 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1159,
- 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1153,
- 1159, 1159, 1153, 1153, 1153, 1153, 1153, 1153,
- 1153, 1153, 1153, 1168, 1153, 1177, 1177, 1044,
- 1179, 1177, 1177, 1177, 1189, 340, 540, 0,
- 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 0, 0, 0, 0, 0,
- 0, 1427, 1427, 1427, 1427, 1427, 1427, 1427,
- 1427, 1427, 1427, 0, 0, 0, 0, 0,
- 0, 1428, 1428, 1428, 1428, 1428, 1428, 1424,
- 1428, 1428, 1428, 1428, 574, 574, 574, 81,
- 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1179, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1153, 1153,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1087, 1160, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 340, 340, 340,
- 1160, 340, 1160, 340, 1160, 1160, 1160, 340,
- 340, 1160, 1160, 1160, 340, 340, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 340, 1160, 340, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 340, 340, 340, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 0, 1153, 1153, 1153, 1159, 1159, 1159, 1159,
- 1153, 1153, 1159, 1159, 1159, 0, 0, 0,
- 0, 1159, 1159, 1153, 1159, 1159, 1159, 1159,
- 1159, 1159, 1086, 540, 553, 0, 0, 0,
- 0, 1085, 0, 0, 0, 1428, 1428, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 0,
- 0, 340, 340, 340, 340, 340, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 0, 0, 0, 0, 0,
- 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1190, 0, 0, 0, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 540, 553, 1159, 1159, 1153, 0, 0, 1177,
- 1177, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1159, 1153,
- 1159, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 0, 1168, 1284, 1153, 1284, 1284, 1153, 1153,
- 1153, 1153, 1153, 1153, 1153, 1153, 1159, 1159,
- 1159, 1159, 1159, 1159, 1153, 1153, 540, 540,
- 540, 540, 540, 540, 540, 540, 0, 0,
- 553, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 0, 0, 0, 0, 0,
- 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 0, 0, 0, 0, 0,
- 0, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
- 1179, 1177, 1177, 1177, 1177, 1177, 1177, 0,
- 0, 540, 540, 540, 540, 540, 553, 553,
- 553, 553, 553, 553, 540, 540, 553, 839,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1153, 1153, 1153, 1153, 1159, 1429, 1430,
- 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438,
- 1160, 1160, 1439, 1440, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1180, 1441, 1153,
- 1153, 1153, 1153, 1442, 1443, 1444, 1445, 1446,
- 1447, 1448, 1449, 1450, 1451, 1452, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 0, 0, 0,
- 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1177, 1177, 1177, 1177, 1177,
- 1177, 1177, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 1191, 1191, 1191, 540, 553, 540, 540,
- 540, 540, 540, 540, 540, 1191, 1191, 1191,
- 1191, 1191, 1191, 1191, 1191, 1191, 0, 0,
- 0, 1153, 1153, 1159, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1159, 1153, 1153, 1153, 1153, 1159,
- 1159, 1153, 1153, 1452, 1168, 1153, 1153, 1160,
- 1160, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1180,
- 1159, 1153, 1153, 1159, 1159, 1159, 1153, 1159,
- 1153, 1153, 1153, 1452, 1452, 0, 0, 0,
- 0, 0, 0, 0, 0, 1177, 1177, 1177,
- 1177, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1159, 1159, 1159,
- 1159, 1159, 1159, 1159, 1159, 1153, 1153, 1153,
- 1153, 1153, 1153, 1153, 1153, 1159, 1159, 1153,
- 1180, 0, 0, 0, 1177, 1177, 1177, 1177,
- 1177, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 0, 0, 0, 1160, 1160,
- 1160, 1250, 1250, 1250, 1250, 1250, 1250, 1250,
- 1250, 1250, 1250, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 523, 523, 523, 523, 523, 523, 1044,
- 1044, 1453, 1454, 1455, 1456, 1457, 1457, 1458,
- 1459, 1460, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
- 1177, 0, 0, 0, 0, 0, 0, 0,
- 0, 540, 540, 540, 1177, 566, 553, 553,
- 553, 553, 553, 540, 540, 553, 553, 553,
- 553, 540, 1159, 566, 566, 566, 566, 566,
- 566, 566, 1160, 1160, 1160, 1160, 553, 1160,
- 1160, 1160, 1160, 1159, 1159, 540, 1160, 1160,
- 0, 540, 540, 0, 0, 0, 0, 0,
- 0, 214, 214, 214, 214, 214, 214, 214,
- 214, 214, 214, 214, 214, 214, 214, 214,
- 214, 214, 214, 214, 214, 214, 214, 214,
- 214, 214, 214, 214, 214, 214, 214, 214,
- 214, 214, 214, 214, 214, 214, 214, 214,
- 214, 214, 214, 214, 214, 1461, 1462, 1463,
- 523, 1464, 1465, 1466, 1467, 1468, 1469, 1470,
- 1471, 1472, 1473, 1474, 523, 1475, 1476, 1477,
- 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485,
- 1486, 1487, 1488, 1489, 1490, 1491, 1492, 523,
- 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500,
- 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508,
- 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516,
- 1517, 1518, 1519, 1520, 214, 214, 214, 214,
- 214, 214, 214, 214, 214, 214, 214, 214,
- 214, 1521, 1522, 1523, 214, 214, 1524, 214,
- 214, 214, 214, 214, 214, 214, 214, 214,
- 214, 214, 214, 214, 214, 214, 214, 214,
- 214, 214, 214, 214, 214, 214, 1523, 214,
- 214, 214, 214, 214, 1525, 1526, 1527, 1528,
- 1491, 1529, 1530, 1531, 1532, 1533, 1534, 1535,
- 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543,
- 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551,
- 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559,
- 1560, 540, 540, 553, 540, 540, 540, 540,
- 540, 540, 540, 553, 540, 540, 576, 1561,
- 553, 555, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 0,
- 0, 0, 0, 0, 540, 575, 553, 540,
- 553, 1562, 1563, 1564, 1565, 1566, 1567, 1568,
- 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576,
- 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584,
- 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592,
- 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600,
- 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608,
- 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616,
- 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624,
- 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632,
- 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640,
- 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648,
- 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656,
- 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664,
- 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672,
- 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680,
- 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688,
- 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696,
- 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704,
- 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712,
- 1713, 1714, 1715, 1716, 1717, 214, 214, 1718,
- 214, 1719, 1720, 1721, 1722, 1723, 1724, 1725,
- 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733,
- 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741,
- 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749,
- 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757,
- 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765,
- 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773,
- 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781,
- 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789,
- 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797,
- 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805,
- 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813,
- 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821,
- 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829,
- 1830, 1831, 1832, 1833, 1834, 1835, 1836, 0,
- 0, 1837, 1838, 1839, 1840, 1841, 1842, 0,
- 0, 1843, 1844, 1845, 1846, 1847, 1848, 1849,
- 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857,
- 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865,
- 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873,
- 1874, 1875, 1876, 1877, 1878, 1879, 1880, 0,
- 0, 1881, 1882, 1883, 1884, 1885, 1886, 0,
- 0, 1887, 1888, 1889, 1890, 1891, 1892, 1893,
- 1894, 0, 1895, 0, 1896, 0, 1897, 0,
- 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905,
- 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913,
- 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921,
- 1922, 1923, 1924, 1925, 1926, 1927, 1928, 0,
- 0, 1929, 1930, 1931, 1932, 1933, 1934, 1935,
- 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943,
- 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951,
- 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959,
- 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967,
- 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975,
- 1976, 1977, 1978, 1979, 1980, 1981, 0, 1982,
- 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990,
- 1991, 1992, 1993, 1994, 1995, 1996, 0, 1997,
- 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
- 2006, 2007, 2008, 2009, 2010, 0, 0, 2011,
- 2012, 2013, 2014, 2015, 2016, 0, 2017, 2018,
- 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026,
- 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034,
- 2035, 0, 0, 2036, 2037, 2038, 0, 2039,
- 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047,
- 0, 2048, 2049, 2050, 2051, 2050, 2050, 2050,
- 2052, 2050, 2050, 2050, 81, 2053, 2054, 2055,
- 2056, 1084, 2057, 1084, 1084, 1084, 1084, 9,
- 2058, 2059, 2060, 2061, 2059, 2059, 2060, 2061,
- 2059, 9, 9, 9, 9, 2062, 2063, 2064,
- 9, 2065, 2066, 2067, 2068, 2069, 2070, 2071,
- 76, 10, 10, 10, 2072, 2073, 9, 2074,
- 2075, 9, 80, 92, 9, 2076, 9, 2077,
- 48, 48, 9, 9, 9, 2078, 12, 13,
- 2079, 2080, 2081, 9, 9, 9, 9, 9,
- 9, 9, 9, 75, 9, 48, 9, 9,
- 2082, 9, 9, 9, 9, 9, 9, 9,
- 2050, 81, 81, 81, 81, 81, 0, 2083,
- 2084, 2085, 2086, 81, 81, 81, 81, 81,
- 81, 2087, 2088, 0, 0, 2089, 2090, 2091,
- 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099,
- 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107,
- 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115,
- 0, 2116, 2117, 2118, 2119, 2120, 2121, 2122,
- 2123, 2124, 2125, 2126, 2127, 2128, 0, 0,
- 0, 11, 11, 11, 11, 11, 11, 11,
- 11, 2129, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 1189, 11, 11, 11, 11, 11,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 540, 540, 566, 566, 540, 540, 540,
- 540, 566, 566, 566, 540, 540, 839, 839,
- 839, 839, 540, 839, 839, 839, 566, 566,
- 540, 553, 540, 566, 566, 553, 553, 553,
- 553, 540, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 2130, 2131, 2132, 2133, 77, 2134, 2135,
- 2136, 77, 2137, 2138, 2139, 2139, 2139, 2140,
- 2141, 2142, 2142, 2143, 2144, 77, 2145, 2146,
- 77, 75, 2147, 2148, 2149, 2149, 2149, 77,
- 77, 2150, 2151, 2152, 77, 2153, 77, 2154,
- 77, 2153, 77, 2155, 2156, 2157, 2132, 83,
- 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165,
- 2166, 2167, 2168, 1085, 2169, 2170, 2171, 2172,
- 2173, 2174, 75, 75, 75, 75, 2175, 2176,
- 2158, 2168, 2177, 77, 75, 1085, 77, 2178,
- 1191, 2179, 2180, 2181, 2182, 2183, 2184, 2185,
- 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193,
- 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201,
- 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209,
- 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217,
- 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225,
- 2226, 1426, 1426, 2227, 2228, 2229, 1426, 1426,
- 1426, 2227, 2230, 77, 77, 0, 0, 0,
- 0, 2231, 75, 2232, 75, 2233, 77, 77,
- 77, 77, 77, 2234, 2235, 77, 77, 77,
- 77, 75, 77, 77, 75, 77, 77, 75,
- 77, 77, 77, 77, 77, 77, 77, 2236,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 2237, 2238,
- 2239, 2240, 77, 2241, 77, 2242, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 1109, 75, 75,
- 75, 75, 1109, 1109, 1109, 1109, 75, 75,
- 1109, 75, 2243, 2243, 2244, 2245, 75, 75,
- 75, 2246, 2247, 2243, 2248, 2249, 2243, 75,
- 75, 75, 2243, 14, 84, 75, 2243, 2243,
- 75, 75, 75, 2243, 2243, 2243, 2243, 75,
- 2243, 2243, 2243, 2243, 2250, 2251, 2252, 2253,
- 75, 75, 75, 75, 2243, 2254, 2255, 2243,
- 2256, 2257, 2243, 2243, 2243, 75, 75, 75,
- 75, 75, 2243, 75, 2243, 2258, 2243, 2243,
- 2243, 2243, 2259, 2243, 2260, 2261, 2262, 2243,
- 2263, 2264, 2265, 2243, 2243, 2243, 2266, 75,
- 75, 75, 75, 2243, 2243, 2243, 2243, 75,
- 75, 75, 75, 75, 75, 75, 75, 75,
- 2243, 2267, 2268, 2269, 75, 2270, 2271, 2243,
- 2243, 2243, 2243, 2243, 2243, 75, 2272, 2273,
- 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281,
- 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2243,
- 2243, 2289, 2290, 2291, 2292, 2293, 2294, 2295,
- 2296, 2297, 2298, 2243, 2243, 2243, 75, 75,
- 2243, 2243, 2299, 2300, 75, 75, 75, 75,
- 75, 2243, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 2301, 2243, 75, 75, 2243,
- 2243, 2302, 2303, 2243, 2304, 2305, 2306, 2307,
- 2308, 2243, 2243, 2309, 2310, 2311, 2312, 2243,
- 2243, 2243, 75, 75, 75, 75, 75, 2243,
- 2243, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 2243, 2243, 2243, 2243, 2243, 75,
- 75, 2243, 2243, 75, 75, 75, 75, 2243,
- 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
- 2243, 2313, 2314, 2315, 2316, 2243, 2243, 2243,
- 2243, 2243, 2243, 2317, 2318, 2319, 2320, 75,
- 75, 2243, 2243, 2321, 2321, 2243, 2321, 2321,
- 2243, 2243, 2321, 2321, 2321, 2243, 2321, 2243,
- 2321, 77, 77, 77, 77, 77, 77, 77,
- 77, 12, 13, 12, 13, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 1085, 1085, 77, 77, 77,
- 77, 2243, 2243, 77, 77, 77, 77, 77,
- 77, 77, 2322, 2323, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 1085, 1109, 1085, 1085,
- 77, 77, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 838, 77,
- 1085, 1085, 1085, 1085, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 1109, 1109, 1085, 1085, 1085,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 77, 77, 1085, 1085,
- 77, 77, 77, 77, 77, 1085, 1085, 1085,
- 1085, 1085, 1085, 77, 1085, 1109, 1109, 1109,
- 1109, 1109, 1109, 1085, 1085, 1085, 1085, 1085,
- 1085, 77, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 77, 77, 77, 77, 77,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 2324, 2325, 2326, 2327, 2328, 2329, 2330,
- 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338,
- 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346,
- 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354,
- 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362,
- 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370,
- 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378,
- 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386,
- 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394,
- 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402,
- 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410,
- 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418,
- 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426,
- 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434,
- 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442,
- 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450,
- 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458,
- 2459, 2460, 2461, 2462, 1220, 1220, 1220, 1220,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
- 1220, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 75, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 75, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 75, 75, 75, 75, 75, 1109, 1109,
- 75, 77, 77, 77, 1085, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 1085, 1085, 1085,
- 1085, 1085, 1085, 77, 77, 77, 2463, 77,
- 77, 77, 77, 1085, 1085, 1085, 77, 77,
- 77, 77, 77, 77, 1085, 1085, 77, 77,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 75, 77, 77, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 77, 77, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 77, 1085, 1085, 1085, 838, 1085, 1085,
- 1085, 1085, 1085, 77, 77, 77, 77, 1085,
- 77, 77, 77, 77, 77, 77, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 77, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 2464, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 2464, 2464, 2464, 2464, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 2465, 1085, 1085,
- 1085, 12, 13, 12, 13, 12, 13, 12,
- 13, 12, 13, 12, 13, 12, 13, 1220,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
- 1220, 1220, 1220, 1220, 1220, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 2243, 1109, 75, 2321, 2321, 12, 13,
- 75, 2321, 2321, 75, 2321, 2321, 2321, 1109,
- 1109, 1109, 75, 1109, 2243, 2243, 2321, 2321,
- 1109, 1109, 1109, 1109, 1109, 2321, 2321, 2321,
- 1109, 75, 1109, 2321, 2321, 2321, 2321, 12,
- 13, 12, 13, 12, 13, 12, 13, 12,
- 13, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
- 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
- 1109, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
- 1109, 75, 75, 1109, 1109, 1109, 1109, 1109,
- 1109, 1109, 1109, 75, 75, 1109, 1109, 1109,
- 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
- 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
- 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
- 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
- 1109, 75, 75, 1109, 1109, 1109, 1109, 1109,
- 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
- 1109, 1109, 75, 1109, 1109, 75, 75, 1109,
- 75, 1109, 75, 1109, 1109, 75, 75, 1109,
- 1109, 75, 75, 1109, 1109, 75, 75, 1109,
- 1109, 75, 75, 1109, 1109, 1109, 1109, 1109,
- 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
- 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
- 1109, 1109, 1109, 1109, 1109, 75, 75, 1109,
- 1109, 75, 1109, 75, 12, 13, 12, 13,
- 12, 13, 12, 13, 12, 13, 12, 13,
- 12, 13, 12, 13, 1258, 1259, 1258, 1259,
- 12, 13, 75, 1109, 2321, 2321, 2321, 2321,
- 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2243,
- 2243, 2321, 2321, 2321, 2321, 2321, 2321, 2321,
- 2321, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
- 1109, 2321, 1109, 1109, 1109, 1109, 1109, 1109,
- 1109, 2321, 2321, 2321, 2321, 2321, 2321, 1109,
- 1109, 1109, 2321, 1109, 1109, 1109, 1109, 2321,
- 2321, 2321, 2243, 2243, 75, 2243, 2243, 75,
- 75, 12, 13, 1258, 1259, 2321, 1109, 1109,
- 1109, 1109, 2321, 1109, 2321, 2321, 2321, 1109,
- 1109, 2321, 2321, 1109, 75, 1109, 1109, 1109,
- 1109, 1109, 1109, 1109, 1109, 2321, 2243, 2243,
- 2243, 2243, 2243, 75, 75, 12, 13, 1109,
- 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
- 1109, 1109, 1109, 2321, 2321, 2466, 2321, 2321,
- 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321,
- 2321, 2321, 2321, 2321, 2321, 2321, 1109, 2243,
- 2243, 2321, 2243, 75, 75, 2243, 75, 2243,
- 1109, 75, 2243, 75, 2243, 2243, 2321, 2321,
- 75, 75, 75, 75, 1109, 2321, 2321, 1109,
- 1109, 1109, 1109, 1109, 1109, 2243, 2243, 2243,
- 1109, 1109, 1109, 1109, 1109, 1109, 1109, 75,
- 75, 75, 75, 75, 75, 1109, 1109, 1109,
- 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
- 2321, 2321, 1109, 1109, 1109, 1109, 1109, 1109,
- 1109, 1109, 1109, 1109, 1109, 2321, 2321, 75,
- 75, 1109, 1109, 2243, 2243, 2243, 2243, 1109,
- 2243, 2243, 75, 75, 2243, 2467, 2468, 2469,
- 75, 1109, 2321, 2321, 2321, 2321, 2321, 2321,
- 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321,
- 2321, 2321, 2321, 2321, 2243, 2243, 2321, 2321,
- 2243, 2243, 2243, 2243, 2243, 2243, 2321, 2321,
- 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321,
- 2321, 2321, 2321, 2321, 2321, 1109, 1109, 2321,
- 2321, 2321, 2321, 2321, 2321, 2321, 2321, 1109,
- 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321,
- 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321,
- 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
- 2321, 2321, 2243, 2243, 2243, 2243, 2321, 2321,
- 2321, 2321, 2321, 2321, 2243, 2243, 2243, 2243,
- 1109, 1109, 1109, 1109, 1109, 2470, 2471, 2243,
- 1109, 1109, 1109, 2321, 2321, 2321, 2321, 2321,
- 1109, 1109, 1109, 1109, 1109, 2321, 2321, 2243,
- 75, 75, 75, 75, 2321, 1109, 1109, 75,
- 2321, 2321, 2321, 2321, 2321, 1109, 2321, 75,
- 75, 1085, 1085, 1085, 1085, 1085, 1085, 77,
- 77, 1085, 1085, 1085, 1085, 1085, 77, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 77, 77,
- 1085, 1085, 1085, 1085, 1085, 1085, 77, 77,
- 77, 77, 77, 77, 77, 1085, 1085, 77,
- 77, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
- 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
- 1109, 1109, 1109, 1109, 1109, 1109, 1085, 1085,
- 1109, 1109, 1109, 1109, 1109, 1109, 1085, 77,
- 77, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 0, 0, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 0,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 0, 0, 0, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 0, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1085, 1085, 1085,
- 1085, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 2472, 2473, 2474, 2475, 2476, 2477, 2478,
- 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486,
- 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494,
- 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502,
- 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510,
- 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518,
- 0, 2519, 2520, 2521, 2522, 2523, 2524, 2525,
- 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533,
- 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541,
- 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549,
- 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557,
- 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565,
- 0, 2566, 2567, 2568, 2569, 2570, 2571, 2572,
- 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580,
- 2581, 2582, 214, 2583, 2584, 214, 2585, 2586,
- 214, 214, 214, 214, 214, 2587, 2588, 2589,
- 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597,
- 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605,
- 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613,
- 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621,
- 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629,
- 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637,
- 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645,
- 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653,
- 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661,
- 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669,
- 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677,
- 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685,
- 2686, 2687, 2688, 2689, 2690, 214, 77, 77,
- 1085, 77, 77, 1085, 2691, 2692, 2693, 2694,
- 540, 540, 540, 2695, 2696, 0, 0, 0,
- 0, 0, 9, 9, 9, 9, 1427, 9,
- 9, 2697, 2698, 2699, 2700, 2701, 2702, 2703,
- 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711,
- 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719,
- 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727,
- 2728, 2729, 2730, 2731, 2732, 2733, 2734, 0,
- 2735, 0, 0, 0, 0, 0, 2736, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 1160, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 0, 0, 0, 0, 0, 0, 0,
- 2737, 1044, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 1168, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 0, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 9, 9, 80, 92, 80, 92, 9,
- 9, 9, 80, 92, 9, 80, 92, 1428,
- 1428, 1428, 1428, 9, 1428, 1428, 1428, 9,
- 1084, 9, 9, 1084, 9, 80, 92, 9,
- 9, 80, 92, 12, 13, 12, 13, 12,
- 13, 12, 13, 9, 9, 9, 9, 9,
- 522, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 1084, 1084, 9, 9, 9,
- 9, 1084, 9, 2061, 1428, 9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 0, 1085, 1085, 1085, 1085,
- 2738, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 2739, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 2740, 2741, 2742, 2743, 2744, 2745, 2746,
- 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754,
- 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762,
- 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770,
- 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778,
- 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786,
- 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794,
- 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802,
- 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810,
- 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818,
- 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826,
- 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834,
- 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842,
- 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850,
- 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858,
- 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866,
- 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874,
- 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882,
- 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890,
- 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898,
- 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906,
- 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914,
- 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922,
- 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930,
- 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938,
- 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946,
- 2947, 2948, 2949, 2950, 2951, 2952, 2953, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 0, 0, 0,
- 0, 2954, 1428, 1428, 1428, 1085, 1179, 1160,
- 2227, 1258, 1259, 1258, 1259, 1258, 1259, 1258,
- 1259, 1258, 1259, 1085, 1085, 1258, 1259, 1258,
- 1259, 1258, 1259, 1258, 1259, 1424, 2955, 2956,
- 2956, 1085, 2227, 2227, 2227, 2227, 2227, 2227,
- 2227, 2227, 2227, 2957, 1087, 552, 1086, 2958,
- 2958, 1424, 1179, 1179, 1179, 1179, 1179, 2959,
- 1085, 2960, 2961, 2962, 1179, 1160, 1428, 1085,
- 77, 0, 1160, 1160, 1160, 1160, 1160, 2963,
- 1160, 1160, 1160, 1160, 2964, 2965, 2966, 2967,
- 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975,
- 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983,
- 2984, 2985, 2986, 2987, 1160, 2988, 2989, 2990,
- 2991, 2992, 2993, 1160, 1160, 1160, 1160, 1160,
- 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001,
- 3002, 3003, 3004, 3005, 3006, 3007, 3008, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 3009, 1160, 1160,
- 0, 0, 3010, 3011, 3012, 3013, 3014, 3015,
- 3016, 1424, 1160, 1160, 1160, 1160, 1160, 3017,
- 1160, 1160, 1160, 1160, 3018, 3019, 3020, 3021,
- 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029,
- 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037,
- 3038, 3039, 3040, 3041, 1160, 3042, 3043, 3044,
- 3045, 3046, 3047, 1160, 1160, 1160, 1160, 1160,
- 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055,
- 3056, 3057, 3058, 3059, 3060, 3061, 3062, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 3063, 3064, 3065, 3066, 1160, 3067, 1160, 1160,
- 3068, 3069, 3070, 3071, 1428, 1179, 3072, 3073,
- 3074, 0, 0, 0, 0, 0, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 0,
- 0, 0, 3075, 3076, 3077, 3078, 3079, 3080,
- 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088,
- 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096,
- 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104,
- 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112,
- 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120,
- 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128,
- 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136,
- 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144,
- 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152,
- 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160,
- 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168,
- 0, 1191, 1191, 3169, 3170, 3171, 3172, 3173,
- 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181,
- 3182, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 0, 0, 0, 0,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 3183, 3184, 3185, 3186, 3187, 3188, 3189,
- 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197,
- 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205,
- 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213,
- 0, 3214, 3215, 3216, 3217, 3218, 3219, 3220,
- 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228,
- 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236,
- 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244,
- 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252,
- 3253, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
- 1190, 3254, 3255, 3256, 3257, 3258, 3259, 3260,
- 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268,
- 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276,
- 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284,
- 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292,
- 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300,
- 1191, 3301, 3302, 3303, 3304, 3305, 3306, 3307,
- 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315,
- 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323,
- 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331,
- 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339,
- 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347,
- 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355,
- 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363,
- 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371,
- 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379,
- 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387,
- 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395,
- 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403,
- 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411,
- 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419,
- 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427,
- 0, 3428, 3429, 3430, 3431, 3432, 3433, 3434,
- 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442,
- 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450,
- 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458,
- 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466,
- 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474,
- 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482,
- 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490,
- 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498,
- 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506,
- 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514,
- 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522,
- 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530,
- 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538,
- 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546,
- 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554,
- 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562,
- 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570,
- 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578,
- 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586,
- 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594,
- 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602,
- 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610,
- 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618,
- 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626,
- 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634,
- 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642,
- 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650,
- 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658,
- 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666,
- 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674,
- 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682,
- 3683, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1179, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 0, 0,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 523, 523, 523, 523, 523, 523, 1044,
- 1044, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1179, 1428, 1428,
- 1428, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1160, 1160, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 3684, 3685, 3686, 3687, 3688, 3689, 3690,
- 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698,
- 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706,
- 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714,
- 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722,
- 3723, 3724, 3725, 3726, 3727, 3728, 3729, 1160,
- 540, 839, 839, 839, 9, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 9,
- 522, 3730, 3731, 3732, 3733, 3734, 3735, 3736,
- 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744,
- 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752,
- 3753, 3754, 3755, 3756, 3757, 3758, 3759, 540,
- 540, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 1426,
- 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
- 1426, 540, 540, 1044, 1044, 1044, 1044, 1044,
- 1044, 0, 0, 0, 0, 0, 0, 0,
- 0, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 47,
- 522, 522, 522, 522, 522, 522, 522, 522,
- 522, 47, 47, 3760, 3761, 3762, 3763, 3764,
- 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772,
- 3773, 214, 214, 3774, 3775, 3776, 3777, 3778,
- 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786,
- 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794,
- 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802,
- 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810,
- 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818,
- 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826,
- 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834,
- 3835, 3836, 1523, 1523, 1523, 1523, 1523, 1523,
- 1523, 214, 3837, 3838, 3839, 3840, 3841, 3842,
- 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850,
- 3851, 522, 3852, 3852, 3853, 3854, 3855, 214,
- 340, 3856, 3857, 3858, 3859, 214, 214, 3860,
- 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868,
- 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876,
- 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884,
- 0, 3885, 3886, 3887, 3888, 3889, 3890, 3891,
- 3892, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 340, 3893, 3894, 214, 340, 340, 340, 340,
- 1160, 1160, 1160, 1153, 1160, 1160, 1160, 1168,
- 1160, 1160, 1160, 1160, 1153, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1159, 1159, 1153, 1153,
- 1159, 77, 77, 1085, 1085, 0, 0, 0,
- 0, 1190, 1190, 1190, 1190, 1190, 1190, 1191,
- 1191, 1189, 3895, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1428, 1428, 1428,
- 1428, 0, 0, 0, 0, 0, 0, 0,
- 0, 1159, 1159, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1159, 1159, 1159,
- 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
- 1159, 1159, 1159, 1159, 1159, 1168, 1153, 0,
- 0, 0, 0, 0, 0, 0, 0, 1177,
- 1177, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 0, 0, 0, 0, 0,
- 0, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 1160, 1160, 1160, 1160, 1160,
- 1160, 1177, 1177, 1177, 1160, 1177, 1160, 0,
- 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1153,
- 1153, 1153, 1153, 1153, 553, 553, 553, 1177,
- 1177, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 1153, 1153, 1153, 1159, 1452, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 1177, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
- 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
- 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
- 1327, 1327, 1327, 1327, 1327, 1327, 0, 0,
- 0, 1153, 1153, 1153, 1159, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1180, 1159, 1159, 1153,
- 1153, 1153, 1153, 1159, 1159, 1153, 1159, 1159,
- 1159, 1452, 1177, 1177, 1177, 1177, 1177, 1177,
- 1177, 1177, 1177, 1177, 1177, 1177, 1177, 0,
- 1179, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 0, 0, 0, 0, 1177,
- 1177, 340, 1160, 1160, 1160, 1160, 1153, 523,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 340, 1250, 1250, 1250, 1250, 1250, 1250, 1250,
- 1250, 1250, 1178, 1160, 1160, 1160, 340, 1160,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1153, 1153, 1153, 1153, 1153, 1153,
- 1159, 1159, 1153, 1153, 1159, 1159, 1153, 1153,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1153, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1153, 1159, 0,
- 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 0, 0, 1177, 1177, 1177,
- 1177, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1179, 1160, 1160, 1160, 1160, 1160, 1160,
- 1191, 1191, 1191, 1160, 1284, 1153, 1284, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 540, 1160, 540, 540, 553, 1160, 1160,
- 540, 540, 1160, 1160, 1160, 1160, 1160, 540,
- 540, 1160, 540, 1160, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1160, 1160, 1179, 1177,
- 1177, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1159, 1153, 1153, 1159,
- 1159, 1177, 1177, 1160, 1179, 1179, 1159, 1168,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1160, 1160, 1160, 1160, 1160, 1160,
- 0, 0, 1160, 1160, 1160, 1160, 1160, 1160,
- 0, 0, 1160, 1160, 1160, 1160, 1160, 1160,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 0, 214, 214, 214, 214, 214, 214, 214,
- 214, 214, 214, 214, 214, 214, 214, 214,
- 214, 214, 214, 214, 214, 214, 214, 214,
- 214, 214, 214, 214, 214, 214, 214, 214,
- 214, 214, 214, 214, 3896, 214, 214, 214,
- 214, 214, 214, 214, 3852, 3897, 3898, 3899,
- 3900, 214, 214, 214, 214, 214, 214, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 3901, 3902, 3903, 3904, 3905, 3906, 3907,
- 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915,
- 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923,
- 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931,
- 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939,
- 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947,
- 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955,
- 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963,
- 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971,
- 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979,
- 3980, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1159, 1159, 1153, 1159,
- 1159, 1153, 1159, 1159, 1177, 1159, 1168, 0,
- 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 0, 0, 0, 0, 0,
- 0, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
- 3982, 3982, 3982, 3982, 3982, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1330, 1330, 1330, 1330, 1330, 1330, 1330,
- 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330,
- 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330,
- 0, 0, 0, 0, 1331, 1331, 1331, 1331,
- 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
- 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
- 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
- 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
- 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
- 1331, 1331, 1331, 1331, 1331, 0, 0, 0,
- 0, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
- 3983, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991,
- 3992, 3992, 3993, 3994, 3995, 3996, 3997, 3998,
- 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006,
- 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014,
- 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022,
- 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030,
- 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038,
- 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046,
- 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054,
- 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062,
- 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070,
- 4071, 4072, 4073, 4074, 4075, 4004, 4076, 4077,
- 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085,
- 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093,
- 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101,
- 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109,
- 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117,
- 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125,
- 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133,
- 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141,
- 4142, 4143, 4094, 4144, 4145, 4146, 4147, 4148,
- 4149, 4150, 4151, 4078, 4152, 4153, 4154, 4155,
- 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163,
- 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171,
- 4004, 4172, 4173, 4174, 4175, 4176, 4177, 4178,
- 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186,
- 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194,
- 4195, 4196, 4197, 4198, 4080, 4199, 4200, 4201,
- 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209,
- 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217,
- 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225,
- 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233,
- 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241,
- 4242, 4243, 4244, 4245, 4246, 4247, 4248, 1160,
- 1160, 4249, 1160, 4250, 1160, 1160, 4251, 4252,
- 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260,
- 1160, 4261, 1160, 4262, 1160, 1160, 4263, 4264,
- 1160, 1160, 1160, 4265, 4266, 4267, 4268, 4269,
- 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277,
- 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285,
- 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293,
- 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301,
- 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309,
- 4133, 4310, 4311, 4312, 4313, 4314, 4315, 4315,
- 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323,
- 4263, 4324, 4325, 4326, 4327, 4328, 4329, 0,
- 0, 4330, 4331, 4332, 4333, 4334, 4335, 4336,
- 4337, 4277, 4338, 4339, 4340, 4249, 4341, 4342,
- 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350,
- 4351, 4352, 4286, 4353, 4287, 4354, 4355, 4356,
- 4357, 4358, 4250, 4025, 4359, 4360, 4361, 4095,
- 4182, 4362, 4363, 4294, 4364, 4295, 4365, 4366,
- 4367, 4252, 4368, 4369, 4370, 4371, 4372, 4253,
- 4373, 4374, 4375, 4376, 4377, 4378, 4309, 4379,
- 4380, 4133, 4381, 4313, 4382, 4383, 4384, 4385,
- 4386, 4318, 4387, 4262, 4388, 4319, 4076, 4389,
- 4320, 4390, 4322, 4391, 4392, 4393, 4394, 4395,
- 4324, 4258, 4396, 4325, 4397, 4326, 4398, 3992,
- 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406,
- 4407, 4408, 4409, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 4410, 4411, 4412, 4413, 4414, 4415, 4416,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 4417, 4418, 4419, 4420,
- 4421, 0, 0, 0, 0, 0, 4422, 4423,
- 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431,
- 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439,
- 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447,
- 0, 4448, 4449, 4450, 4451, 4452, 0, 4453,
- 0, 4454, 4455, 0, 4456, 4457, 0, 4458,
- 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466,
- 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474,
- 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482,
- 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490,
- 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498,
- 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506,
- 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514,
- 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522,
- 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530,
- 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538,
- 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546,
- 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554,
- 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562,
- 4563, 4564, 4565, 4566, 4566, 4566, 4566, 4566,
- 4566, 4566, 4566, 4566, 4566, 4566, 4566, 4566,
- 4566, 4566, 4566, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 4567, 4568, 4569, 4570,
- 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578,
- 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586,
- 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594,
- 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602,
- 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610,
- 4611, 4612, 4613, 4614, 4605, 4615, 4616, 4617,
- 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625,
- 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633,
- 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641,
- 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649,
- 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657,
- 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665,
- 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673,
- 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681,
- 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689,
- 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697,
- 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705,
- 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713,
- 4714, 4606, 4715, 4716, 4717, 4718, 4719, 4720,
- 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728,
- 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736,
- 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744,
- 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752,
- 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760,
- 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768,
- 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776,
- 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784,
- 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792,
- 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800,
- 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808,
- 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816,
- 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824,
- 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832,
- 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840,
- 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848,
- 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856,
- 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864,
- 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872,
- 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880,
- 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888,
- 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896,
- 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904,
- 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912,
- 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920,
- 4921, 4922, 4923, 4924, 4925, 4926, 4927, 2956,
- 2955, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 4928, 4929, 4930, 4931, 4932, 4933, 4934,
- 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942,
- 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950,
- 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958,
- 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966,
- 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974,
- 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982,
- 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990,
- 4991, 0, 0, 4992, 4993, 4994, 4995, 4996,
- 4997, 4998, 4999, 5000, 5001, 5002, 5003, 5004,
- 5005, 5006, 5007, 5008, 5009, 5010, 5011, 5012,
- 5013, 5014, 5015, 5016, 5017, 5018, 5019, 5020,
- 5021, 5022, 5023, 5024, 5025, 5026, 5027, 5028,
- 5029, 5030, 5031, 5032, 5033, 5034, 5035, 5036,
- 5037, 5038, 5039, 5040, 5041, 5042, 5043, 5044,
- 5045, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 5046, 5047, 5048, 5049, 5050, 5051, 5052,
- 5053, 5054, 5055, 5056, 5057, 5058, 1085, 0,
- 0, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 5059, 5060, 5061, 5062, 5063, 5064, 5065,
- 5066, 5067, 5068, 0, 0, 0, 0, 0,
- 0, 540, 540, 540, 540, 540, 540, 540,
- 553, 553, 553, 553, 553, 553, 553, 540,
- 540, 5069, 5070, 5071, 5072, 5072, 5073, 5074,
- 5075, 5076, 5077, 5078, 5079, 5080, 5081, 5082,
- 5083, 5084, 5085, 5086, 5087, 5088, 1428, 1428,
- 5089, 5090, 5091, 5091, 5091, 5091, 5092, 5092,
- 5092, 5093, 5094, 5095, 0, 5096, 5097, 5098,
- 5099, 5100, 5101, 5102, 5103, 5104, 5105, 5106,
- 5107, 5108, 5109, 5110, 5111, 5112, 5113, 5114,
- 0, 5115, 5116, 5117, 5118, 0, 0, 0,
- 0, 5119, 5120, 5121, 1118, 5122, 0, 5123,
- 5124, 5125, 5126, 5127, 5128, 5129, 5130, 5131,
- 5132, 5133, 5134, 5135, 5136, 5137, 5138, 5139,
- 5140, 5141, 5142, 5143, 5144, 5145, 5146, 5147,
- 5148, 5149, 5150, 5151, 5152, 5153, 5154, 5155,
- 5156, 5157, 5158, 5159, 5160, 5161, 5162, 5163,
- 5164, 5165, 5166, 5167, 5168, 5169, 5170, 5171,
- 5172, 5173, 5174, 5175, 5176, 5177, 5178, 5179,
- 5180, 5181, 5182, 5183, 5184, 5185, 5186, 5187,
- 5188, 5189, 5190, 5191, 5192, 5193, 5194, 5195,
- 5196, 5197, 5198, 5199, 5200, 5201, 5202, 5203,
- 5204, 5205, 5206, 5207, 5208, 5209, 5210, 5211,
- 5212, 5213, 5214, 5215, 5216, 5217, 5218, 5219,
- 5220, 5221, 5222, 5223, 5224, 5225, 5226, 5227,
- 5228, 5229, 5230, 5231, 5232, 5233, 5234, 5235,
- 5236, 5237, 5238, 5239, 5240, 5241, 5242, 5243,
- 5244, 5245, 5246, 5247, 5248, 5249, 5250, 5251,
- 5252, 5253, 5254, 5255, 5256, 5257, 0, 0,
- 81, 0, 5258, 5259, 5260, 5261, 5262, 5263,
- 5264, 5265, 5266, 5267, 5268, 5269, 5270, 5271,
- 5272, 5273, 5274, 5275, 5276, 5277, 5278, 5279,
- 5280, 5281, 5282, 5283, 5284, 5285, 5286, 5287,
- 5288, 5289, 5290, 5291, 5292, 5293, 5294, 5295,
- 5296, 5297, 5298, 5299, 5300, 5301, 5302, 5303,
- 5304, 5305, 5306, 5307, 5308, 5309, 5310, 5311,
- 5312, 5313, 5314, 5315, 5316, 5317, 5318, 5319,
- 5320, 5321, 5322, 5323, 5324, 5325, 5326, 5327,
- 5328, 5329, 5330, 5331, 5332, 5333, 5334, 5335,
- 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343,
- 5344, 5345, 5346, 5347, 5348, 5349, 5350, 5351,
- 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359,
- 5360, 5361, 5362, 5363, 5364, 5365, 5366, 5367,
- 5368, 5369, 5370, 5371, 5372, 5373, 5374, 5375,
- 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383,
- 5384, 5385, 5386, 5387, 5388, 5389, 5390, 5391,
- 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399,
- 5400, 5401, 5402, 5403, 5404, 5405, 5406, 5407,
- 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5415,
- 5416, 5417, 5418, 5419, 5420, 5421, 5422, 5423,
- 5424, 5425, 5426, 5427, 5428, 5429, 5430, 5431,
- 5432, 5433, 5434, 5435, 5436, 5437, 5438, 5439,
- 5440, 5441, 5442, 5443, 5444, 5445, 5446, 5447,
- 0, 0, 0, 5448, 5449, 5450, 5451, 5452,
- 5453, 0, 0, 5454, 5455, 5456, 5457, 5458,
- 5459, 0, 0, 5460, 5461, 5462, 5463, 5464,
- 5465, 0, 0, 5466, 5467, 5468, 0, 0,
- 0, 5469, 5470, 5471, 5472, 5473, 5474, 5475,
- 0, 5476, 5477, 5478, 5479, 5480, 5481, 5482,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 5483, 5483, 5483, 1085, 77, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 0, 340, 1160,
- 1160, 340, 340, 340, 1160, 340, 340, 340,
- 340, 340, 340, 340, 340, 1160, 340, 340,
- 340, 340, 340, 1160, 1160, 1160, 340, 340,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 1160,
- 340, 340, 340, 340, 0, 340, 340, 0,
- 340, 340, 1160, 340, 340, 1160, 1160, 1160,
- 340, 340, 340, 1160, 1160, 340, 1160, 0,
- 0, 340, 340, 1160, 340, 340, 1160, 340,
- 1160, 1160, 1160, 340, 1160, 1160, 1160, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 340, 340, 1160, 1160, 1160, 1160, 340,
- 340, 340, 340, 1160, 1160, 1160, 1160, 1160,
- 340, 1160, 340, 340, 340, 340, 1160, 1160,
- 1160, 1160, 1160, 340, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 340, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 340, 1160, 340, 1160,
- 1160, 1160, 1160, 1160, 340, 340, 1160, 1160,
- 1160, 1160, 1160, 1160, 340, 1160, 1160, 1160,
- 1160, 1160, 340, 340, 340, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 340, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 0, 0, 0, 0,
- 0, 1044, 9, 1044, 0, 0, 0, 0,
- 5484, 5484, 5484, 5484, 5484, 5484, 5484, 5484,
- 5484, 5484, 5484, 5484, 5484, 5484, 5484, 5484,
- 5484, 5484, 5484, 5484, 5484, 5484, 5484, 5484,
- 5484, 5484, 1190, 5484, 1190, 5484, 1190, 1190,
- 1190, 1190, 1190, 1190, 5484, 1190, 5484, 1190,
- 1190, 1190, 1190, 1190, 1190, 0, 0, 0,
- 1191, 838, 1191, 838, 838, 838, 838, 838,
- 1191, 5485, 5485, 5485, 5485, 5485, 5485, 5485,
- 5485, 5485, 5485, 5485, 5485, 5485, 5485, 5485,
- 5485, 5485, 5485, 5485, 5485, 5485, 5485, 5485,
- 5485, 5485, 5485, 5485, 5485, 5485, 5485, 5485,
- 5485, 5485, 5485, 5485, 5485, 5485, 5485, 5485,
- 5485, 5485, 5486, 5486, 5486, 5486, 5486, 5486,
- 5485, 5486, 5485, 5485, 5485, 5485, 1427, 1427,
- 1220, 1427, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 1085, 77, 1427, 1427, 77, 838, 838,
- 0, 77, 77, 77, 77, 77, 77, 77,
- 1085, 1085, 1085, 77, 77, 0, 0, 0,
- 0, 77, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 1191, 1191, 1191, 1191, 1191, 553, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 1160,
- 1160, 340, 340, 340, 340, 340, 340, 340,
- 340, 1160, 340, 1160, 340, 340, 0, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 1160, 340, 340, 340, 340, 340, 340,
- 1160, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 553, 5487, 5487, 5487, 5487, 5487, 5487,
- 5487, 5487, 5487, 5487, 5487, 5487, 5487, 5487,
- 5487, 5487, 5487, 5487, 5487, 5487, 5487, 5487,
- 5487, 5487, 5487, 5487, 5487, 0, 0, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 5484, 5484, 5484, 5484, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 1426, 340, 340, 340, 340, 340,
- 340, 340, 340, 1426, 0, 0, 0, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 540,
- 540, 540, 540, 540, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 0,
- 1177, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1177, 2227, 2227, 2227, 2227, 2227, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 5488, 5489, 5490, 5491, 5492, 5493, 5494,
- 5495, 5496, 5497, 5498, 5499, 5500, 5501, 5502,
- 5503, 5504, 5505, 5506, 5507, 5508, 5509, 5510,
- 5511, 5512, 5513, 5514, 5515, 5516, 5517, 5518,
- 5519, 5520, 5521, 5522, 5523, 5524, 5525, 5526,
- 5527, 5528, 5529, 5530, 5531, 5532, 5533, 5534,
- 5535, 5536, 5537, 5538, 5539, 5540, 5541, 5542,
- 5543, 5544, 5545, 5546, 5547, 5548, 5549, 5550,
- 5551, 5552, 5553, 5554, 5555, 5556, 5557, 5558,
- 5559, 5560, 5561, 5562, 5563, 5564, 5565, 5566,
- 5567, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 1160, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 1160,
- 340, 1160, 340, 340, 1160, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 1160, 0,
- 0, 1250, 1250, 1250, 1250, 1250, 1250, 1250,
- 1250, 1250, 1250, 0, 0, 0, 0, 0,
- 0, 5568, 5569, 5570, 5571, 5572, 5573, 5574,
- 5575, 5576, 5577, 5578, 5579, 5580, 5581, 5582,
- 5583, 5584, 5585, 5586, 5587, 5588, 5589, 5590,
- 5591, 5592, 5593, 5594, 5595, 5596, 5597, 5598,
- 5599, 5600, 5601, 5602, 5603, 0, 0, 0,
- 0, 5604, 5605, 5606, 5607, 5608, 5609, 5610,
- 5611, 5612, 5613, 5614, 5615, 5616, 5617, 5618,
- 5619, 5620, 5621, 5622, 5623, 5624, 5625, 5626,
- 5627, 5628, 5629, 5630, 5631, 5632, 5633, 5634,
- 5635, 5636, 5637, 5638, 5639, 0, 0, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 1044, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 1160, 340, 340, 340,
- 340, 1160, 340, 1160, 1160, 1160, 340, 340,
- 340, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 340, 340, 1160, 340, 340, 1160, 1160,
- 340, 340, 1160, 1160, 1160, 1160, 340, 1160,
- 340, 340, 340, 340, 340, 1160, 1160, 1160,
- 340, 1160, 340, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 340, 1160, 1160, 1160, 340,
- 1160, 1160, 340, 340, 1160, 1160, 1160, 1160,
- 1160, 1160, 340, 340, 1160, 1160, 1160, 340,
- 340, 340, 340, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 340, 1160, 1160, 1160, 1160,
- 340, 1160, 1160, 340, 340, 340, 1160, 1160,
- 1160, 1160, 340, 340, 340, 1160, 1160, 1160,
- 1160, 340, 1160, 1160, 1160, 1160, 1160, 1160,
- 340, 1160, 1160, 1160, 1160, 1160, 340, 340,
- 1160, 1160, 340, 1160, 1160, 340, 1160, 1160,
- 1160, 1160, 1160, 340, 1160, 1160, 1160, 340,
- 1160, 1160, 340, 1160, 1160, 340, 1160, 340,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 340, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 340, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 340, 340, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 340, 1160,
- 340, 340, 340, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 340, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 340, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 1160, 1160, 1160, 1160, 1160, 1160,
- 340, 340, 1160, 1160, 340, 1160, 340, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1156, 1156, 1156, 1106, 1156, 1106, 0,
- 0, 1156, 0, 1106, 1156, 1156, 1156, 1156,
- 1156, 1106, 1156, 1106, 1156, 1156, 1156, 1156,
- 1156, 1156, 1106, 1156, 1156, 1156, 1156, 1106,
- 1156, 1106, 1156, 1156, 1106, 1106, 1156, 1106,
- 1156, 1106, 1106, 1106, 1106, 1156, 1106, 1106,
- 1106, 1106, 1106, 1156, 1106, 1156, 1106, 0,
- 1156, 1106, 0, 0, 0, 1156, 0, 0,
- 1156, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 0,
- 1103, 5640, 5640, 5640, 5640, 5640, 5640, 5640,
- 5640, 1156, 1156, 1156, 1106, 1106, 1106, 1106,
- 1156, 1106, 1106, 1156, 1106, 1156, 1106, 1106,
- 1156, 1156, 1106, 1156, 1156, 1106, 1156, 1156,
- 5641, 5641, 5640, 5640, 5642, 5642, 5642, 5642,
- 5640, 1156, 1106, 1156, 1156, 1156, 1106, 1106,
- 1106, 1106, 1106, 1156, 1156, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1156,
- 1156, 1106, 1156, 1156, 1106, 1106, 1106, 1106,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 5640, 5640, 5640, 5640, 5640, 5640, 5640, 5640,
- 5640, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 0, 1106, 1106, 0,
- 0, 0, 0, 0, 5640, 5640, 5640, 5640,
- 5640, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 5640,
- 5640, 5640, 5640, 5640, 5640, 0, 0, 0,
- 9, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 0, 0, 0, 0, 0,
- 1103, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1156, 1106, 1156, 1156, 1156, 1156, 1156,
- 1106, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
- 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
- 1106, 1156, 1156, 1156, 1156, 1156, 1156, 1106,
- 1156, 1156, 1106, 1156, 1106, 1156, 1106, 1106,
- 1106, 1106, 1156, 1106, 1156, 1106, 1156, 1106,
- 1106, 1106, 1156, 1106, 1156, 1106, 1156, 1156,
- 1106, 0, 0, 0, 0, 5642, 5640, 1106,
- 1156, 5640, 5640, 5640, 5640, 5642, 5642, 5642,
- 5640, 5640, 5642, 5642, 5642, 5642, 5642, 5642,
- 5642, 0, 0, 5642, 5642, 5642, 5642, 5642,
- 5642, 5642, 5642, 5642, 5642, 5642, 5642, 5642,
- 5642, 5642, 5642, 5642, 5642, 5642, 5642, 5642,
- 5642, 5642, 5642, 5642, 5642, 5642, 5642, 5642,
- 5642, 5642, 5642, 5642, 5642, 5642, 5642, 5640,
- 5640, 5640, 5640, 5642, 5640, 5642, 5642, 5642,
- 5642, 1156, 1153, 1153, 1153, 0, 1153, 1153,
- 0, 0, 0, 0, 0, 1153, 553, 1153,
- 540, 1156, 1156, 1156, 1156, 0, 1156, 1156,
- 1156, 0, 1156, 1156, 1156, 1156, 1156, 1156,
- 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
- 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
- 1156, 1156, 1156, 1156, 1156, 0, 0, 0,
- 0, 540, 566, 553, 0, 0, 0, 0,
- 1168, 5642, 5642, 5642, 5642, 5642, 5642, 5642,
- 5642, 0, 0, 0, 0, 0, 0, 0,
- 0, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
- 1158, 1158, 0, 0, 0, 0, 0, 0,
- 0, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 5640, 5640,
- 1103, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 5640, 5640,
- 5640, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1106, 1156, 1156, 1106, 1106, 1106, 1156,
- 1106, 5643, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1156, 1156, 1156, 1106, 1156, 1156, 1156,
- 1106, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
- 1156, 1156, 1106, 1156, 1156, 1106, 540, 553,
- 0, 0, 0, 0, 5640, 5642, 5642, 5642,
- 5642, 1158, 1158, 1158, 1158, 1103, 1103, 1103,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1106, 1156, 1156, 1156, 1156, 1106, 1106,
- 1106, 1156, 1156, 1156, 1156, 1106, 1106, 1106,
- 1106, 1106, 1156, 1156, 1156, 1156, 1106, 1156,
- 1106, 1106, 1106, 1106, 1156, 1106, 1106, 1106,
- 1106, 1156, 1156, 1106, 1106, 1106, 1106, 1106,
- 1156, 1106, 1106, 1156, 1156, 1106, 1106, 1106,
- 1106, 1106, 1156, 1156, 1156, 1156, 1156, 0,
- 0, 0, 9, 9, 9, 9, 9, 9,
- 9, 1156, 1156, 1106, 1106, 1156, 1106, 1106,
- 1106, 1156, 1106, 1156, 1106, 1156, 1156, 1106,
- 1106, 1156, 1156, 1106, 1106, 1106, 1106, 0,
- 0, 5640, 5640, 5640, 5640, 5640, 5640, 5642,
- 5640, 1106, 1106, 1106, 1106, 1156, 1106, 1106,
- 1156, 1106, 1106, 1106, 1106, 1156, 1106, 1156,
- 1106, 1106, 1156, 1106, 0, 0, 0, 0,
- 0, 5640, 5640, 5640, 5640, 5640, 5640, 5640,
- 5640, 1106, 1156, 1106, 1156, 1106, 1106, 1106,
- 1156, 1106, 1156, 1106, 1106, 1106, 1156, 1106,
- 1106, 1156, 1106, 0, 0, 0, 0, 0,
- 0, 0, 1158, 1158, 1158, 1158, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 5640, 5640, 5640, 5642, 5640, 5640,
- 5642, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 5644, 5645, 5646, 5647, 5648, 5649, 5650,
- 5651, 5652, 5653, 5654, 5655, 5656, 5657, 5658,
- 5659, 5660, 5661, 5662, 5663, 5664, 5665, 5666,
- 5667, 5668, 5669, 5670, 5671, 5672, 5673, 5674,
- 5675, 5676, 5677, 5678, 5679, 5680, 5681, 5682,
- 5683, 5684, 5685, 5686, 5687, 5688, 5689, 5690,
- 5691, 5692, 5693, 5694, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 5695, 5696, 5697, 5698, 5699, 5700, 5701,
- 5702, 5703, 5704, 5705, 5706, 5707, 5708, 5709,
- 5710, 5711, 5712, 5713, 5714, 5715, 5716, 5717,
- 5718, 5719, 5720, 5721, 5722, 5723, 5724, 5725,
- 5726, 5727, 5728, 5729, 5730, 5731, 5732, 5733,
- 5734, 5735, 5736, 5737, 5738, 5739, 5740, 5741,
- 5742, 5743, 5744, 5745, 0, 0, 0, 0,
- 0, 0, 0, 5640, 5640, 5640, 5640, 5640,
- 5640, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 5746, 5746, 5747, 5746, 5746, 5746, 5746,
- 5746, 5747, 5746, 5746, 5747, 5747, 5747, 5746,
- 5746, 5747, 5746, 5746, 5746, 5747, 5747, 5746,
- 5747, 5747, 5746, 5746, 5747, 5747, 5747, 5747,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1159, 1153, 1159, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1168,
- 1177, 1177, 1177, 1177, 1177, 1177, 1177, 0,
- 0, 0, 0, 1220, 1220, 1220, 1220, 1220,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 1168, 1153, 1153, 1159, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 5748, 5749, 5750, 5751, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 5752, 1160,
- 1160, 1160, 1160, 1160, 5753, 1160, 1160, 1160,
- 1160, 1159, 1159, 1159, 1153, 1153, 1153, 1153,
- 1159, 1159, 1168, 5754, 1177, 1177, 5755, 1177,
- 1177, 1177, 1177, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 0, 0, 0, 0, 0, 0,
- 0, 1250, 1250, 1250, 1250, 1250, 1250, 1250,
- 1250, 1250, 1250, 0, 0, 0, 0, 0,
- 0, 540, 540, 540, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 5756, 1153, 1153, 1153, 1153, 1159, 1153, 5757,
- 5758, 1153, 5759, 5760, 1168, 1168, 0, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1177, 1177, 1177, 1177, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 340, 340, 340, 1160, 340, 340,
- 340, 340, 1160, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 1160, 340, 1160,
- 1160, 1160, 1160, 1160, 340, 1160, 340, 1160,
- 340, 340, 340, 340, 1180, 1044, 1044, 1160,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1153, 1153, 1159, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1159, 1159, 1159, 1153,
- 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 1159, 1452, 1160, 1237, 1237, 1160, 1177, 1177,
- 1177, 1177, 1177, 1180, 1153, 1153, 1177, 0,
- 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1160, 1177, 1160, 1177, 1177,
- 1177, 0, 1190, 1190, 1190, 1190, 1190, 1190,
- 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
- 1190, 1190, 1190, 1190, 1190, 1190, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 0, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1159, 1159, 1159,
- 1153, 1153, 1153, 1159, 1159, 1153, 1452, 1180,
- 1153, 1177, 1177, 1177, 1177, 1177, 1177, 1153,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 0, 1160, 0, 1160, 1160, 1160, 1160, 0,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 0,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1177, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1153, 1159, 1159, 1159, 1153, 1153, 1153, 1153,
- 1153, 1153, 1180, 1168, 0, 0, 0, 0,
- 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 0, 0, 0, 0, 0,
- 0, 1153, 1153, 1159, 1159, 0, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 0, 0,
- 1160, 1160, 0, 0, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 0, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 0, 1160, 1160, 0, 1160, 1160,
- 1160, 1160, 1160, 0, 0, 1180, 1160, 5761,
- 1159, 1153, 1159, 1159, 1159, 1159, 0, 0,
- 5762, 1159, 0, 0, 5763, 5764, 1452, 0,
- 0, 1160, 0, 0, 0, 0, 0, 0,
- 5765, 0, 0, 0, 0, 0, 1160, 1160,
- 1160, 1160, 1160, 1159, 1159, 0, 0, 540,
- 540, 540, 540, 540, 540, 540, 0, 0,
- 0, 540, 540, 540, 540, 540, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1159, 1159,
- 1159, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 1153, 1159, 1159, 1168, 1153, 1153, 1159, 1180,
- 1160, 1160, 1160, 1160, 1177, 1177, 1177, 1177,
- 1177, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 0, 1177, 0, 1177, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 5766, 1159, 1159, 1153, 1153, 1153, 1153,
- 1153, 1153, 5767, 5768, 5769, 5770, 5771, 5772,
- 1153, 1153, 1159, 1168, 1180, 1160, 1160, 1177,
- 1160, 0, 0, 0, 0, 0, 0, 0,
- 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 5773, 1159, 1159, 1153, 1153, 1153, 1153, 0,
- 0, 5774, 5775, 5776, 5777, 1153, 1153, 1159,
- 1168, 1180, 1177, 1177, 1177, 1177, 1177, 1177,
- 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
- 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
- 1177, 1160, 1160, 1160, 1160, 1153, 1153, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1159, 1159, 1159, 1153, 1153, 1153, 1153,
- 1153, 1153, 1153, 1153, 1159, 1159, 1153, 1159,
- 1168, 1153, 1177, 1177, 1177, 1160, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 0, 0, 0, 0, 0,
- 0, 1428, 1428, 1428, 1428, 1428, 1428, 1428,
- 1428, 1428, 1428, 1428, 1428, 1428, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1153, 1159, 1153, 1159,
- 1159, 1153, 1153, 1153, 1153, 1153, 1153, 1452,
- 1180, 0, 0, 0, 0, 0, 0, 0,
- 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 0, 0, 0, 1153, 1153,
- 1153, 1159, 1159, 1153, 1153, 1153, 1153, 1159,
- 1153, 1153, 1153, 1153, 1168, 0, 0, 0,
- 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1190, 1190, 1177, 1177, 1177,
- 1191, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 5778, 5779, 5780, 5781, 5782, 5783, 5784,
- 5785, 5786, 5787, 5788, 5789, 5790, 5791, 5792,
- 5793, 5794, 5795, 5796, 5797, 5798, 5799, 5800,
- 5801, 5802, 5803, 5804, 5805, 5806, 5807, 5808,
- 5809, 5810, 5811, 5812, 5813, 5814, 5815, 5816,
- 5817, 5818, 5819, 5820, 5821, 5822, 5823, 5824,
- 5825, 5826, 5827, 5828, 5829, 5830, 5831, 5832,
- 5833, 5834, 5835, 5836, 5837, 5838, 5839, 5840,
- 5841, 1250, 1250, 1250, 1250, 1250, 1250, 1250,
- 1250, 1250, 1250, 5484, 5484, 5484, 5484, 5484,
- 5484, 5484, 5484, 5484, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 340, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 0, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 5842, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 0, 1153, 1153, 1153, 1153, 1153, 1153, 1159,
- 5843, 1160, 1177, 1177, 1177, 1177, 1177, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1190, 1190, 1190, 1190, 1190,
- 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
- 1190, 1190, 1190, 1190, 1190, 1190, 0, 0,
- 0, 1044, 1044, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 0, 0, 1153, 1153, 1153, 1153, 1153,
- 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 1153, 0, 1159, 1153, 1153, 1153, 1153, 1153,
- 1153, 1153, 1159, 1153, 1153, 1159, 1153, 1153,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
- 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
- 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
- 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
- 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
- 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
- 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
- 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
- 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
- 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
- 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
- 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
- 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
- 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
- 0, 1044, 1044, 1044, 1044, 1044, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 0, 0, 0, 0, 0, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 0, 1250, 1250, 1250, 1250, 1250, 1250, 1250,
- 1250, 1250, 1250, 0, 0, 0, 0, 1044,
- 1044, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 0,
- 0, 566, 566, 566, 566, 566, 1044, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 540, 540, 540, 540, 540, 540, 540,
- 1044, 1044, 1044, 1044, 1044, 838, 838, 838,
- 838, 523, 523, 523, 523, 1044, 838, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1250, 1250, 1250, 1250, 1250, 1250, 1250,
- 1250, 1250, 1250, 0, 5484, 5484, 5484, 5484,
- 5484, 5484, 5484, 0, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 0, 0, 0, 0, 0, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1159, 1159, 1159, 1159, 1159, 1159,
- 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
- 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
- 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
- 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
- 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 1153, 1153, 1153, 1153, 1179, 1179, 1179, 1179,
- 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
- 1179, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1179, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 1160, 1160,
- 1160, 1160, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 1160, 1160, 340, 340,
- 1160, 1160, 340, 340, 1160, 1160, 1160, 1160,
- 340, 340, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 1160, 1160, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 1160, 340, 340, 340, 1160, 340, 340,
- 1160, 1160, 1160, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 340, 1160, 340, 340, 340, 340, 0, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 0, 0, 0, 0, 0, 0,
- 0, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 0, 0, 1191, 1153, 566,
- 1177, 81, 81, 81, 81, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 838, 838, 838, 838, 838, 838, 838,
- 838, 1191, 1191, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 1191, 838, 1191, 838,
- 838, 838, 1191, 838, 838, 838, 1191, 1191,
- 1191, 838, 1191, 838, 1191, 838, 1191, 1191,
- 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 838, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 1191, 838, 1191, 1191, 1191, 1191, 1191,
- 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
- 838, 838, 1191, 1191, 1191, 1191, 1191, 838,
- 838, 838, 838, 1191, 838, 1191, 1191, 1191,
- 838, 838, 838, 1191, 1191, 1191, 1191, 1191,
- 838, 1191, 1191, 1191, 838, 1191, 1191, 1191,
- 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 1191, 1191, 838, 1191, 1191, 1191, 838,
- 838, 838, 1191, 1191, 838, 838, 838, 838,
- 1191, 1191, 838, 838, 838, 1191, 1191, 838,
- 838, 838, 838, 1191, 1191, 1191, 1191, 1191,
- 838, 838, 838, 838, 838, 838, 1191, 838,
- 838, 1191, 1191, 1191, 838, 1191, 1191, 1191,
- 1191, 838, 838, 1191, 838, 1191, 838, 1191,
- 1191, 1191, 1191, 1191, 1191, 838, 838, 838,
- 1191, 1191, 838, 838, 838, 1191, 838, 1191,
- 838, 1191, 838, 838, 1191, 1191, 1191, 1191,
- 838, 1191, 1191, 1191, 838, 1191, 1191, 1191,
- 1191, 838, 1191, 1191, 1191, 838, 1191, 1191,
- 1191, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 1191,
- 838, 1191, 838, 838, 838, 838, 838, 838,
- 838, 1191, 838, 1191, 838, 838, 838, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 1191, 1191, 838, 1191, 838, 838, 1191,
- 1191, 1191, 1191, 1191, 1191, 1191, 1191, 838,
- 838, 838, 1191, 1191, 1191, 1191, 838, 838,
- 0, 0, 1191, 838, 1191, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 1191,
- 1191, 1191, 1191, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 5844, 5845, 1191, 838, 838, 1191, 838, 5846,
- 5847, 5848, 5849, 5850, 5851, 5852, 5853, 5854,
- 566, 566, 566, 1191, 1191, 1191, 5855, 5856,
- 5857, 5858, 5859, 5860, 81, 81, 81, 81,
- 81, 81, 81, 81, 553, 553, 553, 553,
- 553, 553, 553, 553, 838, 838, 540, 540,
- 540, 540, 540, 553, 553, 838, 838, 838,
- 838, 838, 838, 1191, 1191, 838, 838, 1191,
- 1191, 1191, 1191, 838, 838, 1191, 1191, 838,
- 838, 838, 838, 838, 1191, 1191, 838, 1191,
- 1191, 838, 838, 540, 540, 540, 540, 1191,
- 1191, 1191, 1191, 1191, 1191, 838, 1191, 1191,
- 1191, 1191, 5861, 5862, 5863, 5864, 5865, 5866,
- 5867, 5868, 838, 838, 838, 838, 838, 838,
- 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 838, 838, 838, 838, 838, 838, 838,
- 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 1191, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 540, 540, 540, 1085, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
- 1190, 1190, 5484, 1190, 1190, 1190, 1190, 1190,
- 1190, 1190, 1190, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 5869, 2157, 2132, 5870, 2159, 2160, 5871,
- 2139, 2142, 5872, 5873, 2143, 2162, 2145, 5874,
- 2147, 2148, 2149, 5875, 5876, 5877, 5878, 5879,
- 5880, 5881, 2153, 5882, 5883, 5884, 5885, 2158,
- 5886, 2138, 2140, 2168, 2177, 5887, 2144, 5888,
- 5889, 2163, 5890, 5891, 5892, 5893, 5894, 5895,
- 5896, 5897, 5898, 5899, 5900, 5901, 5902, 5903,
- 2175, 5904, 5905, 5906, 5907, 5908, 5909, 5910,
- 5911, 5912, 5913, 5914, 5915, 5916, 5917, 5918,
- 5919, 5920, 5921, 5922, 5923, 5924, 5925, 5926,
- 5927, 5928, 2176, 5929, 5930, 5931, 0, 5932,
- 5933, 5934, 5935, 5936, 5937, 5938, 5939, 5940,
- 5941, 5942, 5943, 5944, 5945, 5946, 5947, 5948,
- 5949, 5901, 5902, 5903, 2175, 5904, 5905, 5906,
- 5907, 5908, 5909, 5910, 5911, 5912, 5913, 5914,
- 5915, 5916, 5917, 5918, 5919, 5920, 5921, 5922,
- 5923, 5924, 5925, 5926, 5927, 5928, 2176, 5929,
- 5930, 5931, 5950, 5932, 5933, 5934, 5935, 5936,
- 5937, 5938, 5939, 5940, 5941, 5942, 5943, 5944,
- 5945, 5946, 5947, 5948, 5949, 5901, 0, 5903,
- 2175, 0, 0, 5906, 0, 0, 5909, 5910,
- 0, 0, 5913, 5914, 5915, 5916, 0, 5918,
- 5919, 5920, 5921, 5922, 5923, 5924, 5925, 5926,
- 5927, 5928, 2176, 0, 5930, 0, 5950, 5932,
- 5933, 5934, 5935, 5936, 5937, 0, 5939, 5940,
- 5941, 5942, 5943, 5944, 5945, 5946, 5947, 5948,
- 5949, 5901, 5902, 5903, 2175, 5904, 5905, 5906,
- 5907, 5908, 5909, 5910, 5911, 5912, 5913, 5914,
- 5915, 5916, 5917, 5918, 5919, 5920, 5921, 5922,
- 5923, 5924, 5925, 5926, 5927, 5928, 2176, 5929,
- 5930, 5931, 5950, 5932, 5933, 5934, 5935, 5936,
- 5937, 5938, 5939, 5940, 5941, 5942, 5943, 5944,
- 5945, 5946, 5947, 5948, 5949, 5869, 2157, 0,
- 5870, 2159, 2160, 5871, 0, 0, 5872, 5873,
- 2143, 2162, 2145, 5874, 2147, 2148, 0, 5875,
- 5876, 5877, 5878, 5879, 5880, 5881, 0, 5882,
- 5883, 5884, 5885, 2158, 5886, 2138, 2140, 2168,
- 2177, 5887, 2144, 5888, 5889, 2163, 5890, 5891,
- 5892, 5893, 5894, 5895, 5896, 5897, 5898, 5899,
- 5900, 5869, 2157, 0, 5870, 2159, 2160, 5871,
- 0, 2142, 5872, 5873, 2143, 2162, 0, 5874,
- 0, 0, 0, 5875, 5876, 5877, 5878, 5879,
- 5880, 5881, 0, 5882, 5883, 5884, 5885, 2158,
- 5886, 2138, 2140, 2168, 2177, 5887, 2144, 5888,
- 5889, 2163, 5890, 5891, 5892, 5893, 5894, 5895,
- 5896, 5897, 5898, 5899, 5900, 5869, 2157, 2132,
- 5870, 2159, 2160, 5871, 2139, 2142, 5872, 5873,
- 2143, 2162, 2145, 5874, 2147, 2148, 2149, 5875,
- 5876, 5877, 5878, 5879, 5880, 5881, 2153, 5882,
- 5883, 5884, 5885, 2158, 5886, 2138, 2140, 2168,
- 2177, 5887, 2144, 5888, 5889, 2163, 5890, 5891,
- 5892, 5893, 5894, 5895, 5896, 5897, 5898, 5899,
- 5900, 5869, 2157, 2132, 5870, 2159, 2160, 5871,
- 2139, 2142, 5872, 5873, 2143, 2162, 2145, 5874,
- 2147, 2148, 2149, 5875, 5876, 5877, 5878, 5879,
- 5880, 5881, 2153, 5882, 5883, 5884, 5885, 2158,
- 5886, 2138, 2140, 2168, 2177, 5887, 2144, 5888,
- 5889, 2163, 5890, 5891, 5892, 5893, 5894, 5895,
- 5896, 5897, 5898, 5899, 5900, 5869, 2157, 2132,
- 5870, 2159, 2160, 5871, 2139, 2142, 5872, 5873,
- 2143, 2162, 2145, 5874, 2147, 2148, 2149, 5875,
- 5876, 5877, 5878, 5879, 5880, 5881, 2153, 5882,
- 5883, 5884, 5885, 2158, 5886, 2138, 2140, 2168,
- 2177, 5887, 2144, 5888, 5889, 2163, 5890, 5891,
- 5892, 5893, 5894, 5895, 5896, 5897, 5898, 5899,
- 5900, 5901, 5902, 5903, 2175, 5904, 5905, 5906,
- 5907, 5908, 5909, 5910, 5911, 5912, 5913, 5914,
- 5915, 5916, 5917, 5918, 5919, 5920, 5921, 5922,
- 5923, 5924, 5925, 5926, 5927, 5928, 2176, 5929,
- 5930, 5931, 5950, 5932, 5933, 5934, 5935, 5936,
- 5937, 5938, 5939, 5940, 5941, 5942, 5943, 5944,
- 5945, 5946, 5947, 5948, 5949, 5901, 5902, 5903,
- 2175, 5904, 5905, 5906, 5907, 5908, 5909, 5910,
- 5911, 5912, 5913, 5914, 5915, 5916, 5917, 5918,
- 5919, 5920, 5921, 5922, 5923, 5924, 5925, 5926,
- 5927, 5928, 2176, 5929, 5930, 5931, 5950, 5932,
- 5933, 5934, 5935, 5936, 5937, 5938, 5939, 5940,
- 5941, 5942, 5943, 5944, 5945, 5946, 5947, 5948,
- 5949, 5901, 5902, 5903, 2175, 5904, 5905, 5906,
- 5907, 5908, 5909, 5910, 5911, 5912, 5913, 5914,
- 5915, 5916, 5917, 5918, 5919, 5920, 5921, 5922,
- 5923, 5924, 5925, 5926, 5927, 5928, 2176, 5929,
- 5930, 5931, 5950, 5932, 5933, 5934, 5935, 5936,
- 5937, 5938, 5939, 5940, 5941, 5942, 5943, 5944,
- 5945, 5946, 5947, 5948, 5949, 5951, 5952, 0,
- 0, 5953, 5954, 2172, 5955, 5956, 5957, 5958,
- 5959, 5960, 5961, 5962, 5963, 5964, 5965, 5966,
- 5967, 5968, 5969, 5970, 5971, 5972, 5973, 5974,
- 5975, 5976, 5977, 5978, 5979, 5980, 5981, 5982,
- 5983, 5984, 5985, 5986, 5987, 5988, 5989, 5990,
- 5991, 5992, 5993, 5994, 5995, 5996, 5997, 5998,
- 5999, 6000, 6001, 6002, 6003, 6004, 6005, 6006,
- 6007, 6008, 6009, 6010, 6011, 6012, 6013, 6014,
- 6015, 6016, 6017, 6018, 6019, 6020, 6021, 6022,
- 6023, 6024, 2173, 6025, 6026, 6027, 6028, 6029,
- 6030, 6031, 6032, 6033, 6034, 6035, 6036, 2171,
- 6037, 6038, 6039, 6040, 6041, 6042, 6043, 6044,
- 6045, 6046, 6047, 6048, 2170, 6049, 6050, 6051,
- 6052, 6053, 6054, 6055, 6056, 6057, 6058, 6059,
- 6005, 6060, 6061, 6062, 6063, 6010, 6011, 6012,
- 6013, 6014, 6015, 6016, 6017, 6018, 6019, 6020,
- 6021, 6022, 6023, 6024, 2173, 6025, 6026, 6027,
- 6028, 6029, 6030, 6031, 6032, 6033, 6034, 6035,
- 6036, 2171, 6037, 6038, 6039, 6040, 6041, 6042,
- 6043, 6044, 6045, 6046, 6047, 6048, 2170, 6049,
- 6050, 6051, 6052, 6053, 6054, 6055, 6056, 6057,
- 6058, 6059, 6064, 6060, 6061, 6062, 6063, 5953,
- 5954, 2172, 5955, 5956, 5957, 5958, 5959, 5960,
- 5961, 5962, 5963, 5964, 5965, 5966, 5967, 5968,
- 5969, 5970, 5971, 5972, 5973, 5974, 5975, 5976,
- 5977, 5978, 5979, 5980, 5981, 5982, 5983, 5984,
- 5985, 5986, 5987, 5988, 5989, 5990, 5991, 5992,
- 5993, 5994, 5995, 5996, 5997, 5998, 5999, 6000,
- 6001, 6002, 6003, 6004, 6005, 6006, 6007, 6008,
- 6009, 6010, 6011, 6012, 6013, 6014, 6015, 6016,
- 6017, 6018, 6019, 6020, 6021, 6022, 6023, 6024,
- 2173, 6025, 6026, 6027, 6028, 6029, 6030, 6031,
- 6032, 6033, 6034, 6035, 6036, 2171, 6037, 6038,
- 6039, 6040, 6041, 6042, 6043, 6044, 6045, 6046,
- 6047, 6048, 2170, 6049, 6050, 6051, 6052, 6053,
- 6054, 6055, 6056, 6057, 6058, 6059, 6064, 6060,
- 6061, 6062, 6063, 6065, 6066, 0, 0, 6067,
- 6068, 6069, 6070, 6071, 6072, 6073, 6074, 6075,
- 6076, 6067, 6068, 6069, 6070, 6071, 6072, 6073,
- 6074, 6075, 6076, 6067, 6068, 6069, 6070, 6071,
- 6072, 6073, 6074, 6075, 6076, 6067, 6068, 6069,
- 6070, 6071, 6072, 6073, 6074, 6075, 6076, 6077,
- 6078, 6079, 6080, 6081, 6082, 6083, 6084, 6085,
- 6086, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 838, 838, 838, 838, 1153, 1153, 1153, 1153,
- 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 1153, 1153, 1153, 1153, 1153, 1153, 838, 838,
- 838, 838, 838, 838, 838, 838, 1153, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 1153, 838, 838,
- 1044, 1044, 1044, 1044, 1044, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1153, 1153, 1153, 1153,
- 1153, 0, 1153, 1153, 1153, 1153, 1153, 1153,
- 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
- 1153, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 540, 540, 540, 540, 540, 540, 540,
- 0, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 0, 0, 540, 540, 540, 540,
- 540, 540, 540, 0, 540, 540, 0, 540,
- 540, 540, 540, 540, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
- 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
- 1156, 1156, 1156, 1156, 1106, 1106, 1106, 1106,
- 1106, 1156, 1156, 1106, 1106, 1106, 1106, 1106,
- 1156, 1106, 1156, 1106, 1106, 1106, 1156, 1106,
- 1156, 1156, 1106, 1106, 1106, 1106, 1156, 1106,
- 1106, 1106, 1156, 1156, 1106, 1156, 1156, 1156,
- 1156, 1156, 1156, 1156, 1106, 1106, 1156, 1156,
- 1156, 1156, 1156, 1106, 1156, 1106, 1106, 1106,
- 1106, 1106, 1156, 1156, 1106, 1106, 1106, 1106,
- 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
- 1106, 1156, 1156, 1106, 1106, 1106, 1106, 1156,
- 1156, 1156, 1156, 1106, 1156, 1156, 1156, 1156,
- 1106, 1156, 1156, 1106, 1156, 1106, 1156, 1106,
- 1156, 1156, 1106, 1106, 1106, 1106, 1106, 1156,
- 1156, 1156, 1106, 1156, 1106, 1156, 1106, 1156,
- 1156, 1156, 1156, 1106, 1156, 1156, 1156, 1156,
- 1156, 1156, 1106, 1156, 1156, 1156, 1156, 1156,
- 1156, 1106, 1106, 1156, 1156, 1156, 1106, 1106,
- 1156, 1156, 1156, 1156, 1106, 1156, 1156, 1106,
- 1156, 1156, 1156, 1156, 1106, 1156, 1156, 1106,
- 1156, 1156, 1106, 1156, 1156, 1156, 1106, 1156,
- 1156, 1156, 1156, 1106, 1106, 1156, 1156, 1106,
- 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1106,
- 1156, 1156, 1156, 1156, 1156, 1156, 0, 0,
- 5642, 5642, 5642, 5642, 5642, 5642, 5642, 5642,
- 5642, 553, 553, 553, 553, 553, 553, 553,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 6087, 6088, 6089, 6090, 6091, 6092, 6093,
- 6094, 6095, 6096, 6097, 6098, 6099, 6100, 6101,
- 6102, 6103, 6104, 6105, 6106, 6107, 6108, 6109,
- 6110, 6111, 6112, 6113, 6114, 6115, 6116, 6117,
- 6118, 6119, 6120, 6121, 6122, 6123, 6124, 6125,
- 6126, 6127, 6128, 6129, 6130, 6131, 6132, 6133,
- 6134, 6135, 6136, 6137, 6138, 6139, 6140, 6141,
- 6142, 6143, 6144, 6145, 6146, 6147, 6148, 6149,
- 6150, 6151, 6152, 6153, 6154, 540, 540, 540,
- 540, 540, 540, 1180, 0, 0, 0, 0,
- 0, 1154, 1154, 1154, 1154, 1154, 1154, 1154,
- 1154, 1154, 1154, 0, 0, 0, 0, 1103,
- 1103, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 6155, 6156, 6157, 6158, 0, 6159, 6160,
- 6161, 6162, 6163, 6164, 6165, 6166, 6167, 6168,
- 6169, 6170, 6171, 6172, 6173, 6174, 6175, 6176,
- 6177, 6178, 6179, 6180, 6181, 6182, 6183, 6184,
- 6185, 0, 6156, 6157, 0, 6186, 0, 0,
- 6161, 0, 6163, 6164, 6165, 6166, 6167, 6168,
- 6169, 6170, 6171, 6172, 0, 6174, 6175, 6176,
- 6177, 0, 6179, 0, 6181, 0, 0, 0,
- 0, 0, 0, 6157, 0, 0, 0, 0,
- 6161, 0, 6163, 0, 6165, 0, 6167, 6168,
- 6169, 0, 6171, 6172, 0, 6174, 0, 0,
- 6177, 0, 6179, 0, 6181, 0, 6183, 0,
- 6185, 0, 6156, 6157, 0, 6187, 0, 0,
- 6161, 6162, 6163, 6164, 0, 6166, 6167, 6168,
- 6169, 6170, 6171, 6172, 0, 6174, 6175, 6176,
- 6177, 0, 6179, 6180, 6181, 6182, 0, 6184,
- 0, 6155, 6156, 6157, 6158, 6187, 6159, 6160,
- 6161, 6162, 6163, 0, 6165, 6166, 6167, 6168,
- 6169, 6170, 6171, 6172, 6173, 6174, 6175, 6176,
- 6177, 6178, 6179, 6180, 6181, 0, 0, 0,
- 0, 0, 6188, 6189, 6190, 0, 6191, 6192,
- 6193, 6194, 6195, 0, 6196, 6197, 6198, 6199,
- 6200, 6201, 6202, 6203, 6204, 6205, 6206, 6207,
- 6208, 6209, 6210, 6211, 6212, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1109, 1109, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 0, 0, 0,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 0, 0, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 0, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 0, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 6213, 6214, 6215, 6216, 6217, 6218, 6219,
- 6220, 6221, 6222, 6223, 1220, 1220, 0, 0,
- 0, 6224, 6225, 6226, 6227, 6228, 6229, 6230,
- 6231, 6232, 6233, 6234, 6235, 6236, 6237, 6238,
- 6239, 6240, 6241, 6242, 6243, 6244, 6245, 6246,
- 6247, 6248, 6249, 6250, 6251, 6252, 6253, 6254,
- 0, 6255, 6256, 6257, 6258, 6259, 6260, 6261,
- 6262, 6263, 6264, 6265, 6266, 6267, 6268, 6269,
- 6270, 6271, 6272, 6273, 6274, 6275, 6276, 6277,
- 6278, 6279, 6280, 6281, 3613, 6282, 6283, 6284,
- 6285, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 1191, 1191, 6286, 6287, 0, 0, 0,
- 0, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 6288, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 1191, 1191, 1191, 1191, 1191, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 6289,
- 6289, 6289, 6289, 6289, 6289, 6289, 6289, 6289,
- 6289, 6289, 6289, 6289, 6289, 6289, 6289, 6289,
- 6289, 6289, 6289, 6289, 6289, 6289, 6289, 6289,
- 6289, 6290, 6291, 6292, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 6293, 6294, 6295, 6296, 6297, 6298, 6299,
- 6300, 6301, 6302, 6303, 6304, 6305, 6306, 6307,
- 6308, 6309, 6310, 6311, 6312, 6313, 6314, 6315,
- 6316, 6317, 6318, 6319, 6320, 6321, 6322, 6323,
- 6324, 6325, 6326, 6327, 6328, 6329, 6330, 6331,
- 6332, 6333, 6334, 6335, 6336, 0, 0, 0,
- 0, 6337, 6338, 6339, 6340, 6341, 6342, 6343,
- 6344, 6345, 0, 0, 0, 0, 0, 0,
- 0, 6346, 6347, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 2464, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 2464, 2464, 1085, 1085,
- 1085, 1085, 1085, 2464, 2464, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 6348, 6348, 6348, 6348,
- 6348, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 2464, 2464, 1085, 1085, 2464,
- 2464, 2464, 2464, 2464, 2464, 2464, 2464, 2464,
- 2464, 2464, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 6349,
- 6349, 6349, 6349, 1085, 1085, 1085, 1085, 2464,
- 1085, 2464, 2464, 2464, 2464, 2464, 2464, 2464,
- 2464, 2464, 1085, 1085, 1085, 2464, 1085, 1085,
- 1085, 1085, 2464, 2464, 2464, 1085, 2464, 2464,
- 2464, 1085, 1085, 1085, 2465, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 2464, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 2464, 1085,
- 1085, 1085, 1085, 2464, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 2464, 1085, 1085, 1085, 1085, 2464, 2464,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 77, 2465, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 2464, 2464,
- 2464, 1085, 1085, 1085, 2464, 2464, 2464, 2464,
- 2464, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 77,
- 77, 77, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 2464, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 2464, 2464, 2464,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 2464, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 0, 0,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 77, 77, 1085, 77, 77,
- 77, 1085, 1085, 1085, 1085, 77, 77, 77,
- 1085, 1085, 77, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 77, 1085, 77, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1085, 1085, 1085, 1085, 77, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 77, 77, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 77, 77, 77, 1085, 1085, 1085, 77, 77,
- 77, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 0, 0, 0,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 77, 77, 77, 77, 77, 77, 77,
- 77, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 0, 0, 0, 0, 0, 0, 0,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 0, 0, 0, 0, 0,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 0, 0, 0, 0, 0, 0, 0,
- 0, 77, 77, 77, 77, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 77, 77, 77,
- 77, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 77, 77, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 2464, 2464, 2464, 2464, 2464, 2464, 2464,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 2464,
- 1085, 0, 0, 0, 0, 0, 0, 0,
- 0, 2464, 0, 0, 2464, 2464, 2464, 2464,
- 2464, 2464, 2464, 1085, 1085, 2464, 2464, 2464,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 0, 0, 0,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1085, 1085, 1085, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1085, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 0,
- 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
- 1160, 1160, 1160, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 6350, 6351, 6352, 6353, 6354, 4271, 6355,
- 6356, 6357, 6358, 4272, 6359, 6360, 6361, 4273,
- 6362, 6363, 6364, 6365, 6366, 6367, 6368, 6369,
- 6370, 6371, 6372, 6373, 4331, 6374, 6375, 6376,
- 6377, 6378, 6379, 6380, 6381, 6382, 4336, 4274,
- 4275, 4337, 6383, 6384, 4082, 6385, 4276, 6386,
- 6387, 6388, 6389, 6389, 6389, 6390, 6391, 6392,
- 6393, 6394, 6395, 6396, 6397, 6398, 6399, 6400,
- 6401, 6402, 6403, 6404, 6405, 6406, 6407, 6407,
- 4339, 6408, 6409, 6410, 6411, 4278, 6412, 6413,
- 6414, 4235, 6415, 6416, 6417, 6418, 6419, 6420,
- 6421, 6422, 6423, 6424, 6425, 6426, 6427, 6428,
- 6429, 6430, 6431, 6432, 6433, 6434, 6435, 6436,
- 6437, 6438, 6439, 6440, 6440, 6441, 6442, 6443,
- 4078, 6444, 6445, 6446, 6447, 6448, 6449, 6450,
- 6451, 4283, 6452, 6453, 6454, 6455, 6456, 6457,
- 6458, 6459, 6460, 6461, 6462, 6463, 6464, 6465,
- 6466, 6467, 6468, 6469, 6470, 6471, 6472, 4024,
- 6473, 6474, 6475, 6475, 6476, 6477, 6477, 6478,
- 6479, 6480, 6481, 6482, 6483, 6484, 6485, 6486,
- 6487, 6488, 6489, 6490, 4284, 6491, 6492, 6493,
- 6494, 4351, 6494, 6495, 4286, 6496, 6497, 6498,
- 6499, 4287, 3997, 6500, 6501, 6502, 6503, 6504,
- 6505, 6506, 6507, 6508, 6509, 6510, 6511, 6512,
- 6513, 6514, 6515, 6516, 6517, 6518, 6519, 6520,
- 6521, 4288, 6522, 6523, 6524, 6525, 6526, 6527,
- 4290, 6528, 6529, 6530, 6531, 6532, 6533, 6534,
- 6535, 4025, 4359, 6536, 6537, 6538, 6539, 6540,
- 6541, 6542, 6543, 4291, 6544, 6545, 6546, 6547,
- 4402, 6548, 6549, 6550, 6551, 6552, 6553, 6554,
- 6555, 6556, 6557, 6558, 6559, 6560, 4095, 6561,
- 6562, 6563, 6564, 6565, 6566, 6567, 6568, 6569,
- 6570, 6571, 4292, 4182, 6572, 6573, 6574, 6575,
- 6576, 6577, 6578, 6579, 4363, 6580, 6581, 6582,
- 6583, 6584, 6585, 6586, 6587, 4364, 6588, 6589,
- 6590, 6591, 6592, 6593, 6594, 6595, 6596, 6597,
- 6598, 6599, 4366, 6600, 6601, 6602, 6603, 6604,
- 6605, 6606, 6607, 6608, 6609, 6610, 6610, 6611,
- 6612, 4368, 6613, 6614, 6615, 6616, 6617, 6618,
- 6619, 4081, 6620, 6621, 6622, 6623, 6624, 6625,
- 6626, 4374, 6627, 6628, 6629, 6630, 6631, 6632,
- 6632, 4375, 4404, 6633, 6634, 6635, 6636, 6637,
- 4043, 4377, 6638, 6639, 4303, 6640, 6641, 4257,
- 6642, 6643, 4307, 6644, 6645, 6646, 6647, 6647,
- 6648, 6649, 6650, 6651, 6652, 6653, 6654, 6655,
- 6656, 6657, 6658, 6659, 6660, 6661, 6662, 6663,
- 6664, 6665, 6666, 6667, 6668, 6669, 6670, 6671,
- 6672, 6673, 6674, 4313, 6675, 6676, 6677, 6678,
- 6679, 6680, 6681, 6682, 6683, 6684, 6685, 6686,
- 6687, 6688, 6689, 6690, 6476, 6691, 6692, 6693,
- 6694, 6695, 6696, 6697, 6698, 6699, 6700, 6701,
- 6702, 4099, 6703, 6704, 6705, 6706, 6707, 6708,
- 4316, 6709, 6710, 6711, 6712, 6713, 6714, 6715,
- 6716, 6717, 6718, 6719, 6720, 6721, 6722, 6723,
- 6724, 6725, 6726, 6727, 6728, 4038, 6729, 6730,
- 6731, 6732, 6733, 6734, 4384, 6735, 6736, 6737,
- 6738, 6739, 6740, 6741, 6742, 6743, 6744, 6745,
- 6746, 6747, 6748, 6749, 6750, 6751, 6752, 6753,
- 6754, 4389, 4390, 6755, 6756, 6757, 6758, 6759,
- 6760, 6761, 6762, 6763, 6764, 6765, 6766, 6767,
- 4391, 6768, 6769, 6770, 6771, 6772, 6773, 6774,
- 6775, 6776, 6777, 6778, 6779, 6780, 6781, 6782,
- 6783, 6784, 6785, 6786, 6787, 6788, 6789, 6790,
- 6791, 6792, 6793, 6794, 6795, 6796, 6797, 4397,
- 4397, 6798, 6799, 6800, 6801, 6802, 6803, 6804,
- 6805, 6806, 6807, 4398, 6808, 6809, 6810, 6811,
- 6812, 6813, 6814, 6815, 6816, 6817, 6818, 6819,
- 6820, 6821, 6822, 6823, 6824, 6825, 6826, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 81, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
- 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
- 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
- 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
- 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
- 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
- 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
- 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
- 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
- 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
- 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
- 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
- 2053, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
- 3984, 3984, 3984, 3984, 3984, 3984, 3984, 0,
+ 1, 2, 2, 2, 2, 2, 2,
+ 2, 2, 3, 4, 3, 5, 6, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 7, 7, 7,
+ 3, 8, 9, 9, 10, 11, 10, 9,
+ 9, 12, 13, 9, 14, 15, 16, 15,
+ 15, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 15, 9, 18, 19, 20,
+ 9, 9, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 12, 9, 13, 47,
+ 48, 47, 49, 50, 51, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, 72, 73, 74, 12, 75, 13, 75,
+ 2, 2, 2, 2, 2, 2, 7, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 76, 9, 11, 11, 11, 11, 77,
+ 9, 78, 77, 79, 80, 75, 81, 77,
+ 82, 83, 84, 85, 86, 87, 88, 9,
+ 9, 89, 90, 91, 92, 93, 94, 95,
+ 9, 96, 97, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, 118,
+ 75, 119, 120, 121, 122, 123, 124, 125,
+ 126, 127, 128, 129, 130, 131, 132, 133,
+ 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 145, 146, 147, 148, 149,
+ 75, 150, 151, 152, 153, 154, 155, 156,
+ 157, 158, 159, 160, 161, 162, 163, 164,
+ 165, 166, 167, 168, 169, 170, 171, 172,
+ 173, 174, 175, 176, 177, 178, 179, 180,
+ 181, 182, 183, 184, 185, 186, 187, 188,
+ 189, 190, 191, 192, 193, 194, 195, 196,
+ 197, 198, 199, 200, 201, 202, 203, 204,
+ 205, 206, 207, 208, 209, 210, 211, 212,
+ 213, 214, 215, 216, 217, 218, 219, 220,
+ 221, 222, 223, 224, 225, 226, 227, 228,
+ 229, 230, 231, 232, 233, 234, 235, 236,
+ 237, 238, 239, 240, 241, 242, 243, 244,
+ 245, 246, 247, 248, 249, 250, 251, 252,
+ 253, 254, 255, 256, 257, 258, 259, 260,
+ 261, 262, 263, 264, 265, 266, 267, 268,
+ 269, 270, 271, 272, 273, 274, 275, 276,
+ 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292,
+ 293, 294, 295, 296, 297, 298, 214, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, 310, 311, 214, 312, 313, 314,
+ 315, 316, 317, 318, 319, 320, 321, 322,
+ 323, 324, 325, 214, 214, 326, 327, 328,
+ 329, 330, 331, 332, 333, 334, 335, 336,
+ 337, 338, 339, 214, 340, 341, 342, 214,
+ 343, 340, 340, 340, 340, 344, 345, 346,
+ 347, 348, 349, 350, 351, 352, 353, 354,
+ 355, 356, 357, 358, 359, 360, 361, 362,
+ 363, 364, 365, 366, 367, 368, 369, 370,
+ 371, 372, 373, 374, 375, 376, 377, 378,
+ 379, 380, 381, 382, 383, 384, 385, 386,
+ 387, 388, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 399, 400, 401, 402,
+ 403, 404, 405, 406, 407, 408, 409, 410,
+ 411, 412, 413, 414, 415, 416, 417, 418,
+ 419, 420, 421, 422, 423, 424, 425, 426,
+ 427, 428, 429, 430, 431, 432, 433, 434,
+ 435, 436, 214, 437, 438, 439, 440, 441,
+ 442, 443, 444, 445, 446, 447, 448, 449,
+ 450, 451, 452, 453, 454, 214, 214, 214,
+ 214, 214, 214, 455, 456, 457, 458, 459,
+ 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 470, 471, 472, 473, 474, 475,
+ 476, 477, 478, 479, 480, 481, 214, 482,
+ 483, 214, 484, 214, 485, 486, 214, 214,
+ 214, 487, 488, 214, 489, 214, 490, 491,
+ 214, 492, 493, 494, 495, 496, 214, 214,
+ 497, 214, 498, 499, 214, 214, 500, 214,
+ 214, 214, 214, 214, 214, 214, 501, 214,
+ 214, 502, 214, 214, 503, 214, 214, 214,
+ 504, 505, 506, 507, 508, 509, 214, 214,
+ 214, 214, 214, 510, 214, 340, 214, 214,
+ 214, 214, 214, 214, 214, 214, 511, 512,
+ 214, 214, 214, 214, 214, 214, 214, 214,
+ 214, 214, 214, 214, 214, 214, 214, 214,
+ 214, 513, 514, 515, 516, 517, 518, 519,
+ 520, 521, 522, 522, 523, 523, 523, 523,
+ 523, 523, 523, 47, 47, 47, 47, 522,
+ 522, 522, 522, 522, 522, 522, 522, 522,
+ 522, 523, 523, 47, 47, 47, 47, 47,
+ 47, 524, 525, 526, 527, 528, 529, 47,
+ 47, 530, 531, 532, 533, 534, 47, 47,
+ 47, 47, 47, 47, 47, 522, 47, 523,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 535, 536, 537, 538, 539, 540, 541,
+ 542, 543, 544, 545, 546, 547, 540, 540,
+ 548, 540, 549, 540, 550, 551, 552, 553,
+ 553, 553, 553, 552, 554, 553, 553, 553,
+ 553, 553, 555, 555, 556, 557, 558, 559,
+ 560, 561, 553, 553, 553, 553, 562, 563,
+ 553, 564, 565, 553, 553, 566, 566, 566,
+ 566, 567, 553, 553, 553, 553, 540, 540,
+ 540, 568, 569, 570, 571, 572, 573, 540,
+ 553, 553, 553, 540, 540, 540, 553, 553,
+ 574, 540, 540, 540, 553, 553, 553, 553,
+ 540, 552, 553, 553, 540, 575, 576, 576,
+ 575, 576, 576, 575, 540, 540, 540, 540,
+ 540, 540, 540, 540, 540, 540, 540, 540,
+ 540, 577, 578, 579, 580, 581, 47, 582,
+ 583, 0, 0, 584, 585, 586, 587, 588,
+ 589, 0, 0, 0, 0, 87, 590, 591,
+ 592, 593, 594, 595, 0, 596, 0, 597,
+ 598, 599, 600, 601, 602, 603, 604, 605,
+ 606, 607, 608, 609, 610, 611, 612, 613,
+ 614, 615, 616, 0, 617, 618, 619, 620,
+ 621, 622, 623, 624, 625, 626, 627, 628,
+ 629, 630, 631, 632, 633, 634, 635, 636,
+ 637, 638, 639, 640, 641, 642, 643, 644,
+ 645, 646, 647, 648, 649, 650, 651, 652,
+ 653, 654, 655, 656, 657, 658, 659, 660,
+ 661, 662, 663, 664, 665, 666, 667, 668,
+ 669, 670, 671, 672, 673, 674, 675, 676,
+ 677, 678, 679, 680, 681, 682, 683, 684,
+ 685, 686, 687, 688, 689, 690, 691, 692,
+ 693, 694, 695, 696, 697, 698, 699, 75,
+ 700, 701, 702, 703, 704, 214, 705, 706,
+ 707, 708, 709, 710, 711, 712, 713, 714,
+ 715, 716, 717, 718, 719, 720, 721, 722,
+ 723, 724, 725, 726, 727, 728, 729, 730,
+ 731, 732, 733, 734, 735, 736, 737, 738,
+ 739, 740, 741, 742, 743, 744, 745, 746,
+ 747, 748, 749, 750, 751, 752, 753, 754,
+ 755, 756, 757, 758, 759, 760, 761, 762,
+ 763, 764, 765, 766, 767, 768, 769, 770,
+ 771, 772, 773, 774, 775, 776, 777, 778,
+ 779, 780, 781, 782, 783, 784, 785, 786,
+ 787, 788, 789, 790, 791, 792, 793, 794,
+ 795, 796, 797, 798, 799, 800, 801, 802,
+ 803, 804, 805, 806, 807, 808, 809, 810,
+ 811, 812, 813, 814, 815, 816, 817, 818,
+ 819, 820, 821, 822, 823, 824, 825, 826,
+ 827, 828, 829, 830, 831, 832, 833, 834,
+ 835, 836, 837, 838, 540, 540, 540, 540,
+ 540, 839, 839, 840, 841, 842, 843, 844,
+ 845, 846, 847, 848, 849, 850, 851, 852,
+ 853, 854, 855, 856, 857, 858, 859, 860,
+ 861, 862, 863, 864, 865, 866, 867, 868,
+ 869, 870, 871, 872, 873, 874, 875, 876,
+ 877, 878, 879, 880, 881, 882, 883, 884,
+ 885, 886, 887, 888, 889, 890, 891, 892,
+ 893, 894, 895, 896, 897, 898, 899, 900,
+ 901, 902, 903, 904, 905, 906, 907, 908,
+ 909, 910, 911, 912, 913, 914, 915, 916,
+ 917, 918, 919, 920, 921, 922, 923, 924,
+ 925, 926, 927, 928, 929, 930, 931, 932,
+ 933, 934, 935, 936, 937, 938, 939, 940,
+ 941, 942, 943, 944, 945, 946, 947, 948,
+ 949, 950, 951, 952, 953, 954, 955, 956,
+ 957, 958, 959, 960, 961, 962, 963, 964,
+ 965, 966, 967, 968, 969, 970, 971, 972,
+ 973, 974, 975, 976, 977, 978, 979, 980,
+ 981, 982, 983, 984, 985, 986, 987, 988,
+ 989, 990, 991, 992, 993, 994, 995, 996,
+ 997, 998, 999, 1000, 1001, 1002, 1003, 1004,
+ 1005, 0, 1006, 1007, 1008, 1009, 1010, 1011,
+ 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019,
+ 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027,
+ 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035,
+ 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,
+ 0, 0, 523, 1044, 1044, 1044, 1044, 1044,
+ 1044, 0, 1045, 1046, 1047, 1048, 1049, 1050,
+ 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058,
+ 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066,
+ 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074,
+ 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,
+ 1083, 0, 1044, 1084, 0, 0, 1085, 1085,
+ 11, 0, 553, 540, 540, 540, 540, 553,
+ 540, 540, 540, 1086, 553, 540, 540, 540,
+ 540, 540, 540, 553, 553, 553, 553, 553,
+ 553, 540, 540, 553, 540, 540, 1086, 1087,
+ 540, 1088, 1089, 1090, 1091, 1092, 1093, 1094,
+ 1095, 1096, 1097, 1097, 1098, 1099, 1100, 1101,
+ 1102, 1103, 1104, 1105, 1103, 540, 553, 1103,
+ 1096, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 0, 0, 0, 0,
+ 0, 1106, 1106, 1106, 1103, 1103, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1107, 1108, 1108, 1108, 1107, 1107, 1109,
+ 1109, 1110, 10, 10, 1111, 15, 1112, 1085,
+ 1085, 540, 540, 540, 540, 540, 540, 540,
+ 540, 1113, 1114, 1115, 1112, 1116, 0, 1117,
+ 1112, 1118, 1118, 1119, 1120, 1121, 1122, 1123,
+ 1124, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1125, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1126, 1127, 1118, 1128, 1129, 1130, 1131, 1113,
+ 1114, 1115, 1132, 1133, 1134, 1135, 1136, 553,
+ 540, 540, 540, 540, 540, 553, 540, 540,
+ 553, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
+ 1137, 1137, 1137, 10, 1138, 1138, 1112, 1118,
+ 1118, 1139, 1118, 1118, 1118, 1118, 1140, 1141,
+ 1142, 1143, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1126, 1118, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1144, 1145, 1146, 1118, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1147, 1148, 1112, 1149, 540,
+ 540, 540, 540, 540, 540, 540, 1108, 1085,
+ 540, 540, 540, 540, 553, 540, 1125, 1125,
+ 540, 540, 1085, 553, 540, 540, 553, 1118,
+ 1118, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 1118, 1118, 1118, 1150, 1150,
+ 1126, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
+ 1117, 1117, 1117, 1117, 1117, 1117, 1117, 0,
+ 1151, 1126, 1152, 1126, 1126, 1126, 1126, 1126,
+ 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
+ 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
+ 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
+ 1126, 540, 553, 540, 540, 553, 540, 540,
+ 553, 553, 553, 540, 553, 553, 540, 553,
+ 540, 540, 540, 553, 540, 553, 540, 553,
+ 540, 553, 540, 540, 0, 0, 1126, 1126,
+ 1126, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1126, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1118, 1118, 1118, 1126, 1126,
+ 1126, 1118, 1118, 1118, 1118, 1118, 1118, 1153,
+ 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1118, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1154, 1154, 1154, 1154, 1154, 1154, 1154,
+ 1154, 1154, 1154, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 540, 540, 540, 540,
+ 540, 540, 540, 553, 540, 1155, 1155, 77,
+ 9, 9, 9, 1155, 0, 0, 0, 0,
+ 0, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1156, 1156, 1156, 1156, 1156, 1156, 1156, 540,
+ 540, 540, 540, 1157, 540, 540, 540, 540,
+ 540, 540, 540, 540, 540, 1157, 540, 540,
+ 540, 1157, 540, 540, 540, 540, 540, 0,
+ 0, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
+ 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
+ 0, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1156, 1156, 553, 553, 553, 0, 0, 1158,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1118, 1118, 1118, 0, 1118,
+ 1118, 1118, 1118, 1118, 1118, 1118, 1118, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 540, 540, 540,
+ 540, 540, 540, 540, 540, 540, 540, 540,
+ 540, 540, 540, 1107, 553, 540, 540, 553,
+ 540, 540, 553, 540, 540, 540, 553, 553,
+ 553, 1129, 1130, 1131, 540, 540, 540, 553,
+ 540, 540, 553, 553, 540, 540, 540, 540,
+ 540, 1153, 1153, 1153, 1159, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1161, 1162, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1163, 1164, 1160, 1165, 1166, 1160, 1160,
+ 1160, 1160, 1160, 1153, 1159, 1167, 1160, 1159,
+ 1159, 1159, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1159, 1159, 1159, 1159, 1168, 1159,
+ 1159, 1160, 540, 553, 540, 540, 1153, 1153,
+ 1153, 1169, 1170, 1171, 1172, 1173, 1174, 1175,
+ 1176, 1160, 1160, 1153, 1153, 1177, 1177, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1177, 1179, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1153, 1159, 1159, 0, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 0, 0,
+ 1160, 1160, 0, 0, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 0, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 0, 1160, 0, 0, 0, 1160,
+ 1160, 1160, 1160, 0, 0, 1180, 1160, 1181,
+ 1159, 1159, 1153, 1153, 1153, 1153, 0, 0,
+ 1182, 1159, 0, 0, 1183, 1184, 1168, 1160,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1185, 0, 0, 0, 0, 1186, 1187, 0,
+ 1188, 1160, 1160, 1153, 1153, 0, 0, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1160, 1160, 1189, 1189, 1190, 1190, 1190,
+ 1190, 1190, 1190, 1191, 1189, 0, 0, 0,
+ 0, 0, 1153, 1153, 1159, 0, 1160, 1160,
+ 1160, 1160, 1160, 1160, 0, 0, 0, 0,
+ 1160, 1160, 0, 0, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 0, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 0, 1160, 1192, 0, 1160, 1193,
+ 0, 1160, 1160, 0, 0, 1180, 0, 1159,
+ 1159, 1159, 1153, 1153, 0, 0, 0, 0,
+ 1153, 1153, 0, 0, 1153, 1153, 1168, 0,
+ 0, 0, 1153, 0, 0, 0, 0, 0,
+ 0, 0, 1194, 1195, 1196, 1160, 0, 1197,
+ 0, 0, 0, 0, 0, 0, 0, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1153, 1153, 1160, 1160, 1160, 1153, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1153, 1153, 1159, 0, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 0,
+ 1160, 1160, 1160, 0, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 0, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 0, 1160, 1160, 0, 1160, 1160,
+ 1160, 1160, 1160, 0, 0, 1180, 1160, 1159,
+ 1159, 1159, 1153, 1153, 1153, 1153, 1153, 0,
+ 1153, 1153, 1159, 0, 1159, 1159, 1168, 0,
+ 0, 1160, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1153, 1153, 0, 0, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1177, 1189, 0, 0, 0, 0, 0,
+ 0, 0, 1160, 0, 0, 0, 0, 0,
+ 0, 0, 1153, 1159, 1159, 0, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 0, 0,
+ 1160, 1160, 0, 0, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 0, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 0, 1160, 1160, 0, 1160, 1160,
+ 1160, 1160, 1160, 0, 0, 1180, 1160, 1198,
+ 1153, 1159, 1153, 1153, 1153, 1153, 0, 0,
+ 1199, 1200, 0, 0, 1201, 1202, 1168, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1203,
+ 1204, 0, 0, 0, 0, 1205, 1206, 0,
+ 1160, 1160, 1160, 1153, 1153, 0, 0, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1191, 1160, 1190, 1190, 1190, 1190, 1190,
+ 1190, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1153, 1160, 0, 1160, 1160,
+ 1160, 1160, 1160, 1160, 0, 0, 0, 1160,
+ 1160, 1160, 0, 1207, 1160, 1208, 1160, 0,
+ 0, 0, 1160, 1160, 0, 1160, 0, 1160,
+ 1160, 0, 0, 0, 1160, 1160, 0, 0,
+ 0, 1160, 1160, 1160, 0, 0, 0, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 0, 0, 0, 0, 1209,
+ 1159, 1153, 1159, 1159, 0, 0, 0, 1210,
+ 1211, 1159, 0, 1212, 1213, 1214, 1168, 0,
+ 0, 1160, 0, 0, 0, 0, 0, 0,
+ 1215, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1190, 1190, 1190, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1189, 1085, 0, 0, 0, 0,
+ 0, 1153, 1159, 1159, 1159, 0, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 0, 1160,
+ 1160, 1160, 0, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 0, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 0, 0, 0, 1160, 1153,
+ 1153, 1153, 1159, 1159, 1159, 1159, 0, 1216,
+ 1153, 1217, 0, 1153, 1153, 1153, 1168, 0,
+ 0, 0, 0, 0, 0, 0, 1218, 1219,
+ 0, 1160, 1160, 1160, 0, 0, 0, 0,
+ 0, 1160, 1160, 1153, 1153, 0, 0, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
+ 1191, 1160, 1153, 1159, 1159, 0, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 0, 1160,
+ 1160, 1160, 0, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 0, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 0, 1160, 1160,
+ 1160, 1160, 1160, 0, 0, 1180, 1160, 1159,
+ 1221, 1222, 1159, 1223, 1159, 1159, 0, 1224,
+ 1225, 1226, 0, 1227, 1228, 1153, 1168, 0,
+ 0, 0, 0, 0, 0, 0, 1229, 1230,
+ 0, 0, 0, 0, 0, 0, 0, 1160,
+ 0, 1160, 1160, 1153, 1153, 0, 0, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 0, 1160, 1160, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1153, 1159, 1159, 0, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 0, 1160,
+ 1160, 1160, 0, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 0, 0, 1160, 1231,
+ 1159, 1159, 1153, 1153, 1153, 1153, 0, 1232,
+ 1233, 1159, 0, 1234, 1235, 1236, 1168, 1237,
+ 1191, 0, 0, 0, 0, 1160, 1160, 1160,
+ 1238, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
+ 1160, 1160, 1160, 1153, 1153, 0, 0, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
+ 1190, 1190, 1191, 1160, 1160, 1160, 1160, 1160,
+ 1160, 0, 0, 1159, 1159, 0, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 0, 0, 0, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 0, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 0, 1160, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 0, 0, 0, 1239, 0, 0, 0, 0,
+ 1240, 1159, 1159, 1153, 1153, 1153, 0, 1153,
+ 0, 1159, 1241, 1242, 1159, 1243, 1244, 1245,
+ 1246, 0, 0, 0, 0, 0, 0, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 0, 0, 1159, 1159, 1177, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 1153, 340, 1247, 1153, 1153, 1153,
+ 1153, 1248, 1248, 1168, 0, 0, 0, 0,
+ 11, 340, 340, 340, 340, 340, 340, 523,
+ 1153, 1249, 1249, 1249, 1249, 1153, 1153, 1153,
+ 1044, 1250, 1250, 1250, 1250, 1250, 1250, 1250,
+ 1250, 1250, 1250, 1044, 1044, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 340, 340, 0, 340, 0, 0,
+ 340, 340, 0, 340, 0, 0, 340, 0,
+ 0, 0, 0, 0, 0, 340, 340, 340,
+ 340, 0, 340, 340, 340, 340, 340, 340,
+ 340, 0, 340, 340, 340, 0, 340, 0,
+ 340, 0, 0, 340, 340, 0, 340, 340,
+ 340, 340, 1153, 340, 1251, 1153, 1153, 1153,
+ 1153, 1252, 1252, 0, 1153, 1153, 340, 0,
+ 0, 340, 340, 340, 340, 340, 0, 523,
+ 0, 1253, 1253, 1253, 1253, 1153, 1153, 0,
+ 0, 1250, 1250, 1250, 1250, 1250, 1250, 1250,
+ 1250, 1250, 1250, 0, 0, 1254, 1255, 340,
+ 340, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1191, 1191, 1191, 1177, 1177, 1177,
+ 1177, 1177, 1177, 1177, 1177, 1256, 1177, 1177,
+ 1177, 1177, 1177, 1177, 1191, 1177, 1191, 1191,
+ 1191, 553, 553, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1190, 1190, 1190, 1190, 1190,
+ 1190, 1190, 1190, 1190, 1190, 1191, 553, 1191,
+ 553, 1191, 1257, 1258, 1259, 1258, 1259, 1159,
+ 1159, 1160, 1160, 1160, 1260, 1160, 1160, 1160,
+ 1160, 0, 1160, 1160, 1160, 1160, 1261, 1160,
+ 1160, 1160, 1160, 1262, 1160, 1160, 1160, 1160,
+ 1263, 1160, 1160, 1160, 1160, 1264, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1265, 1160, 1160, 1160, 0, 0,
+ 0, 0, 1266, 1267, 1268, 1269, 1270, 1271,
+ 1272, 1273, 1274, 1267, 1267, 1267, 1267, 1153,
+ 1159, 1267, 1275, 540, 540, 1168, 1177, 540,
+ 540, 1160, 1160, 1160, 1160, 1160, 1153, 1153,
+ 1153, 1153, 1153, 1153, 1276, 1153, 1153, 1153,
+ 1153, 0, 1153, 1153, 1153, 1153, 1277, 1153,
+ 1153, 1153, 1153, 1278, 1153, 1153, 1153, 1153,
+ 1279, 1153, 1153, 1153, 1153, 1280, 1153, 1153,
+ 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1281, 1153, 1153, 1153, 0, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1191, 1191, 553,
+ 1191, 1191, 1191, 1191, 1191, 1191, 0, 1191,
+ 1191, 1177, 1177, 1177, 1177, 1177, 1191, 1191,
+ 1191, 1191, 1177, 1177, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 340, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 340, 1160, 1160, 1160, 1160, 1282, 1283,
+ 1160, 1160, 1160, 1160, 1284, 1284, 1153, 1285,
+ 1153, 1153, 1159, 1153, 1153, 1153, 1153, 1153,
+ 1180, 1284, 1168, 1168, 1159, 1159, 1153, 1153,
+ 1160, 1178, 1178, 1250, 1250, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1044, 1044, 1044, 1177, 1177,
+ 1177, 1160, 1160, 1160, 1160, 340, 1160, 1159,
+ 1159, 1153, 1153, 1160, 1160, 1160, 1160, 1153,
+ 1153, 1153, 1160, 1284, 1284, 1284, 1160, 1160,
+ 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1160,
+ 1160, 1160, 1153, 1153, 1153, 1153, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1153, 1284, 1159, 1153, 1153,
+ 1284, 1284, 1284, 1284, 1284, 1284, 553, 1160,
+ 1284, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1284, 1284, 1284, 1153, 1191,
+ 1191, 1286, 1287, 1288, 1289, 1290, 1291, 1292,
+ 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300,
+ 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308,
+ 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316,
+ 1317, 1318, 1319, 1320, 1321, 1322, 1323, 0,
+ 1324, 0, 0, 0, 0, 0, 1325, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 1044, 1326, 340, 340,
+ 340, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
+ 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
+ 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
+ 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
+ 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
+ 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
+ 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
+ 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
+ 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
+ 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
+ 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
+ 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
+ 1328, 1329, 1330, 1330, 1330, 1330, 1330, 1330,
+ 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330,
+ 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330,
+ 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330,
+ 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330,
+ 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330,
+ 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330,
+ 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330,
+ 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330,
+ 1330, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
+ 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
+ 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
+ 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
+ 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
+ 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
+ 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
+ 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
+ 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
+ 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
+ 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
+ 1331, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 0, 1160, 1160, 1160, 1160, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 0, 1160, 0, 1160, 1160, 1160, 1160, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 0, 1160, 1160, 1160, 1160, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 0, 1160, 1160, 1160, 1160, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 0, 1160, 0, 1160, 1160, 1160, 1160, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 0, 1160, 1160, 1160, 1160, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 340, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 0, 0, 540, 540,
+ 540, 1177, 1044, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1177, 1190, 1190, 1190, 1190, 1190, 1190,
+ 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
+ 1190, 1190, 1190, 1190, 1190, 1190, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 77, 77, 77, 77, 77, 1085, 77,
+ 1085, 1085, 77, 0, 0, 0, 0, 0,
+ 0, 1332, 1333, 1334, 1335, 1336, 1337, 1338,
+ 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346,
+ 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354,
+ 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362,
+ 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370,
+ 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378,
+ 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386,
+ 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394,
+ 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402,
+ 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410,
+ 1411, 1412, 1413, 1414, 1415, 1416, 1417, 0,
+ 0, 1418, 1419, 1420, 1421, 1422, 1423, 0,
+ 0, 1424, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 340, 340, 340, 340,
+ 340, 340, 340, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 340, 340, 340, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 340,
+ 1160, 1160, 1160, 1160, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 340, 340, 340, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 1160, 1160, 1160, 1160, 1160,
+ 1160, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 340, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 340, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 340, 340, 340, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 340,
+ 340, 340, 340, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 340, 340, 340, 340, 1160, 1160, 1160, 1160,
+ 340, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 340,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 340, 340, 340, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 340,
+ 340, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 340, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1177, 1044,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 1425, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1258, 1259, 0, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 1160, 340, 1160, 340, 340, 340, 340,
+ 340, 340, 340, 340, 1044, 1044, 1044, 1426,
+ 1426, 1426, 340, 340, 340, 340, 340, 340,
+ 340, 340, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 0, 1160,
+ 1160, 1160, 1160, 1153, 1153, 1168, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1153, 1153, 1168, 1177, 1177,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1153, 1153, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 340, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 0, 1160,
+ 1160, 1160, 0, 1153, 1153, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 574, 574, 1159,
+ 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1159,
+ 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1153,
+ 1159, 1159, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1153, 1168, 1153, 1177, 1177, 1044,
+ 1179, 1177, 1177, 1177, 1189, 340, 540, 0,
+ 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 0, 0, 0, 0, 0,
+ 0, 1427, 1427, 1427, 1427, 1427, 1427, 1427,
+ 1427, 1427, 1427, 0, 0, 0, 0, 0,
+ 0, 1428, 1428, 1428, 1428, 1428, 1428, 1424,
+ 1428, 1428, 1428, 1428, 574, 574, 574, 81,
+ 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1179, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1153, 1153,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1087, 1160, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 340, 340, 340,
+ 1160, 340, 1160, 340, 1160, 1160, 1160, 340,
+ 340, 1160, 1160, 1160, 340, 340, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 340, 1160, 340, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 340, 340, 340, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 0, 1153, 1153, 1153, 1159, 1159, 1159, 1159,
+ 1153, 1153, 1159, 1159, 1159, 0, 0, 0,
+ 0, 1159, 1159, 1153, 1159, 1159, 1159, 1159,
+ 1159, 1159, 1086, 540, 553, 0, 0, 0,
+ 0, 1085, 0, 0, 0, 1428, 1428, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 0,
+ 0, 340, 340, 340, 340, 340, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 0, 0, 0, 0, 0,
+ 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1190, 0, 0, 0, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 540, 553, 1159, 1159, 1153, 0, 0, 1177,
+ 1177, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1159, 1153,
+ 1159, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+ 0, 1168, 1284, 1153, 1284, 1284, 1153, 1153,
+ 1153, 1153, 1153, 1153, 1153, 1153, 1159, 1159,
+ 1159, 1159, 1159, 1159, 1153, 1153, 540, 540,
+ 540, 540, 540, 540, 540, 540, 0, 0,
+ 553, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 0, 0, 0, 0, 0,
+ 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 0, 0, 0, 0, 0,
+ 0, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1179, 1177, 1177, 1177, 1177, 1177, 1177, 0,
+ 0, 540, 540, 540, 540, 540, 553, 553,
+ 553, 553, 553, 553, 540, 540, 553, 839,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1153, 1153, 1153, 1153, 1159, 1429, 1430,
+ 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438,
+ 1160, 1160, 1439, 1440, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1180, 1441, 1153,
+ 1153, 1153, 1153, 1442, 1443, 1444, 1445, 1446,
+ 1447, 1448, 1449, 1450, 1451, 1452, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 0, 0, 0,
+ 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1177, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 1191, 1191, 540, 553, 540, 540,
+ 540, 540, 540, 540, 540, 1191, 1191, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1191, 0, 0,
+ 0, 1153, 1153, 1159, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1159, 1153, 1153, 1153, 1153, 1159,
+ 1159, 1153, 1153, 1452, 1168, 1153, 1153, 1160,
+ 1160, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1180,
+ 1159, 1153, 1153, 1159, 1159, 1159, 1153, 1159,
+ 1153, 1153, 1153, 1452, 1452, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1177, 1177, 1177,
+ 1177, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1159, 1159, 1159,
+ 1159, 1159, 1159, 1159, 1159, 1153, 1153, 1153,
+ 1153, 1153, 1153, 1153, 1153, 1159, 1159, 1153,
+ 1180, 0, 0, 0, 1177, 1177, 1177, 1177,
+ 1177, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 0, 0, 0, 1160, 1160,
+ 1160, 1250, 1250, 1250, 1250, 1250, 1250, 1250,
+ 1250, 1250, 1250, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 523, 523, 523, 523, 523, 523, 1044,
+ 1044, 1453, 1454, 1455, 1456, 1457, 1457, 1458,
+ 1459, 1460, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 0, 0, 0, 0, 0, 0, 0,
+ 0, 540, 540, 540, 1177, 566, 553, 553,
+ 553, 553, 553, 540, 540, 553, 553, 553,
+ 553, 540, 1159, 566, 566, 566, 566, 566,
+ 566, 566, 1160, 1160, 1160, 1160, 553, 1160,
+ 1160, 1160, 1160, 1159, 1159, 540, 1160, 1160,
+ 0, 540, 540, 0, 0, 0, 0, 0,
+ 0, 214, 214, 214, 214, 214, 214, 214,
+ 214, 214, 214, 214, 214, 214, 214, 214,
+ 214, 214, 214, 214, 214, 214, 214, 214,
+ 214, 214, 214, 214, 214, 214, 214, 214,
+ 214, 214, 214, 214, 214, 214, 214, 214,
+ 214, 214, 214, 214, 214, 1461, 1462, 1463,
+ 523, 1464, 1465, 1466, 1467, 1468, 1469, 1470,
+ 1471, 1472, 1473, 1474, 523, 1475, 1476, 1477,
+ 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485,
+ 1486, 1487, 1488, 1489, 1490, 1491, 1492, 523,
+ 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500,
+ 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508,
+ 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516,
+ 1517, 1518, 1519, 1520, 214, 214, 214, 214,
+ 214, 214, 214, 214, 214, 214, 214, 214,
+ 214, 1521, 1522, 1523, 214, 214, 1524, 214,
+ 214, 214, 214, 214, 214, 214, 214, 214,
+ 214, 214, 214, 214, 214, 214, 214, 214,
+ 214, 214, 214, 214, 214, 214, 1523, 214,
+ 214, 214, 214, 214, 1525, 1526, 1527, 1528,
+ 1491, 1529, 1530, 1531, 1532, 1533, 1534, 1535,
+ 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543,
+ 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551,
+ 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559,
+ 1560, 540, 540, 553, 540, 540, 540, 540,
+ 540, 540, 540, 553, 540, 540, 576, 1561,
+ 553, 555, 540, 540, 540, 540, 540, 540,
+ 540, 540, 540, 540, 540, 540, 540, 540,
+ 540, 540, 540, 540, 540, 540, 540, 540,
+ 540, 540, 540, 540, 540, 540, 540, 540,
+ 540, 540, 540, 540, 540, 540, 540, 0,
+ 0, 0, 0, 0, 540, 575, 553, 540,
+ 553, 1562, 1563, 1564, 1565, 1566, 1567, 1568,
+ 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576,
+ 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584,
+ 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592,
+ 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600,
+ 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608,
+ 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616,
+ 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624,
+ 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632,
+ 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640,
+ 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648,
+ 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656,
+ 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664,
+ 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672,
+ 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680,
+ 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688,
+ 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696,
+ 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704,
+ 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712,
+ 1713, 1714, 1715, 1716, 1717, 214, 214, 1718,
+ 214, 1719, 1720, 1721, 1722, 1723, 1724, 1725,
+ 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733,
+ 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741,
+ 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749,
+ 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757,
+ 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765,
+ 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773,
+ 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781,
+ 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789,
+ 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797,
+ 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805,
+ 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813,
+ 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821,
+ 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829,
+ 1830, 1831, 1832, 1833, 1834, 1835, 1836, 0,
+ 0, 1837, 1838, 1839, 1840, 1841, 1842, 0,
+ 0, 1843, 1844, 1845, 1846, 1847, 1848, 1849,
+ 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857,
+ 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865,
+ 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873,
+ 1874, 1875, 1876, 1877, 1878, 1879, 1880, 0,
+ 0, 1881, 1882, 1883, 1884, 1885, 1886, 0,
+ 0, 1887, 1888, 1889, 1890, 1891, 1892, 1893,
+ 1894, 0, 1895, 0, 1896, 0, 1897, 0,
+ 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905,
+ 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913,
+ 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921,
+ 1922, 1923, 1924, 1925, 1926, 1927, 1928, 0,
+ 0, 1929, 1930, 1931, 1932, 1933, 1934, 1935,
+ 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943,
+ 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951,
+ 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959,
+ 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967,
+ 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975,
+ 1976, 1977, 1978, 1979, 1980, 1981, 0, 1982,
+ 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990,
+ 1991, 1992, 1993, 1994, 1995, 1996, 0, 1997,
+ 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
+ 2006, 2007, 2008, 2009, 2010, 0, 0, 2011,
+ 2012, 2013, 2014, 2015, 2016, 0, 2017, 2018,
+ 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026,
+ 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034,
+ 2035, 0, 0, 2036, 2037, 2038, 0, 2039,
+ 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047,
+ 0, 2048, 2049, 2050, 2051, 2050, 2050, 2050,
+ 2052, 2050, 2050, 2050, 81, 2053, 2054, 2055,
+ 2056, 1084, 2057, 1084, 1084, 1084, 1084, 9,
+ 2058, 2059, 2060, 2061, 2059, 2059, 2060, 2061,
+ 2059, 9, 9, 9, 9, 2062, 2063, 2064,
+ 9, 2065, 2066, 2067, 2068, 2069, 2070, 2071,
+ 76, 10, 10, 10, 2072, 2073, 9, 2074,
+ 2075, 9, 80, 92, 9, 2076, 9, 2077,
+ 48, 48, 9, 9, 9, 2078, 12, 13,
+ 2079, 2080, 2081, 9, 9, 9, 9, 9,
+ 9, 9, 9, 75, 9, 48, 9, 9,
+ 2082, 9, 9, 9, 9, 9, 9, 9,
+ 2050, 81, 81, 81, 81, 81, 0, 2083,
+ 2084, 2085, 2086, 81, 81, 81, 81, 81,
+ 81, 2087, 2088, 0, 0, 2089, 2090, 2091,
+ 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099,
+ 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107,
+ 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115,
+ 0, 2116, 2117, 2118, 2119, 2120, 2121, 2122,
+ 2123, 2124, 2125, 2126, 2127, 2128, 0, 0,
+ 0, 11, 11, 11, 11, 11, 11, 11,
+ 11, 2129, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 1189, 11, 11, 11, 11, 11,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 540, 540, 566, 566, 540, 540, 540,
+ 540, 566, 566, 566, 540, 540, 839, 839,
+ 839, 839, 540, 839, 839, 839, 566, 566,
+ 540, 553, 540, 566, 566, 553, 553, 553,
+ 553, 540, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2130, 2131, 2132, 2133, 77, 2134, 2135,
+ 2136, 77, 2137, 2138, 2139, 2139, 2139, 2140,
+ 2141, 2142, 2142, 2143, 2144, 77, 2145, 2146,
+ 77, 75, 2147, 2148, 2149, 2149, 2149, 77,
+ 77, 2150, 2151, 2152, 77, 2153, 77, 2154,
+ 77, 2153, 77, 2155, 2156, 2157, 2132, 83,
+ 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165,
+ 2166, 2167, 2168, 1085, 2169, 2170, 2171, 2172,
+ 2173, 2174, 75, 75, 75, 75, 2175, 2176,
+ 2158, 2168, 2177, 77, 75, 1085, 77, 2178,
+ 1191, 2179, 2180, 2181, 2182, 2183, 2184, 2185,
+ 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193,
+ 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201,
+ 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209,
+ 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217,
+ 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225,
+ 2226, 1426, 1426, 2227, 2228, 2229, 1426, 1426,
+ 1426, 2227, 2230, 77, 77, 0, 0, 0,
+ 0, 2231, 75, 2232, 75, 2233, 77, 77,
+ 77, 77, 77, 2234, 2235, 77, 77, 77,
+ 77, 75, 77, 77, 75, 77, 77, 75,
+ 77, 77, 77, 77, 77, 77, 77, 2236,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 2237, 2238,
+ 2239, 2240, 77, 2241, 77, 2242, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 1109, 75, 75,
+ 75, 75, 1109, 1109, 1109, 1109, 75, 75,
+ 1109, 75, 2243, 2243, 2244, 2245, 75, 75,
+ 75, 2246, 2247, 2243, 2248, 2249, 2243, 75,
+ 75, 75, 2243, 14, 84, 75, 2243, 2243,
+ 75, 75, 75, 2243, 2243, 2243, 2243, 75,
+ 2243, 2243, 2243, 2243, 2250, 2251, 2252, 2253,
+ 75, 75, 75, 75, 2243, 2254, 2255, 2243,
+ 2256, 2257, 2243, 2243, 2243, 75, 75, 75,
+ 75, 75, 2243, 75, 2243, 2258, 2243, 2243,
+ 2243, 2243, 2259, 2243, 2260, 2261, 2262, 2243,
+ 2263, 2264, 2265, 2243, 2243, 2243, 2266, 75,
+ 75, 75, 75, 2243, 2243, 2243, 2243, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 2243, 2267, 2268, 2269, 75, 2270, 2271, 2243,
+ 2243, 2243, 2243, 2243, 2243, 75, 2272, 2273,
+ 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281,
+ 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2243,
+ 2243, 2289, 2290, 2291, 2292, 2293, 2294, 2295,
+ 2296, 2297, 2298, 2243, 2243, 2243, 75, 75,
+ 2243, 2243, 2299, 2300, 75, 75, 75, 75,
+ 75, 2243, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 2301, 2243, 75, 75, 2243,
+ 2243, 2302, 2303, 2243, 2304, 2305, 2306, 2307,
+ 2308, 2243, 2243, 2309, 2310, 2311, 2312, 2243,
+ 2243, 2243, 75, 75, 75, 75, 75, 2243,
+ 2243, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 2243, 2243, 2243, 2243, 2243, 75,
+ 75, 2243, 2243, 75, 75, 75, 75, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2313, 2314, 2315, 2316, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2317, 2318, 2319, 2320, 75,
+ 75, 2243, 2243, 2321, 2321, 2243, 2321, 2321,
+ 2243, 2243, 2321, 2321, 2321, 2243, 2321, 2243,
+ 2321, 77, 77, 77, 77, 77, 77, 77,
+ 77, 12, 13, 12, 13, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 1085, 1085, 77, 77, 77,
+ 77, 2243, 2243, 77, 77, 77, 77, 77,
+ 77, 77, 2322, 2323, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 1085, 1109, 1085, 1085,
+ 77, 77, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 838, 77,
+ 1085, 1085, 1085, 1085, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 1109, 1109, 1085, 1085, 1085,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 77, 77, 1085, 1085,
+ 77, 77, 77, 77, 77, 1085, 1085, 1085,
+ 1085, 1085, 1085, 77, 1085, 1109, 1109, 1109,
+ 1109, 1109, 1109, 1085, 1085, 1085, 1085, 1085,
+ 1085, 77, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 77, 77, 77, 77, 77,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2324, 2325, 2326, 2327, 2328, 2329, 2330,
+ 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338,
+ 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346,
+ 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354,
+ 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362,
+ 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370,
+ 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378,
+ 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386,
+ 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394,
+ 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402,
+ 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410,
+ 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418,
+ 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426,
+ 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434,
+ 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442,
+ 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450,
+ 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458,
+ 2459, 2460, 2461, 2462, 1220, 1220, 1220, 1220,
+ 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
+ 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
+ 1220, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 75, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 75, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 75, 75, 75, 75, 75, 1109, 1109,
+ 75, 77, 77, 77, 1085, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 1085, 1085, 1085,
+ 1085, 1085, 1085, 77, 77, 77, 2463, 77,
+ 77, 77, 77, 1085, 1085, 1085, 77, 77,
+ 77, 77, 77, 77, 1085, 1085, 77, 77,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 75, 77, 77, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 77, 77, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 77, 1085, 1085, 1085, 838, 1085, 1085,
+ 1085, 1085, 1085, 77, 77, 77, 77, 1085,
+ 77, 77, 77, 77, 77, 77, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 77, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 2464, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 2464, 2464, 2464, 2464, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 2465, 1085, 1085,
+ 1085, 12, 13, 12, 13, 12, 13, 12,
+ 13, 12, 13, 12, 13, 12, 13, 1220,
+ 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
+ 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
+ 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
+ 1220, 1220, 1220, 1220, 1220, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 2243, 1109, 75, 2321, 2321, 12, 13,
+ 75, 2321, 2321, 75, 2321, 2321, 2321, 1109,
+ 1109, 1109, 75, 1109, 2243, 2243, 2321, 2321,
+ 1109, 1109, 1109, 1109, 1109, 2321, 2321, 2321,
+ 1109, 75, 1109, 2321, 2321, 2321, 2321, 12,
+ 13, 12, 13, 12, 13, 12, 13, 12,
+ 13, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+ 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+ 1109, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+ 1109, 75, 75, 1109, 1109, 1109, 1109, 1109,
+ 1109, 1109, 1109, 75, 75, 1109, 1109, 1109,
+ 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+ 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+ 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+ 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+ 1109, 75, 75, 1109, 1109, 1109, 1109, 1109,
+ 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+ 1109, 1109, 75, 1109, 1109, 75, 75, 1109,
+ 75, 1109, 75, 1109, 1109, 75, 75, 1109,
+ 1109, 75, 75, 1109, 1109, 75, 75, 1109,
+ 1109, 75, 75, 1109, 1109, 1109, 1109, 1109,
+ 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+ 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+ 1109, 1109, 1109, 1109, 1109, 75, 75, 1109,
+ 1109, 75, 1109, 75, 12, 13, 12, 13,
+ 12, 13, 12, 13, 12, 13, 12, 13,
+ 12, 13, 12, 13, 1258, 1259, 1258, 1259,
+ 12, 13, 75, 1109, 2321, 2321, 2321, 2321,
+ 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2243,
+ 2243, 2321, 2321, 2321, 2321, 2321, 2321, 2321,
+ 2321, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+ 1109, 2321, 1109, 1109, 1109, 1109, 1109, 1109,
+ 1109, 2321, 2321, 2321, 2321, 2321, 2321, 1109,
+ 1109, 1109, 2321, 1109, 1109, 1109, 1109, 2321,
+ 2321, 2321, 2243, 2243, 75, 2243, 2243, 75,
+ 75, 12, 13, 1258, 1259, 2321, 1109, 1109,
+ 1109, 1109, 2321, 1109, 2321, 2321, 2321, 1109,
+ 1109, 2321, 2321, 1109, 75, 1109, 1109, 1109,
+ 1109, 1109, 1109, 1109, 1109, 2321, 2243, 2243,
+ 2243, 2243, 2243, 75, 75, 12, 13, 1109,
+ 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+ 1109, 1109, 1109, 2321, 2321, 2466, 2321, 2321,
+ 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321,
+ 2321, 2321, 2321, 2321, 2321, 2321, 1109, 2243,
+ 2243, 2321, 2243, 75, 75, 2243, 75, 2243,
+ 1109, 75, 2243, 75, 2243, 2243, 2321, 2321,
+ 75, 75, 75, 75, 1109, 2321, 2321, 1109,
+ 1109, 1109, 1109, 1109, 1109, 2243, 2243, 2243,
+ 1109, 1109, 1109, 1109, 1109, 1109, 1109, 75,
+ 75, 75, 75, 75, 75, 1109, 1109, 1109,
+ 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+ 2321, 2321, 1109, 1109, 1109, 1109, 1109, 1109,
+ 1109, 1109, 1109, 1109, 1109, 2321, 2321, 75,
+ 75, 1109, 1109, 2243, 2243, 2243, 2243, 1109,
+ 2243, 2243, 75, 75, 2243, 2467, 2468, 2469,
+ 75, 1109, 2321, 2321, 2321, 2321, 2321, 2321,
+ 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321,
+ 2321, 2321, 2321, 2321, 2243, 2243, 2321, 2321,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2321, 2321,
+ 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321,
+ 2321, 2321, 2321, 2321, 2321, 1109, 1109, 2321,
+ 2321, 2321, 2321, 2321, 2321, 2321, 2321, 1109,
+ 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321,
+ 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2321, 2321, 2243, 2243, 2243, 2243, 2321, 2321,
+ 2321, 2321, 2321, 2321, 2243, 2243, 2243, 2243,
+ 1109, 1109, 1109, 1109, 1109, 2470, 2471, 2243,
+ 1109, 1109, 1109, 2321, 2321, 2321, 2321, 2321,
+ 1109, 1109, 1109, 1109, 1109, 2321, 2321, 2243,
+ 75, 75, 75, 75, 2321, 1109, 1109, 75,
+ 2321, 2321, 2321, 2321, 2321, 1109, 2321, 75,
+ 75, 1085, 1085, 1085, 1085, 1085, 1085, 77,
+ 77, 1085, 1085, 1085, 1085, 1085, 77, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 77, 77,
+ 1085, 1085, 1085, 1085, 1085, 1085, 77, 77,
+ 77, 77, 77, 77, 77, 1085, 1085, 77,
+ 77, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+ 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+ 1109, 1109, 1109, 1109, 1109, 1109, 1085, 1085,
+ 1109, 1109, 1109, 1109, 1109, 1109, 1085, 77,
+ 77, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 0, 0, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 0,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 0, 0, 0, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 0, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1085, 1085, 1085,
+ 1085, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2472, 2473, 2474, 2475, 2476, 2477, 2478,
+ 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486,
+ 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494,
+ 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502,
+ 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510,
+ 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518,
+ 0, 2519, 2520, 2521, 2522, 2523, 2524, 2525,
+ 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533,
+ 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541,
+ 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549,
+ 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557,
+ 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565,
+ 0, 2566, 2567, 2568, 2569, 2570, 2571, 2572,
+ 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580,
+ 2581, 2582, 214, 2583, 2584, 214, 2585, 2586,
+ 214, 214, 214, 214, 214, 2587, 2588, 2589,
+ 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597,
+ 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605,
+ 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613,
+ 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621,
+ 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629,
+ 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637,
+ 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645,
+ 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653,
+ 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661,
+ 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669,
+ 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677,
+ 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685,
+ 2686, 2687, 2688, 2689, 2690, 214, 77, 77,
+ 1085, 77, 77, 1085, 2691, 2692, 2693, 2694,
+ 540, 540, 540, 2695, 2696, 0, 0, 0,
+ 0, 0, 9, 9, 9, 9, 1427, 9,
+ 9, 2697, 2698, 2699, 2700, 2701, 2702, 2703,
+ 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711,
+ 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719,
+ 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727,
+ 2728, 2729, 2730, 2731, 2732, 2733, 2734, 0,
+ 2735, 0, 0, 0, 0, 0, 2736, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 1160, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 0, 0, 0, 0, 0, 0, 0,
+ 2737, 1044, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1168, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 0, 540, 540, 540, 540, 540, 540, 540,
+ 540, 540, 540, 540, 540, 540, 540, 540,
+ 540, 540, 540, 540, 540, 540, 540, 540,
+ 540, 540, 540, 540, 540, 540, 540, 540,
+ 540, 9, 9, 80, 92, 80, 92, 9,
+ 9, 9, 80, 92, 9, 80, 92, 1428,
+ 1428, 1428, 1428, 9, 1428, 1428, 1428, 9,
+ 1084, 9, 9, 1084, 9, 80, 92, 9,
+ 9, 80, 92, 12, 13, 12, 13, 12,
+ 13, 12, 13, 9, 9, 9, 9, 9,
+ 522, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 1084, 1084, 9, 9, 9,
+ 9, 1084, 9, 2061, 1428, 9, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 0, 1085, 1085, 1085, 1085,
+ 2738, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 2739, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2740, 2741, 2742, 2743, 2744, 2745, 2746,
+ 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754,
+ 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762,
+ 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770,
+ 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778,
+ 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786,
+ 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794,
+ 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802,
+ 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810,
+ 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818,
+ 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826,
+ 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834,
+ 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842,
+ 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850,
+ 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858,
+ 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866,
+ 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874,
+ 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882,
+ 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890,
+ 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898,
+ 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906,
+ 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914,
+ 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922,
+ 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930,
+ 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938,
+ 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946,
+ 2947, 2948, 2949, 2950, 2951, 2952, 2953, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 0, 0, 0,
+ 0, 2954, 1428, 1428, 1428, 1085, 1179, 1160,
+ 2227, 1258, 1259, 1258, 1259, 1258, 1259, 1258,
+ 1259, 1258, 1259, 1085, 1085, 1258, 1259, 1258,
+ 1259, 1258, 1259, 1258, 1259, 1424, 2955, 2956,
+ 2956, 1085, 2227, 2227, 2227, 2227, 2227, 2227,
+ 2227, 2227, 2227, 2957, 1087, 552, 1086, 2958,
+ 2958, 1424, 1179, 1179, 1179, 1179, 1179, 2959,
+ 1085, 2960, 2961, 2962, 1179, 1160, 1428, 1085,
+ 77, 0, 1160, 1160, 1160, 1160, 1160, 2963,
+ 1160, 1160, 1160, 1160, 2964, 2965, 2966, 2967,
+ 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975,
+ 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983,
+ 2984, 2985, 2986, 2987, 1160, 2988, 2989, 2990,
+ 2991, 2992, 2993, 1160, 1160, 1160, 1160, 1160,
+ 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001,
+ 3002, 3003, 3004, 3005, 3006, 3007, 3008, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 3009, 1160, 1160,
+ 0, 0, 3010, 3011, 3012, 3013, 3014, 3015,
+ 3016, 1424, 1160, 1160, 1160, 1160, 1160, 3017,
+ 1160, 1160, 1160, 1160, 3018, 3019, 3020, 3021,
+ 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029,
+ 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037,
+ 3038, 3039, 3040, 3041, 1160, 3042, 3043, 3044,
+ 3045, 3046, 3047, 1160, 1160, 1160, 1160, 1160,
+ 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055,
+ 3056, 3057, 3058, 3059, 3060, 3061, 3062, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 3063, 3064, 3065, 3066, 1160, 3067, 1160, 1160,
+ 3068, 3069, 3070, 3071, 1428, 1179, 3072, 3073,
+ 3074, 0, 0, 0, 0, 0, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 0,
+ 0, 0, 3075, 3076, 3077, 3078, 3079, 3080,
+ 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088,
+ 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096,
+ 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104,
+ 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112,
+ 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120,
+ 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128,
+ 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136,
+ 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144,
+ 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152,
+ 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160,
+ 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168,
+ 0, 1191, 1191, 3169, 3170, 3171, 3172, 3173,
+ 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181,
+ 3182, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 0, 0, 0, 0,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 3183, 3184, 3185, 3186, 3187, 3188, 3189,
+ 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197,
+ 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205,
+ 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213,
+ 0, 3214, 3215, 3216, 3217, 3218, 3219, 3220,
+ 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228,
+ 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236,
+ 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244,
+ 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252,
+ 3253, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
+ 1190, 3254, 3255, 3256, 3257, 3258, 3259, 3260,
+ 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268,
+ 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276,
+ 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284,
+ 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292,
+ 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300,
+ 1191, 3301, 3302, 3303, 3304, 3305, 3306, 3307,
+ 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315,
+ 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323,
+ 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331,
+ 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339,
+ 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347,
+ 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355,
+ 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363,
+ 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371,
+ 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379,
+ 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387,
+ 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395,
+ 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403,
+ 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411,
+ 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419,
+ 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427,
+ 0, 3428, 3429, 3430, 3431, 3432, 3433, 3434,
+ 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442,
+ 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450,
+ 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458,
+ 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466,
+ 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474,
+ 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482,
+ 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490,
+ 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498,
+ 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506,
+ 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514,
+ 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522,
+ 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530,
+ 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538,
+ 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546,
+ 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554,
+ 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562,
+ 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570,
+ 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578,
+ 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586,
+ 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594,
+ 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602,
+ 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610,
+ 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618,
+ 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626,
+ 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634,
+ 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642,
+ 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650,
+ 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658,
+ 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666,
+ 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674,
+ 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682,
+ 3683, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1179, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 0, 0,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 523, 523, 523, 523, 523, 523, 1044,
+ 1044, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1179, 1428, 1428,
+ 1428, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1160, 1160, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 3684, 3685, 3686, 3687, 3688, 3689, 3690,
+ 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698,
+ 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706,
+ 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714,
+ 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722,
+ 3723, 3724, 3725, 3726, 3727, 3728, 3729, 1160,
+ 540, 839, 839, 839, 9, 540, 540, 540,
+ 540, 540, 540, 540, 540, 540, 540, 9,
+ 522, 3730, 3731, 3732, 3733, 3734, 3735, 3736,
+ 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744,
+ 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752,
+ 3753, 3754, 3755, 3756, 3757, 3758, 3759, 540,
+ 540, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 1426,
+ 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
+ 1426, 540, 540, 1044, 1044, 1044, 1044, 1044,
+ 1044, 0, 0, 0, 0, 0, 0, 0,
+ 0, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 522, 522, 522, 522, 522, 522, 522, 522,
+ 522, 47, 47, 3760, 3761, 3762, 3763, 3764,
+ 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772,
+ 3773, 214, 214, 3774, 3775, 3776, 3777, 3778,
+ 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786,
+ 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794,
+ 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802,
+ 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810,
+ 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818,
+ 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826,
+ 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834,
+ 3835, 3836, 1523, 1523, 1523, 1523, 1523, 1523,
+ 1523, 214, 3837, 3838, 3839, 3840, 3841, 3842,
+ 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850,
+ 3851, 522, 3852, 3852, 3853, 3854, 3855, 214,
+ 340, 3856, 3857, 3858, 3859, 214, 214, 3860,
+ 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868,
+ 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876,
+ 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884,
+ 0, 3885, 3886, 3887, 3888, 3889, 3890, 3891,
+ 3892, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 340, 3893, 3894, 214, 340, 340, 340, 340,
+ 1160, 1160, 1160, 1153, 1160, 1160, 1160, 1168,
+ 1160, 1160, 1160, 1160, 1153, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1159, 1159, 1153, 1153,
+ 1159, 77, 77, 1085, 1085, 0, 0, 0,
+ 0, 1190, 1190, 1190, 1190, 1190, 1190, 1191,
+ 1191, 1189, 3895, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1428, 1428, 1428,
+ 1428, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1159, 1159, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1159, 1159, 1159,
+ 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
+ 1159, 1159, 1159, 1159, 1159, 1168, 1153, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1177,
+ 1177, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 0, 0, 0, 0, 0,
+ 0, 540, 540, 540, 540, 540, 540, 540,
+ 540, 540, 540, 540, 540, 540, 540, 540,
+ 540, 540, 540, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1177, 1177, 1177, 1160, 1177, 1160, 0,
+ 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1153,
+ 1153, 1153, 1153, 1153, 553, 553, 553, 1177,
+ 1177, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1153, 1159, 1452, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1177, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
+ 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
+ 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
+ 1327, 1327, 1327, 1327, 1327, 1327, 0, 0,
+ 0, 1153, 1153, 1153, 1159, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1180, 1159, 1159, 1153,
+ 1153, 1153, 1153, 1159, 1159, 1153, 1159, 1159,
+ 1159, 1452, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 0,
+ 1179, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 0, 0, 0, 0, 1177,
+ 1177, 340, 1160, 1160, 1160, 1160, 1153, 523,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 340, 1250, 1250, 1250, 1250, 1250, 1250, 1250,
+ 1250, 1250, 1178, 1160, 1160, 1160, 340, 1160,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1159, 1159, 1153, 1153, 1159, 1159, 1153, 1153,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1153, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1153, 1159, 0,
+ 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 0, 0, 1177, 1177, 1177,
+ 1177, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1179, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1191, 1191, 1191, 1160, 1284, 1153, 1284, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 540, 1160, 540, 540, 553, 1160, 1160,
+ 540, 540, 1160, 1160, 1160, 1160, 1160, 540,
+ 540, 1160, 540, 1160, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1160, 1160, 1179, 1177,
+ 1177, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1159, 1153, 1153, 1159,
+ 1159, 1177, 1177, 1160, 1179, 1179, 1159, 1168,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1160, 1160, 1160, 1160, 1160, 1160,
+ 0, 0, 1160, 1160, 1160, 1160, 1160, 1160,
+ 0, 0, 1160, 1160, 1160, 1160, 1160, 1160,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 0, 214, 214, 214, 214, 214, 214, 214,
+ 214, 214, 214, 214, 214, 214, 214, 214,
+ 214, 214, 214, 214, 214, 214, 214, 214,
+ 214, 214, 214, 214, 214, 214, 214, 214,
+ 214, 214, 214, 214, 3896, 214, 214, 214,
+ 214, 214, 214, 214, 3852, 3897, 3898, 3899,
+ 3900, 214, 214, 214, 214, 214, 214, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 3901, 3902, 3903, 3904, 3905, 3906, 3907,
+ 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915,
+ 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923,
+ 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931,
+ 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939,
+ 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947,
+ 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955,
+ 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963,
+ 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971,
+ 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979,
+ 3980, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1159, 1159, 1153, 1159,
+ 1159, 1153, 1159, 1159, 1177, 1159, 1168, 0,
+ 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 0, 0, 0, 0, 0,
+ 0, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3981, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3981, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982,
+ 3982, 3982, 3982, 3982, 3982, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1330, 1330, 1330, 1330, 1330, 1330, 1330,
+ 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330,
+ 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330,
+ 0, 0, 0, 0, 1331, 1331, 1331, 1331,
+ 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
+ 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
+ 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
+ 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
+ 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
+ 1331, 1331, 1331, 1331, 1331, 0, 0, 0,
+ 0, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983,
+ 3983, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991,
+ 3992, 3992, 3993, 3994, 3995, 3996, 3997, 3998,
+ 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006,
+ 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014,
+ 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022,
+ 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030,
+ 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038,
+ 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046,
+ 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054,
+ 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062,
+ 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070,
+ 4071, 4072, 4073, 4074, 4075, 4004, 4076, 4077,
+ 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085,
+ 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093,
+ 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101,
+ 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109,
+ 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117,
+ 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125,
+ 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133,
+ 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141,
+ 4142, 4143, 4094, 4144, 4145, 4146, 4147, 4148,
+ 4149, 4150, 4151, 4078, 4152, 4153, 4154, 4155,
+ 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163,
+ 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171,
+ 4004, 4172, 4173, 4174, 4175, 4176, 4177, 4178,
+ 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186,
+ 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194,
+ 4195, 4196, 4197, 4198, 4080, 4199, 4200, 4201,
+ 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209,
+ 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217,
+ 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225,
+ 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233,
+ 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241,
+ 4242, 4243, 4244, 4245, 4246, 4247, 4248, 1160,
+ 1160, 4249, 1160, 4250, 1160, 1160, 4251, 4252,
+ 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260,
+ 1160, 4261, 1160, 4262, 1160, 1160, 4263, 4264,
+ 1160, 1160, 1160, 4265, 4266, 4267, 4268, 4269,
+ 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277,
+ 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285,
+ 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293,
+ 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301,
+ 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309,
+ 4133, 4310, 4311, 4312, 4313, 4314, 4315, 4315,
+ 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323,
+ 4263, 4324, 4325, 4326, 4327, 4328, 4329, 0,
+ 0, 4330, 4331, 4332, 4333, 4334, 4335, 4336,
+ 4337, 4277, 4338, 4339, 4340, 4249, 4341, 4342,
+ 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350,
+ 4351, 4352, 4286, 4353, 4287, 4354, 4355, 4356,
+ 4357, 4358, 4250, 4025, 4359, 4360, 4361, 4095,
+ 4182, 4362, 4363, 4294, 4364, 4295, 4365, 4366,
+ 4367, 4252, 4368, 4369, 4370, 4371, 4372, 4253,
+ 4373, 4374, 4375, 4376, 4377, 4378, 4309, 4379,
+ 4380, 4133, 4381, 4313, 4382, 4383, 4384, 4385,
+ 4386, 4318, 4387, 4262, 4388, 4319, 4076, 4389,
+ 4320, 4390, 4322, 4391, 4392, 4393, 4394, 4395,
+ 4324, 4258, 4396, 4325, 4397, 4326, 4398, 3992,
+ 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406,
+ 4407, 4408, 4409, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 4410, 4411, 4412, 4413, 4414, 4415, 4416,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 4417, 4418, 4419, 4420,
+ 4421, 0, 0, 0, 0, 0, 4422, 4423,
+ 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431,
+ 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439,
+ 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447,
+ 0, 4448, 4449, 4450, 4451, 4452, 0, 4453,
+ 0, 4454, 4455, 0, 4456, 4457, 0, 4458,
+ 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466,
+ 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474,
+ 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482,
+ 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490,
+ 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498,
+ 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506,
+ 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514,
+ 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522,
+ 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530,
+ 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538,
+ 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546,
+ 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554,
+ 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562,
+ 4563, 4564, 4565, 4566, 4566, 4566, 4566, 4566,
+ 4566, 4566, 4566, 4566, 4566, 4566, 4566, 4566,
+ 4566, 4566, 4566, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 4567, 4568, 4569, 4570,
+ 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578,
+ 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586,
+ 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594,
+ 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602,
+ 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610,
+ 4611, 4612, 4613, 4614, 4605, 4615, 4616, 4617,
+ 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625,
+ 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633,
+ 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641,
+ 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649,
+ 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657,
+ 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665,
+ 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673,
+ 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681,
+ 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689,
+ 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697,
+ 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705,
+ 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713,
+ 4714, 4606, 4715, 4716, 4717, 4718, 4719, 4720,
+ 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728,
+ 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736,
+ 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744,
+ 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752,
+ 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760,
+ 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768,
+ 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776,
+ 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784,
+ 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792,
+ 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800,
+ 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808,
+ 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816,
+ 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824,
+ 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832,
+ 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840,
+ 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848,
+ 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856,
+ 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864,
+ 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872,
+ 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880,
+ 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888,
+ 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896,
+ 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904,
+ 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912,
+ 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920,
+ 4921, 4922, 4923, 4924, 4925, 4926, 4927, 2956,
+ 2955, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 4928, 4929, 4930, 4931, 4932, 4933, 4934,
+ 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942,
+ 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950,
+ 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958,
+ 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966,
+ 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974,
+ 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982,
+ 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990,
+ 4991, 0, 0, 4992, 4993, 4994, 4995, 4996,
+ 4997, 4998, 4999, 5000, 5001, 5002, 5003, 5004,
+ 5005, 5006, 5007, 5008, 5009, 5010, 5011, 5012,
+ 5013, 5014, 5015, 5016, 5017, 5018, 5019, 5020,
+ 5021, 5022, 5023, 5024, 5025, 5026, 5027, 5028,
+ 5029, 5030, 5031, 5032, 5033, 5034, 5035, 5036,
+ 5037, 5038, 5039, 5040, 5041, 5042, 5043, 5044,
+ 5045, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 5046, 5047, 5048, 5049, 5050, 5051, 5052,
+ 5053, 5054, 5055, 5056, 5057, 5058, 1085, 0,
+ 0, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 5059, 5060, 5061, 5062, 5063, 5064, 5065,
+ 5066, 5067, 5068, 0, 0, 0, 0, 0,
+ 0, 540, 540, 540, 540, 540, 540, 540,
+ 553, 553, 553, 553, 553, 553, 553, 540,
+ 540, 5069, 5070, 5071, 5072, 5072, 5073, 5074,
+ 5075, 5076, 5077, 5078, 5079, 5080, 5081, 5082,
+ 5083, 5084, 5085, 5086, 5087, 5088, 1428, 1428,
+ 5089, 5090, 5091, 5091, 5091, 5091, 5092, 5092,
+ 5092, 5093, 5094, 5095, 0, 5096, 5097, 5098,
+ 5099, 5100, 5101, 5102, 5103, 5104, 5105, 5106,
+ 5107, 5108, 5109, 5110, 5111, 5112, 5113, 5114,
+ 0, 5115, 5116, 5117, 5118, 0, 0, 0,
+ 0, 5119, 5120, 5121, 1118, 5122, 0, 5123,
+ 5124, 5125, 5126, 5127, 5128, 5129, 5130, 5131,
+ 5132, 5133, 5134, 5135, 5136, 5137, 5138, 5139,
+ 5140, 5141, 5142, 5143, 5144, 5145, 5146, 5147,
+ 5148, 5149, 5150, 5151, 5152, 5153, 5154, 5155,
+ 5156, 5157, 5158, 5159, 5160, 5161, 5162, 5163,
+ 5164, 5165, 5166, 5167, 5168, 5169, 5170, 5171,
+ 5172, 5173, 5174, 5175, 5176, 5177, 5178, 5179,
+ 5180, 5181, 5182, 5183, 5184, 5185, 5186, 5187,
+ 5188, 5189, 5190, 5191, 5192, 5193, 5194, 5195,
+ 5196, 5197, 5198, 5199, 5200, 5201, 5202, 5203,
+ 5204, 5205, 5206, 5207, 5208, 5209, 5210, 5211,
+ 5212, 5213, 5214, 5215, 5216, 5217, 5218, 5219,
+ 5220, 5221, 5222, 5223, 5224, 5225, 5226, 5227,
+ 5228, 5229, 5230, 5231, 5232, 5233, 5234, 5235,
+ 5236, 5237, 5238, 5239, 5240, 5241, 5242, 5243,
+ 5244, 5245, 5246, 5247, 5248, 5249, 5250, 5251,
+ 5252, 5253, 5254, 5255, 5256, 5257, 0, 0,
+ 81, 0, 5258, 5259, 5260, 5261, 5262, 5263,
+ 5264, 5265, 5266, 5267, 5268, 5269, 5270, 5271,
+ 5272, 5273, 5274, 5275, 5276, 5277, 5278, 5279,
+ 5280, 5281, 5282, 5283, 5284, 5285, 5286, 5287,
+ 5288, 5289, 5290, 5291, 5292, 5293, 5294, 5295,
+ 5296, 5297, 5298, 5299, 5300, 5301, 5302, 5303,
+ 5304, 5305, 5306, 5307, 5308, 5309, 5310, 5311,
+ 5312, 5313, 5314, 5315, 5316, 5317, 5318, 5319,
+ 5320, 5321, 5322, 5323, 5324, 5325, 5326, 5327,
+ 5328, 5329, 5330, 5331, 5332, 5333, 5334, 5335,
+ 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343,
+ 5344, 5345, 5346, 5347, 5348, 5349, 5350, 5351,
+ 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359,
+ 5360, 5361, 5362, 5363, 5364, 5365, 5366, 5367,
+ 5368, 5369, 5370, 5371, 5372, 5373, 5374, 5375,
+ 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383,
+ 5384, 5385, 5386, 5387, 5388, 5389, 5390, 5391,
+ 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399,
+ 5400, 5401, 5402, 5403, 5404, 5405, 5406, 5407,
+ 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5415,
+ 5416, 5417, 5418, 5419, 5420, 5421, 5422, 5423,
+ 5424, 5425, 5426, 5427, 5428, 5429, 5430, 5431,
+ 5432, 5433, 5434, 5435, 5436, 5437, 5438, 5439,
+ 5440, 5441, 5442, 5443, 5444, 5445, 5446, 5447,
+ 0, 0, 0, 5448, 5449, 5450, 5451, 5452,
+ 5453, 0, 0, 5454, 5455, 5456, 5457, 5458,
+ 5459, 0, 0, 5460, 5461, 5462, 5463, 5464,
+ 5465, 0, 0, 5466, 5467, 5468, 0, 0,
+ 0, 5469, 5470, 5471, 5472, 5473, 5474, 5475,
+ 0, 5476, 5477, 5478, 5479, 5480, 5481, 5482,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 5483, 5483, 5483, 1085, 77, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 0, 340, 1160,
+ 1160, 340, 340, 340, 1160, 340, 340, 340,
+ 340, 340, 340, 340, 340, 1160, 340, 340,
+ 340, 340, 340, 1160, 1160, 1160, 340, 340,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 1160,
+ 340, 340, 340, 340, 0, 340, 340, 0,
+ 340, 340, 1160, 340, 340, 1160, 1160, 1160,
+ 340, 340, 340, 1160, 1160, 340, 1160, 0,
+ 0, 340, 340, 1160, 340, 340, 1160, 340,
+ 1160, 1160, 1160, 340, 1160, 1160, 1160, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 340, 340, 1160, 1160, 1160, 1160, 340,
+ 340, 340, 340, 1160, 1160, 1160, 1160, 1160,
+ 340, 1160, 340, 340, 340, 340, 1160, 1160,
+ 1160, 1160, 1160, 340, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 340, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 340, 1160, 340, 1160,
+ 1160, 1160, 1160, 1160, 340, 340, 1160, 1160,
+ 1160, 1160, 1160, 1160, 340, 1160, 1160, 1160,
+ 1160, 1160, 340, 340, 340, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 340, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 0, 0, 0, 0,
+ 0, 1044, 9, 1044, 0, 0, 0, 0,
+ 5484, 5484, 5484, 5484, 5484, 5484, 5484, 5484,
+ 5484, 5484, 5484, 5484, 5484, 5484, 5484, 5484,
+ 5484, 5484, 5484, 5484, 5484, 5484, 5484, 5484,
+ 5484, 5484, 1190, 5484, 1190, 5484, 1190, 1190,
+ 1190, 1190, 1190, 1190, 5484, 1190, 5484, 1190,
+ 1190, 1190, 1190, 1190, 1190, 0, 0, 0,
+ 1191, 838, 1191, 838, 838, 838, 838, 838,
+ 1191, 5485, 5485, 5485, 5485, 5485, 5485, 5485,
+ 5485, 5485, 5485, 5485, 5485, 5485, 5485, 5485,
+ 5485, 5485, 5485, 5485, 5485, 5485, 5485, 5485,
+ 5485, 5485, 5485, 5485, 5485, 5485, 5485, 5485,
+ 5485, 5485, 5485, 5485, 5485, 5485, 5485, 5485,
+ 5485, 5485, 5486, 5486, 5486, 5486, 5486, 5486,
+ 5485, 5486, 5485, 5485, 5485, 5485, 1427, 1427,
+ 1220, 1427, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 1085, 77, 1427, 1427, 77, 838, 838,
+ 0, 77, 77, 77, 77, 77, 77, 77,
+ 1085, 1085, 1085, 77, 77, 0, 0, 0,
+ 0, 77, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1191, 553, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 1160,
+ 1160, 340, 340, 340, 340, 340, 340, 340,
+ 340, 1160, 340, 1160, 340, 340, 0, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 1160, 340, 340, 340, 340, 340, 340,
+ 1160, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 553, 5487, 5487, 5487, 5487, 5487, 5487,
+ 5487, 5487, 5487, 5487, 5487, 5487, 5487, 5487,
+ 5487, 5487, 5487, 5487, 5487, 5487, 5487, 5487,
+ 5487, 5487, 5487, 5487, 5487, 0, 0, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 5484, 5484, 5484, 5484, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 1426, 340, 340, 340, 340, 340,
+ 340, 340, 340, 1426, 0, 0, 0, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 540,
+ 540, 540, 540, 540, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 0,
+ 1177, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1177, 2227, 2227, 2227, 2227, 2227, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 5488, 5489, 5490, 5491, 5492, 5493, 5494,
+ 5495, 5496, 5497, 5498, 5499, 5500, 5501, 5502,
+ 5503, 5504, 5505, 5506, 5507, 5508, 5509, 5510,
+ 5511, 5512, 5513, 5514, 5515, 5516, 5517, 5518,
+ 5519, 5520, 5521, 5522, 5523, 5524, 5525, 5526,
+ 5527, 5528, 5529, 5530, 5531, 5532, 5533, 5534,
+ 5535, 5536, 5537, 5538, 5539, 5540, 5541, 5542,
+ 5543, 5544, 5545, 5546, 5547, 5548, 5549, 5550,
+ 5551, 5552, 5553, 5554, 5555, 5556, 5557, 5558,
+ 5559, 5560, 5561, 5562, 5563, 5564, 5565, 5566,
+ 5567, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 1160, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 1160,
+ 340, 1160, 340, 340, 1160, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 1160, 0,
+ 0, 1250, 1250, 1250, 1250, 1250, 1250, 1250,
+ 1250, 1250, 1250, 0, 0, 0, 0, 0,
+ 0, 5568, 5569, 5570, 5571, 5572, 5573, 5574,
+ 5575, 5576, 5577, 5578, 5579, 5580, 5581, 5582,
+ 5583, 5584, 5585, 5586, 5587, 5588, 5589, 5590,
+ 5591, 5592, 5593, 5594, 5595, 5596, 5597, 5598,
+ 5599, 5600, 5601, 5602, 5603, 0, 0, 0,
+ 0, 5604, 5605, 5606, 5607, 5608, 5609, 5610,
+ 5611, 5612, 5613, 5614, 5615, 5616, 5617, 5618,
+ 5619, 5620, 5621, 5622, 5623, 5624, 5625, 5626,
+ 5627, 5628, 5629, 5630, 5631, 5632, 5633, 5634,
+ 5635, 5636, 5637, 5638, 5639, 0, 0, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1044, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 1160, 340, 340, 340,
+ 340, 1160, 340, 1160, 1160, 1160, 340, 340,
+ 340, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 340, 340, 1160, 340, 340, 1160, 1160,
+ 340, 340, 1160, 1160, 1160, 1160, 340, 1160,
+ 340, 340, 340, 340, 340, 1160, 1160, 1160,
+ 340, 1160, 340, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 340, 1160, 1160, 1160, 340,
+ 1160, 1160, 340, 340, 1160, 1160, 1160, 1160,
+ 1160, 1160, 340, 340, 1160, 1160, 1160, 340,
+ 340, 340, 340, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 340, 1160, 1160, 1160, 1160,
+ 340, 1160, 1160, 340, 340, 340, 1160, 1160,
+ 1160, 1160, 340, 340, 340, 1160, 1160, 1160,
+ 1160, 340, 1160, 1160, 1160, 1160, 1160, 1160,
+ 340, 1160, 1160, 1160, 1160, 1160, 340, 340,
+ 1160, 1160, 340, 1160, 1160, 340, 1160, 1160,
+ 1160, 1160, 1160, 340, 1160, 1160, 1160, 340,
+ 1160, 1160, 340, 1160, 1160, 340, 1160, 340,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 340, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 340, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 340, 340, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 340, 1160,
+ 340, 340, 340, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 340, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 340, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 1160, 1160, 1160, 1160, 1160, 1160,
+ 340, 340, 1160, 1160, 340, 1160, 340, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1156, 1156, 1156, 1106, 1156, 1106, 0,
+ 0, 1156, 0, 1106, 1156, 1156, 1156, 1156,
+ 1156, 1106, 1156, 1106, 1156, 1156, 1156, 1156,
+ 1156, 1156, 1106, 1156, 1156, 1156, 1156, 1106,
+ 1156, 1106, 1156, 1156, 1106, 1106, 1156, 1106,
+ 1156, 1106, 1106, 1106, 1106, 1156, 1106, 1106,
+ 1106, 1106, 1106, 1156, 1106, 1156, 1106, 0,
+ 1156, 1106, 0, 0, 0, 1156, 0, 0,
+ 1156, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 0,
+ 1103, 5640, 5640, 5640, 5640, 5640, 5640, 5640,
+ 5640, 1156, 1156, 1156, 1106, 1106, 1106, 1106,
+ 1156, 1106, 1106, 1156, 1106, 1156, 1106, 1106,
+ 1156, 1156, 1106, 1156, 1156, 1106, 1156, 1156,
+ 5641, 5641, 5640, 5640, 5642, 5642, 5642, 5642,
+ 5640, 1156, 1106, 1156, 1156, 1156, 1106, 1106,
+ 1106, 1106, 1106, 1156, 1156, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1156,
+ 1156, 1106, 1156, 1156, 1106, 1106, 1106, 1106,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 5640, 5640, 5640, 5640, 5640, 5640, 5640, 5640,
+ 5640, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 0, 1106, 1106, 0,
+ 0, 0, 0, 0, 5640, 5640, 5640, 5640,
+ 5640, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 5640,
+ 5640, 5640, 5640, 5640, 5640, 0, 0, 0,
+ 9, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 0, 0, 0, 0, 0,
+ 1103, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1156, 1106, 1156, 1156, 1156, 1156, 1156,
+ 1106, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1106, 1156, 1156, 1156, 1156, 1156, 1156, 1106,
+ 1156, 1156, 1106, 1156, 1106, 1156, 1106, 1106,
+ 1106, 1106, 1156, 1106, 1156, 1106, 1156, 1106,
+ 1106, 1106, 1156, 1106, 1156, 1106, 1156, 1156,
+ 1106, 0, 0, 0, 0, 5642, 5640, 1106,
+ 1156, 5640, 5640, 5640, 5640, 5642, 5642, 5642,
+ 5640, 5640, 5642, 5642, 5642, 5642, 5642, 5642,
+ 5642, 0, 0, 5642, 5642, 5642, 5642, 5642,
+ 5642, 5642, 5642, 5642, 5642, 5642, 5642, 5642,
+ 5642, 5642, 5642, 5642, 5642, 5642, 5642, 5642,
+ 5642, 5642, 5642, 5642, 5642, 5642, 5642, 5642,
+ 5642, 5642, 5642, 5642, 5642, 5642, 5642, 5640,
+ 5640, 5640, 5640, 5642, 5640, 5642, 5642, 5642,
+ 5642, 1156, 1153, 1153, 1153, 0, 1153, 1153,
+ 0, 0, 0, 0, 0, 1153, 553, 1153,
+ 540, 1156, 1156, 1156, 1156, 0, 1156, 1156,
+ 1156, 0, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1156, 1156, 1156, 1156, 1156, 0, 0, 0,
+ 0, 540, 566, 553, 0, 0, 0, 0,
+ 1168, 5642, 5642, 5642, 5642, 5642, 5642, 5642,
+ 5642, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
+ 1158, 1158, 0, 0, 0, 0, 0, 0,
+ 0, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 5640, 5640,
+ 1103, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 5640, 5640,
+ 5640, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1106, 1156, 1156, 1106, 1106, 1106, 1156,
+ 1106, 5643, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1156, 1156, 1156, 1106, 1156, 1156, 1156,
+ 1106, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1156, 1156, 1106, 1156, 1156, 1106, 540, 553,
+ 0, 0, 0, 0, 5640, 5642, 5642, 5642,
+ 5642, 1158, 1158, 1158, 1158, 1103, 1103, 1103,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1106, 1156, 1156, 1156, 1156, 1106, 1106,
+ 1106, 1156, 1156, 1156, 1156, 1106, 1106, 1106,
+ 1106, 1106, 1156, 1156, 1156, 1156, 1106, 1156,
+ 1106, 1106, 1106, 1106, 1156, 1106, 1106, 1106,
+ 1106, 1156, 1156, 1106, 1106, 1106, 1106, 1106,
+ 1156, 1106, 1106, 1156, 1156, 1106, 1106, 1106,
+ 1106, 1106, 1156, 1156, 1156, 1156, 1156, 0,
+ 0, 0, 9, 9, 9, 9, 9, 9,
+ 9, 1156, 1156, 1106, 1106, 1156, 1106, 1106,
+ 1106, 1156, 1106, 1156, 1106, 1156, 1156, 1106,
+ 1106, 1156, 1156, 1106, 1106, 1106, 1106, 0,
+ 0, 5640, 5640, 5640, 5640, 5640, 5640, 5642,
+ 5640, 1106, 1106, 1106, 1106, 1156, 1106, 1106,
+ 1156, 1106, 1106, 1106, 1106, 1156, 1106, 1156,
+ 1106, 1106, 1156, 1106, 0, 0, 0, 0,
+ 0, 5640, 5640, 5640, 5640, 5640, 5640, 5640,
+ 5640, 1106, 1156, 1106, 1156, 1106, 1106, 1106,
+ 1156, 1106, 1156, 1106, 1106, 1106, 1156, 1106,
+ 1106, 1156, 1106, 0, 0, 0, 0, 0,
+ 0, 0, 1158, 1158, 1158, 1158, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 5640, 5640, 5640, 5642, 5640, 5640,
+ 5642, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 5644, 5645, 5646, 5647, 5648, 5649, 5650,
+ 5651, 5652, 5653, 5654, 5655, 5656, 5657, 5658,
+ 5659, 5660, 5661, 5662, 5663, 5664, 5665, 5666,
+ 5667, 5668, 5669, 5670, 5671, 5672, 5673, 5674,
+ 5675, 5676, 5677, 5678, 5679, 5680, 5681, 5682,
+ 5683, 5684, 5685, 5686, 5687, 5688, 5689, 5690,
+ 5691, 5692, 5693, 5694, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 5695, 5696, 5697, 5698, 5699, 5700, 5701,
+ 5702, 5703, 5704, 5705, 5706, 5707, 5708, 5709,
+ 5710, 5711, 5712, 5713, 5714, 5715, 5716, 5717,
+ 5718, 5719, 5720, 5721, 5722, 5723, 5724, 5725,
+ 5726, 5727, 5728, 5729, 5730, 5731, 5732, 5733,
+ 5734, 5735, 5736, 5737, 5738, 5739, 5740, 5741,
+ 5742, 5743, 5744, 5745, 0, 0, 0, 0,
+ 0, 0, 0, 5640, 5640, 5640, 5640, 5640,
+ 5640, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 5746, 5746, 5747, 5746, 5746, 5746, 5746,
+ 5746, 5747, 5746, 5746, 5747, 5747, 5747, 5746,
+ 5746, 5747, 5746, 5746, 5746, 5747, 5747, 5746,
+ 5747, 5747, 5746, 5746, 5747, 5747, 5747, 5747,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1159, 1153, 1159, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1168,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 0,
+ 0, 0, 0, 1220, 1220, 1220, 1220, 1220,
+ 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
+ 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1168, 1153, 1153, 1159, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 5748, 5749, 5750, 5751, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 5752, 1160,
+ 1160, 1160, 1160, 1160, 5753, 1160, 1160, 1160,
+ 1160, 1159, 1159, 1159, 1153, 1153, 1153, 1153,
+ 1159, 1159, 1168, 5754, 1177, 1177, 5755, 1177,
+ 1177, 1177, 1177, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 0, 0, 0, 0, 0, 0,
+ 0, 1250, 1250, 1250, 1250, 1250, 1250, 1250,
+ 1250, 1250, 1250, 0, 0, 0, 0, 0,
+ 0, 540, 540, 540, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 5756, 1153, 1153, 1153, 1153, 1159, 1153, 5757,
+ 5758, 1153, 5759, 5760, 1168, 1168, 0, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1177, 1177, 1177, 1177, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 340, 340, 340, 1160, 340, 340,
+ 340, 340, 1160, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 1160, 340, 1160,
+ 1160, 1160, 1160, 1160, 340, 1160, 340, 1160,
+ 340, 340, 340, 340, 1180, 1044, 1044, 1160,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1153, 1153, 1159, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1159, 1159, 1159, 1153,
+ 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1159, 1452, 1160, 1237, 1237, 1160, 1177, 1177,
+ 1177, 1177, 1177, 1180, 1153, 1153, 1177, 0,
+ 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1160, 1177, 1160, 1177, 1177,
+ 1177, 0, 1190, 1190, 1190, 1190, 1190, 1190,
+ 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
+ 1190, 1190, 1190, 1190, 1190, 1190, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 0, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1159, 1159, 1159,
+ 1153, 1153, 1153, 1159, 1159, 1153, 1452, 1180,
+ 1153, 1177, 1177, 1177, 1177, 1177, 1177, 1153,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 0, 1160, 0, 1160, 1160, 1160, 1160, 0,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 0,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1177, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1153, 1159, 1159, 1159, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1180, 1168, 0, 0, 0, 0,
+ 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 0, 0, 0, 0, 0,
+ 0, 1153, 1153, 1159, 1159, 0, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 0, 0,
+ 1160, 1160, 0, 0, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 0, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 0, 1160, 1160, 0, 1160, 1160,
+ 1160, 1160, 1160, 0, 0, 1180, 1160, 5761,
+ 1159, 1153, 1159, 1159, 1159, 1159, 0, 0,
+ 5762, 1159, 0, 0, 5763, 5764, 1452, 0,
+ 0, 1160, 0, 0, 0, 0, 0, 0,
+ 5765, 0, 0, 0, 0, 0, 1160, 1160,
+ 1160, 1160, 1160, 1159, 1159, 0, 0, 540,
+ 540, 540, 540, 540, 540, 540, 0, 0,
+ 0, 540, 540, 540, 540, 540, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1159, 1159,
+ 1159, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1153, 1159, 1159, 1168, 1153, 1153, 1159, 1180,
+ 1160, 1160, 1160, 1160, 1177, 1177, 1177, 1177,
+ 1177, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 0, 1177, 0, 1177, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 5766, 1159, 1159, 1153, 1153, 1153, 1153,
+ 1153, 1153, 5767, 5768, 5769, 5770, 5771, 5772,
+ 1153, 1153, 1159, 1168, 1180, 1160, 1160, 1177,
+ 1160, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 5773, 1159, 1159, 1153, 1153, 1153, 1153, 0,
+ 0, 5774, 5775, 5776, 5777, 1153, 1153, 1159,
+ 1168, 1180, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1160, 1160, 1160, 1160, 1153, 1153, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1159, 1159, 1159, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1153, 1153, 1159, 1159, 1153, 1159,
+ 1168, 1153, 1177, 1177, 1177, 1160, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 0, 0, 0, 0, 0,
+ 0, 1428, 1428, 1428, 1428, 1428, 1428, 1428,
+ 1428, 1428, 1428, 1428, 1428, 1428, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1153, 1159, 1153, 1159,
+ 1159, 1153, 1153, 1153, 1153, 1153, 1153, 1452,
+ 1180, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 0, 0, 0, 1153, 1153,
+ 1153, 1159, 1159, 1153, 1153, 1153, 1153, 1159,
+ 1153, 1153, 1153, 1153, 1168, 0, 0, 0,
+ 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1190, 1190, 1177, 1177, 1177,
+ 1191, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 5778, 5779, 5780, 5781, 5782, 5783, 5784,
+ 5785, 5786, 5787, 5788, 5789, 5790, 5791, 5792,
+ 5793, 5794, 5795, 5796, 5797, 5798, 5799, 5800,
+ 5801, 5802, 5803, 5804, 5805, 5806, 5807, 5808,
+ 5809, 5810, 5811, 5812, 5813, 5814, 5815, 5816,
+ 5817, 5818, 5819, 5820, 5821, 5822, 5823, 5824,
+ 5825, 5826, 5827, 5828, 5829, 5830, 5831, 5832,
+ 5833, 5834, 5835, 5836, 5837, 5838, 5839, 5840,
+ 5841, 1250, 1250, 1250, 1250, 1250, 1250, 1250,
+ 1250, 1250, 1250, 5484, 5484, 5484, 5484, 5484,
+ 5484, 5484, 5484, 5484, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 340, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 0, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 5842, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+ 0, 1153, 1153, 1153, 1153, 1153, 1153, 1159,
+ 5843, 1160, 1177, 1177, 1177, 1177, 1177, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1190, 1190, 1190, 1190, 1190,
+ 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
+ 1190, 1190, 1190, 1190, 1190, 1190, 0, 0,
+ 0, 1044, 1044, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 0, 0, 1153, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1153, 0, 1159, 1153, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1159, 1153, 1153, 1159, 1153, 1153,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
+ 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
+ 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
+ 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
+ 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
+ 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
+ 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
+ 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
+ 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
+ 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
+ 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
+ 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
+ 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
+ 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
+ 0, 1044, 1044, 1044, 1044, 1044, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 0, 0, 0, 0, 0, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 0, 1250, 1250, 1250, 1250, 1250, 1250, 1250,
+ 1250, 1250, 1250, 0, 0, 0, 0, 1044,
+ 1044, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 0,
+ 0, 566, 566, 566, 566, 566, 1044, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 540, 540, 540, 540, 540, 540, 540,
+ 1044, 1044, 1044, 1044, 1044, 838, 838, 838,
+ 838, 523, 523, 523, 523, 1044, 838, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1250, 1250, 1250, 1250, 1250, 1250, 1250,
+ 1250, 1250, 1250, 0, 5484, 5484, 5484, 5484,
+ 5484, 5484, 5484, 0, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 0, 0, 0, 0, 0, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1159, 1159, 1159, 1159, 1159, 1159,
+ 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
+ 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
+ 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
+ 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
+ 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 1153, 1153, 1153, 1153, 1179, 1179, 1179, 1179,
+ 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
+ 1179, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1179, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 1160, 1160,
+ 1160, 1160, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 1160, 1160, 340, 340,
+ 1160, 1160, 340, 340, 1160, 1160, 1160, 1160,
+ 340, 340, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 1160, 1160, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 1160, 340, 340, 340, 1160, 340, 340,
+ 1160, 1160, 1160, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 340, 1160, 340, 340, 340, 340, 0, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 0, 0, 0, 0, 0, 0,
+ 0, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 0, 0, 1191, 1153, 566,
+ 1177, 81, 81, 81, 81, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 838, 838, 838, 838, 838, 838, 838,
+ 838, 1191, 1191, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 1191, 838, 1191, 838,
+ 838, 838, 1191, 838, 838, 838, 1191, 1191,
+ 1191, 838, 1191, 838, 1191, 838, 1191, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 838, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 838, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
+ 838, 838, 1191, 1191, 1191, 1191, 1191, 838,
+ 838, 838, 838, 1191, 838, 1191, 1191, 1191,
+ 838, 838, 838, 1191, 1191, 1191, 1191, 1191,
+ 838, 1191, 1191, 1191, 838, 1191, 1191, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 1191, 838, 1191, 1191, 1191, 838,
+ 838, 838, 1191, 1191, 838, 838, 838, 838,
+ 1191, 1191, 838, 838, 838, 1191, 1191, 838,
+ 838, 838, 838, 1191, 1191, 1191, 1191, 1191,
+ 838, 838, 838, 838, 838, 838, 1191, 838,
+ 838, 1191, 1191, 1191, 838, 1191, 1191, 1191,
+ 1191, 838, 838, 1191, 838, 1191, 838, 1191,
+ 1191, 1191, 1191, 1191, 1191, 838, 838, 838,
+ 1191, 1191, 838, 838, 838, 1191, 838, 1191,
+ 838, 1191, 838, 838, 1191, 1191, 1191, 1191,
+ 838, 1191, 1191, 1191, 838, 1191, 1191, 1191,
+ 1191, 838, 1191, 1191, 1191, 838, 1191, 1191,
+ 1191, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 1191,
+ 838, 1191, 838, 838, 838, 838, 838, 838,
+ 838, 1191, 838, 1191, 838, 838, 838, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 1191, 838, 1191, 838, 838, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1191, 1191, 838,
+ 838, 838, 1191, 1191, 1191, 1191, 838, 838,
+ 0, 0, 1191, 838, 1191, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 1191,
+ 1191, 1191, 1191, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 5844, 5845, 1191, 838, 838, 1191, 838, 5846,
+ 5847, 5848, 5849, 5850, 5851, 5852, 5853, 5854,
+ 566, 566, 566, 1191, 1191, 1191, 5855, 5856,
+ 5857, 5858, 5859, 5860, 81, 81, 81, 81,
+ 81, 81, 81, 81, 553, 553, 553, 553,
+ 553, 553, 553, 553, 838, 838, 540, 540,
+ 540, 540, 540, 553, 553, 838, 838, 838,
+ 838, 838, 838, 1191, 1191, 838, 838, 1191,
+ 1191, 1191, 1191, 838, 838, 1191, 1191, 838,
+ 838, 838, 838, 838, 1191, 1191, 838, 1191,
+ 1191, 838, 838, 540, 540, 540, 540, 1191,
+ 1191, 1191, 1191, 1191, 1191, 838, 1191, 1191,
+ 1191, 1191, 5861, 5862, 5863, 5864, 5865, 5866,
+ 5867, 5868, 838, 838, 838, 838, 838, 838,
+ 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 838, 838, 838, 838, 838, 838, 838,
+ 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 540, 540, 540, 1085, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
+ 1190, 1190, 5484, 1190, 1190, 1190, 1190, 1190,
+ 1190, 1190, 1190, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 5869, 2157, 2132, 5870, 2159, 2160, 5871,
+ 2139, 2142, 5872, 5873, 2143, 2162, 2145, 5874,
+ 2147, 2148, 2149, 5875, 5876, 5877, 5878, 5879,
+ 5880, 5881, 2153, 5882, 5883, 5884, 5885, 2158,
+ 5886, 2138, 2140, 2168, 2177, 5887, 2144, 5888,
+ 5889, 2163, 5890, 5891, 5892, 5893, 5894, 5895,
+ 5896, 5897, 5898, 5899, 5900, 5901, 5902, 5903,
+ 2175, 5904, 5905, 5906, 5907, 5908, 5909, 5910,
+ 5911, 5912, 5913, 5914, 5915, 5916, 5917, 5918,
+ 5919, 5920, 5921, 5922, 5923, 5924, 5925, 5926,
+ 5927, 5928, 2176, 5929, 5930, 5931, 0, 5932,
+ 5933, 5934, 5935, 5936, 5937, 5938, 5939, 5940,
+ 5941, 5942, 5943, 5944, 5945, 5946, 5947, 5948,
+ 5949, 5901, 5902, 5903, 2175, 5904, 5905, 5906,
+ 5907, 5908, 5909, 5910, 5911, 5912, 5913, 5914,
+ 5915, 5916, 5917, 5918, 5919, 5920, 5921, 5922,
+ 5923, 5924, 5925, 5926, 5927, 5928, 2176, 5929,
+ 5930, 5931, 5950, 5932, 5933, 5934, 5935, 5936,
+ 5937, 5938, 5939, 5940, 5941, 5942, 5943, 5944,
+ 5945, 5946, 5947, 5948, 5949, 5901, 0, 5903,
+ 2175, 0, 0, 5906, 0, 0, 5909, 5910,
+ 0, 0, 5913, 5914, 5915, 5916, 0, 5918,
+ 5919, 5920, 5921, 5922, 5923, 5924, 5925, 5926,
+ 5927, 5928, 2176, 0, 5930, 0, 5950, 5932,
+ 5933, 5934, 5935, 5936, 5937, 0, 5939, 5940,
+ 5941, 5942, 5943, 5944, 5945, 5946, 5947, 5948,
+ 5949, 5901, 5902, 5903, 2175, 5904, 5905, 5906,
+ 5907, 5908, 5909, 5910, 5911, 5912, 5913, 5914,
+ 5915, 5916, 5917, 5918, 5919, 5920, 5921, 5922,
+ 5923, 5924, 5925, 5926, 5927, 5928, 2176, 5929,
+ 5930, 5931, 5950, 5932, 5933, 5934, 5935, 5936,
+ 5937, 5938, 5939, 5940, 5941, 5942, 5943, 5944,
+ 5945, 5946, 5947, 5948, 5949, 5869, 2157, 0,
+ 5870, 2159, 2160, 5871, 0, 0, 5872, 5873,
+ 2143, 2162, 2145, 5874, 2147, 2148, 0, 5875,
+ 5876, 5877, 5878, 5879, 5880, 5881, 0, 5882,
+ 5883, 5884, 5885, 2158, 5886, 2138, 2140, 2168,
+ 2177, 5887, 2144, 5888, 5889, 2163, 5890, 5891,
+ 5892, 5893, 5894, 5895, 5896, 5897, 5898, 5899,
+ 5900, 5869, 2157, 0, 5870, 2159, 2160, 5871,
+ 0, 2142, 5872, 5873, 2143, 2162, 0, 5874,
+ 0, 0, 0, 5875, 5876, 5877, 5878, 5879,
+ 5880, 5881, 0, 5882, 5883, 5884, 5885, 2158,
+ 5886, 2138, 2140, 2168, 2177, 5887, 2144, 5888,
+ 5889, 2163, 5890, 5891, 5892, 5893, 5894, 5895,
+ 5896, 5897, 5898, 5899, 5900, 5869, 2157, 2132,
+ 5870, 2159, 2160, 5871, 2139, 2142, 5872, 5873,
+ 2143, 2162, 2145, 5874, 2147, 2148, 2149, 5875,
+ 5876, 5877, 5878, 5879, 5880, 5881, 2153, 5882,
+ 5883, 5884, 5885, 2158, 5886, 2138, 2140, 2168,
+ 2177, 5887, 2144, 5888, 5889, 2163, 5890, 5891,
+ 5892, 5893, 5894, 5895, 5896, 5897, 5898, 5899,
+ 5900, 5869, 2157, 2132, 5870, 2159, 2160, 5871,
+ 2139, 2142, 5872, 5873, 2143, 2162, 2145, 5874,
+ 2147, 2148, 2149, 5875, 5876, 5877, 5878, 5879,
+ 5880, 5881, 2153, 5882, 5883, 5884, 5885, 2158,
+ 5886, 2138, 2140, 2168, 2177, 5887, 2144, 5888,
+ 5889, 2163, 5890, 5891, 5892, 5893, 5894, 5895,
+ 5896, 5897, 5898, 5899, 5900, 5869, 2157, 2132,
+ 5870, 2159, 2160, 5871, 2139, 2142, 5872, 5873,
+ 2143, 2162, 2145, 5874, 2147, 2148, 2149, 5875,
+ 5876, 5877, 5878, 5879, 5880, 5881, 2153, 5882,
+ 5883, 5884, 5885, 2158, 5886, 2138, 2140, 2168,
+ 2177, 5887, 2144, 5888, 5889, 2163, 5890, 5891,
+ 5892, 5893, 5894, 5895, 5896, 5897, 5898, 5899,
+ 5900, 5901, 5902, 5903, 2175, 5904, 5905, 5906,
+ 5907, 5908, 5909, 5910, 5911, 5912, 5913, 5914,
+ 5915, 5916, 5917, 5918, 5919, 5920, 5921, 5922,
+ 5923, 5924, 5925, 5926, 5927, 5928, 2176, 5929,
+ 5930, 5931, 5950, 5932, 5933, 5934, 5935, 5936,
+ 5937, 5938, 5939, 5940, 5941, 5942, 5943, 5944,
+ 5945, 5946, 5947, 5948, 5949, 5901, 5902, 5903,
+ 2175, 5904, 5905, 5906, 5907, 5908, 5909, 5910,
+ 5911, 5912, 5913, 5914, 5915, 5916, 5917, 5918,
+ 5919, 5920, 5921, 5922, 5923, 5924, 5925, 5926,
+ 5927, 5928, 2176, 5929, 5930, 5931, 5950, 5932,
+ 5933, 5934, 5935, 5936, 5937, 5938, 5939, 5940,
+ 5941, 5942, 5943, 5944, 5945, 5946, 5947, 5948,
+ 5949, 5901, 5902, 5903, 2175, 5904, 5905, 5906,
+ 5907, 5908, 5909, 5910, 5911, 5912, 5913, 5914,
+ 5915, 5916, 5917, 5918, 5919, 5920, 5921, 5922,
+ 5923, 5924, 5925, 5926, 5927, 5928, 2176, 5929,
+ 5930, 5931, 5950, 5932, 5933, 5934, 5935, 5936,
+ 5937, 5938, 5939, 5940, 5941, 5942, 5943, 5944,
+ 5945, 5946, 5947, 5948, 5949, 5951, 5952, 0,
+ 0, 5953, 5954, 2172, 5955, 5956, 5957, 5958,
+ 5959, 5960, 5961, 5962, 5963, 5964, 5965, 5966,
+ 5967, 5968, 5969, 5970, 5971, 5972, 5973, 5974,
+ 5975, 5976, 5977, 5978, 5979, 5980, 5981, 5982,
+ 5983, 5984, 5985, 5986, 5987, 5988, 5989, 5990,
+ 5991, 5992, 5993, 5994, 5995, 5996, 5997, 5998,
+ 5999, 6000, 6001, 6002, 6003, 6004, 6005, 6006,
+ 6007, 6008, 6009, 6010, 6011, 6012, 6013, 6014,
+ 6015, 6016, 6017, 6018, 6019, 6020, 6021, 6022,
+ 6023, 6024, 2173, 6025, 6026, 6027, 6028, 6029,
+ 6030, 6031, 6032, 6033, 6034, 6035, 6036, 2171,
+ 6037, 6038, 6039, 6040, 6041, 6042, 6043, 6044,
+ 6045, 6046, 6047, 6048, 2170, 6049, 6050, 6051,
+ 6052, 6053, 6054, 6055, 6056, 6057, 6058, 6059,
+ 6005, 6060, 6061, 6062, 6063, 6010, 6011, 6012,
+ 6013, 6014, 6015, 6016, 6017, 6018, 6019, 6020,
+ 6021, 6022, 6023, 6024, 2173, 6025, 6026, 6027,
+ 6028, 6029, 6030, 6031, 6032, 6033, 6034, 6035,
+ 6036, 2171, 6037, 6038, 6039, 6040, 6041, 6042,
+ 6043, 6044, 6045, 6046, 6047, 6048, 2170, 6049,
+ 6050, 6051, 6052, 6053, 6054, 6055, 6056, 6057,
+ 6058, 6059, 6064, 6060, 6061, 6062, 6063, 5953,
+ 5954, 2172, 5955, 5956, 5957, 5958, 5959, 5960,
+ 5961, 5962, 5963, 5964, 5965, 5966, 5967, 5968,
+ 5969, 5970, 5971, 5972, 5973, 5974, 5975, 5976,
+ 5977, 5978, 5979, 5980, 5981, 5982, 5983, 5984,
+ 5985, 5986, 5987, 5988, 5989, 5990, 5991, 5992,
+ 5993, 5994, 5995, 5996, 5997, 5998, 5999, 6000,
+ 6001, 6002, 6003, 6004, 6005, 6006, 6007, 6008,
+ 6009, 6010, 6011, 6012, 6013, 6014, 6015, 6016,
+ 6017, 6018, 6019, 6020, 6021, 6022, 6023, 6024,
+ 2173, 6025, 6026, 6027, 6028, 6029, 6030, 6031,
+ 6032, 6033, 6034, 6035, 6036, 2171, 6037, 6038,
+ 6039, 6040, 6041, 6042, 6043, 6044, 6045, 6046,
+ 6047, 6048, 2170, 6049, 6050, 6051, 6052, 6053,
+ 6054, 6055, 6056, 6057, 6058, 6059, 6064, 6060,
+ 6061, 6062, 6063, 6065, 6066, 0, 0, 6067,
+ 6068, 6069, 6070, 6071, 6072, 6073, 6074, 6075,
+ 6076, 6067, 6068, 6069, 6070, 6071, 6072, 6073,
+ 6074, 6075, 6076, 6067, 6068, 6069, 6070, 6071,
+ 6072, 6073, 6074, 6075, 6076, 6067, 6068, 6069,
+ 6070, 6071, 6072, 6073, 6074, 6075, 6076, 6077,
+ 6078, 6079, 6080, 6081, 6082, 6083, 6084, 6085,
+ 6086, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+ 838, 838, 838, 838, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1153, 1153, 1153, 1153, 838, 838,
+ 838, 838, 838, 838, 838, 838, 1153, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 1153, 838, 838,
+ 1044, 1044, 1044, 1044, 1044, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1153, 1153, 1153, 1153,
+ 1153, 0, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
+ 1153, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 540, 540, 540, 540, 540, 540, 540,
+ 0, 540, 540, 540, 540, 540, 540, 540,
+ 540, 540, 540, 540, 540, 540, 540, 540,
+ 540, 540, 0, 0, 540, 540, 540, 540,
+ 540, 540, 540, 0, 540, 540, 0, 540,
+ 540, 540, 540, 540, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1156, 1156, 1156, 1156, 1106, 1106, 1106, 1106,
+ 1106, 1156, 1156, 1106, 1106, 1106, 1106, 1106,
+ 1156, 1106, 1156, 1106, 1106, 1106, 1156, 1106,
+ 1156, 1156, 1106, 1106, 1106, 1106, 1156, 1106,
+ 1106, 1106, 1156, 1156, 1106, 1156, 1156, 1156,
+ 1156, 1156, 1156, 1156, 1106, 1106, 1156, 1156,
+ 1156, 1156, 1156, 1106, 1156, 1106, 1106, 1106,
+ 1106, 1106, 1156, 1156, 1106, 1106, 1106, 1106,
+ 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1106, 1156, 1156, 1106, 1106, 1106, 1106, 1156,
+ 1156, 1156, 1156, 1106, 1156, 1156, 1156, 1156,
+ 1106, 1156, 1156, 1106, 1156, 1106, 1156, 1106,
+ 1156, 1156, 1106, 1106, 1106, 1106, 1106, 1156,
+ 1156, 1156, 1106, 1156, 1106, 1156, 1106, 1156,
+ 1156, 1156, 1156, 1106, 1156, 1156, 1156, 1156,
+ 1156, 1156, 1106, 1156, 1156, 1156, 1156, 1156,
+ 1156, 1106, 1106, 1156, 1156, 1156, 1106, 1106,
+ 1156, 1156, 1156, 1156, 1106, 1156, 1156, 1106,
+ 1156, 1156, 1156, 1156, 1106, 1156, 1156, 1106,
+ 1156, 1156, 1106, 1156, 1156, 1156, 1106, 1156,
+ 1156, 1156, 1156, 1106, 1106, 1156, 1156, 1106,
+ 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1106,
+ 1156, 1156, 1156, 1156, 1156, 1156, 0, 0,
+ 5642, 5642, 5642, 5642, 5642, 5642, 5642, 5642,
+ 5642, 553, 553, 553, 553, 553, 553, 553,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 6087, 6088, 6089, 6090, 6091, 6092, 6093,
+ 6094, 6095, 6096, 6097, 6098, 6099, 6100, 6101,
+ 6102, 6103, 6104, 6105, 6106, 6107, 6108, 6109,
+ 6110, 6111, 6112, 6113, 6114, 6115, 6116, 6117,
+ 6118, 6119, 6120, 6121, 6122, 6123, 6124, 6125,
+ 6126, 6127, 6128, 6129, 6130, 6131, 6132, 6133,
+ 6134, 6135, 6136, 6137, 6138, 6139, 6140, 6141,
+ 6142, 6143, 6144, 6145, 6146, 6147, 6148, 6149,
+ 6150, 6151, 6152, 6153, 6154, 540, 540, 540,
+ 540, 540, 540, 1180, 0, 0, 0, 0,
+ 0, 1154, 1154, 1154, 1154, 1154, 1154, 1154,
+ 1154, 1154, 1154, 0, 0, 0, 0, 1103,
+ 1103, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 6155, 6156, 6157, 6158, 0, 6159, 6160,
+ 6161, 6162, 6163, 6164, 6165, 6166, 6167, 6168,
+ 6169, 6170, 6171, 6172, 6173, 6174, 6175, 6176,
+ 6177, 6178, 6179, 6180, 6181, 6182, 6183, 6184,
+ 6185, 0, 6156, 6157, 0, 6186, 0, 0,
+ 6161, 0, 6163, 6164, 6165, 6166, 6167, 6168,
+ 6169, 6170, 6171, 6172, 0, 6174, 6175, 6176,
+ 6177, 0, 6179, 0, 6181, 0, 0, 0,
+ 0, 0, 0, 6157, 0, 0, 0, 0,
+ 6161, 0, 6163, 0, 6165, 0, 6167, 6168,
+ 6169, 0, 6171, 6172, 0, 6174, 0, 0,
+ 6177, 0, 6179, 0, 6181, 0, 6183, 0,
+ 6185, 0, 6156, 6157, 0, 6187, 0, 0,
+ 6161, 6162, 6163, 6164, 0, 6166, 6167, 6168,
+ 6169, 6170, 6171, 6172, 0, 6174, 6175, 6176,
+ 6177, 0, 6179, 6180, 6181, 6182, 0, 6184,
+ 0, 6155, 6156, 6157, 6158, 6187, 6159, 6160,
+ 6161, 6162, 6163, 0, 6165, 6166, 6167, 6168,
+ 6169, 6170, 6171, 6172, 6173, 6174, 6175, 6176,
+ 6177, 6178, 6179, 6180, 6181, 0, 0, 0,
+ 0, 0, 6188, 6189, 6190, 0, 6191, 6192,
+ 6193, 6194, 6195, 0, 6196, 6197, 6198, 6199,
+ 6200, 6201, 6202, 6203, 6204, 6205, 6206, 6207,
+ 6208, 6209, 6210, 6211, 6212, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1109, 1109, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 0, 0, 0,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 0, 0, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 0, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 0, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 6213, 6214, 6215, 6216, 6217, 6218, 6219,
+ 6220, 6221, 6222, 6223, 1220, 1220, 0, 0,
+ 0, 6224, 6225, 6226, 6227, 6228, 6229, 6230,
+ 6231, 6232, 6233, 6234, 6235, 6236, 6237, 6238,
+ 6239, 6240, 6241, 6242, 6243, 6244, 6245, 6246,
+ 6247, 6248, 6249, 6250, 6251, 6252, 6253, 6254,
+ 0, 6255, 6256, 6257, 6258, 6259, 6260, 6261,
+ 6262, 6263, 6264, 6265, 6266, 6267, 6268, 6269,
+ 6270, 6271, 6272, 6273, 6274, 6275, 6276, 6277,
+ 6278, 6279, 6280, 6281, 3613, 6282, 6283, 6284,
+ 6285, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 1191, 6286, 6287, 0, 0, 0,
+ 0, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 6288, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1191, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 6289,
+ 6289, 6289, 6289, 6289, 6289, 6289, 6289, 6289,
+ 6289, 6289, 6289, 6289, 6289, 6289, 6289, 6289,
+ 6289, 6289, 6289, 6289, 6289, 6289, 6289, 6289,
+ 6289, 6290, 6291, 6292, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 6293, 6294, 6295, 6296, 6297, 6298, 6299,
+ 6300, 6301, 6302, 6303, 6304, 6305, 6306, 6307,
+ 6308, 6309, 6310, 6311, 6312, 6313, 6314, 6315,
+ 6316, 6317, 6318, 6319, 6320, 6321, 6322, 6323,
+ 6324, 6325, 6326, 6327, 6328, 6329, 6330, 6331,
+ 6332, 6333, 6334, 6335, 6336, 0, 0, 0,
+ 0, 6337, 6338, 6339, 6340, 6341, 6342, 6343,
+ 6344, 6345, 0, 0, 0, 0, 0, 0,
+ 0, 6346, 6347, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 2464, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 2464, 2464, 1085, 1085,
+ 1085, 1085, 1085, 2464, 2464, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 6348, 6348, 6348, 6348,
+ 6348, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 2464, 2464, 1085, 1085, 2464,
+ 2464, 2464, 2464, 2464, 2464, 2464, 2464, 2464,
+ 2464, 2464, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 6349,
+ 6349, 6349, 6349, 1085, 1085, 1085, 1085, 2464,
+ 1085, 2464, 2464, 2464, 2464, 2464, 2464, 2464,
+ 2464, 2464, 1085, 1085, 1085, 2464, 1085, 1085,
+ 1085, 1085, 2464, 2464, 2464, 1085, 2464, 2464,
+ 2464, 1085, 1085, 1085, 2465, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 2464, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 2464, 1085,
+ 1085, 1085, 1085, 2464, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 2464, 1085, 1085, 1085, 1085, 2464, 2464,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 77, 2465, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 2464, 2464,
+ 2464, 1085, 1085, 1085, 2464, 2464, 2464, 2464,
+ 2464, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 77,
+ 77, 77, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 2464, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 2464, 2464, 2464,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 2464, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 0, 0,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 77, 77, 1085, 77, 77,
+ 77, 1085, 1085, 1085, 1085, 77, 77, 77,
+ 1085, 1085, 77, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 77, 1085, 77, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1085, 1085, 1085, 1085, 77, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 77, 77, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 77, 77, 77, 1085, 1085, 1085, 77, 77,
+ 77, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 0, 0, 0,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 77, 77, 77, 77, 77, 77, 77,
+ 77, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 0, 0, 0, 0, 0,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 0, 0, 0, 0, 0, 0, 0,
+ 0, 77, 77, 77, 77, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 77, 77, 77,
+ 77, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 77, 77, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 2464, 2464, 2464, 2464, 2464, 2464, 2464,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 2464,
+ 1085, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2464, 0, 0, 2464, 2464, 2464, 2464,
+ 2464, 2464, 2464, 1085, 1085, 2464, 2464, 2464,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 0, 0, 0,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1085, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 0,
+ 0, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 6350, 6351, 6352, 6353, 6354, 4271, 6355,
+ 6356, 6357, 6358, 4272, 6359, 6360, 6361, 4273,
+ 6362, 6363, 6364, 6365, 6366, 6367, 6368, 6369,
+ 6370, 6371, 6372, 6373, 4331, 6374, 6375, 6376,
+ 6377, 6378, 6379, 6380, 6381, 6382, 4336, 4274,
+ 4275, 4337, 6383, 6384, 4082, 6385, 4276, 6386,
+ 6387, 6388, 6389, 6389, 6389, 6390, 6391, 6392,
+ 6393, 6394, 6395, 6396, 6397, 6398, 6399, 6400,
+ 6401, 6402, 6403, 6404, 6405, 6406, 6407, 6407,
+ 4339, 6408, 6409, 6410, 6411, 4278, 6412, 6413,
+ 6414, 4235, 6415, 6416, 6417, 6418, 6419, 6420,
+ 6421, 6422, 6423, 6424, 6425, 6426, 6427, 6428,
+ 6429, 6430, 6431, 6432, 6433, 6434, 6435, 6436,
+ 6437, 6438, 6439, 6440, 6440, 6441, 6442, 6443,
+ 4078, 6444, 6445, 6446, 6447, 6448, 6449, 6450,
+ 6451, 4283, 6452, 6453, 6454, 6455, 6456, 6457,
+ 6458, 6459, 6460, 6461, 6462, 6463, 6464, 6465,
+ 6466, 6467, 6468, 6469, 6470, 6471, 6472, 4024,
+ 6473, 6474, 6475, 6475, 6476, 6477, 6477, 6478,
+ 6479, 6480, 6481, 6482, 6483, 6484, 6485, 6486,
+ 6487, 6488, 6489, 6490, 4284, 6491, 6492, 6493,
+ 6494, 4351, 6494, 6495, 4286, 6496, 6497, 6498,
+ 6499, 4287, 3997, 6500, 6501, 6502, 6503, 6504,
+ 6505, 6506, 6507, 6508, 6509, 6510, 6511, 6512,
+ 6513, 6514, 6515, 6516, 6517, 6518, 6519, 6520,
+ 6521, 4288, 6522, 6523, 6524, 6525, 6526, 6527,
+ 4290, 6528, 6529, 6530, 6531, 6532, 6533, 6534,
+ 6535, 4025, 4359, 6536, 6537, 6538, 6539, 6540,
+ 6541, 6542, 6543, 4291, 6544, 6545, 6546, 6547,
+ 4402, 6548, 6549, 6550, 6551, 6552, 6553, 6554,
+ 6555, 6556, 6557, 6558, 6559, 6560, 4095, 6561,
+ 6562, 6563, 6564, 6565, 6566, 6567, 6568, 6569,
+ 6570, 6571, 4292, 4182, 6572, 6573, 6574, 6575,
+ 6576, 6577, 6578, 6579, 4363, 6580, 6581, 6582,
+ 6583, 6584, 6585, 6586, 6587, 4364, 6588, 6589,
+ 6590, 6591, 6592, 6593, 6594, 6595, 6596, 6597,
+ 6598, 6599, 4366, 6600, 6601, 6602, 6603, 6604,
+ 6605, 6606, 6607, 6608, 6609, 6610, 6610, 6611,
+ 6612, 4368, 6613, 6614, 6615, 6616, 6617, 6618,
+ 6619, 4081, 6620, 6621, 6622, 6623, 6624, 6625,
+ 6626, 4374, 6627, 6628, 6629, 6630, 6631, 6632,
+ 6632, 4375, 4404, 6633, 6634, 6635, 6636, 6637,
+ 4043, 4377, 6638, 6639, 4303, 6640, 6641, 4257,
+ 6642, 6643, 4307, 6644, 6645, 6646, 6647, 6647,
+ 6648, 6649, 6650, 6651, 6652, 6653, 6654, 6655,
+ 6656, 6657, 6658, 6659, 6660, 6661, 6662, 6663,
+ 6664, 6665, 6666, 6667, 6668, 6669, 6670, 6671,
+ 6672, 6673, 6674, 4313, 6675, 6676, 6677, 6678,
+ 6679, 6680, 6681, 6682, 6683, 6684, 6685, 6686,
+ 6687, 6688, 6689, 6690, 6476, 6691, 6692, 6693,
+ 6694, 6695, 6696, 6697, 6698, 6699, 6700, 6701,
+ 6702, 4099, 6703, 6704, 6705, 6706, 6707, 6708,
+ 4316, 6709, 6710, 6711, 6712, 6713, 6714, 6715,
+ 6716, 6717, 6718, 6719, 6720, 6721, 6722, 6723,
+ 6724, 6725, 6726, 6727, 6728, 4038, 6729, 6730,
+ 6731, 6732, 6733, 6734, 4384, 6735, 6736, 6737,
+ 6738, 6739, 6740, 6741, 6742, 6743, 6744, 6745,
+ 6746, 6747, 6748, 6749, 6750, 6751, 6752, 6753,
+ 6754, 4389, 4390, 6755, 6756, 6757, 6758, 6759,
+ 6760, 6761, 6762, 6763, 6764, 6765, 6766, 6767,
+ 4391, 6768, 6769, 6770, 6771, 6772, 6773, 6774,
+ 6775, 6776, 6777, 6778, 6779, 6780, 6781, 6782,
+ 6783, 6784, 6785, 6786, 6787, 6788, 6789, 6790,
+ 6791, 6792, 6793, 6794, 6795, 6796, 6797, 4397,
+ 4397, 6798, 6799, 6800, 6801, 6802, 6803, 6804,
+ 6805, 6806, 6807, 4398, 6808, 6809, 6810, 6811,
+ 6812, 6813, 6814, 6815, 6816, 6817, 6818, 6819,
+ 6820, 6821, 6822, 6823, 6824, 6825, 6826, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 81, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
+ 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
+ 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
+ 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
+ 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
+ 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
+ 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
+ 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
+ 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
+ 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
+ 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
+ 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
+ 2053, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 574, 574, 574, 574, 574, 574, 574,
+ 574, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 3984,
+ 3984, 3984, 3984, 3984, 3984, 3984, 3984, 0,
0, };
UTF8PROC_DATA
@@ -13426,966 +13426,966 @@ const utf8proc_property_t utf8proc_properties[] = {
UTF8PROC_DATA
const utf8proc_uint16_t utf8proc_combinations[] = {
- 0, 46, 192, 193, 194, 195, 196, 197, 0,
- 256, 258, 260, 550, 461, 0, 0, 512,
- 514, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 7680, 7840, 0, 0, 0, 0, 0, 7842,
-1, 11,
- 262, 264, 0, 0, 0, 199, 0, 0,
- 0, 266, 268,
-0, 46, 200, 201, 202, 7868, 203,
- 0, 552, 274, 276, 280, 278, 282, 0,
- 0, 516, 518, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7864, 0, 7704, 7706, 0,
- 0, 7866,
-0, 46, 204, 205, 206, 296, 207, 0,
- 0, 298, 300, 302, 304, 463, 0, 0,
- 520, 522, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 7882, 0, 0, 7724, 0, 0,
- 7880,
-0, 42, 504, 323, 0, 209, 0, 0, 325,
- 0, 0, 0, 7748, 327, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 7750, 7752, 7754,
-0, 46, 210, 211, 212, 213,
- 214, 0, 0, 332, 334, 490, 558, 465,
- 336, 416, 524, 526, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 7884, 0, 0, 0,
- 0, 0, 7886,
-0, 46, 217, 218, 219, 360, 220,
- 366, 0, 362, 364, 370, 0, 467, 368,
- 431, 532, 534, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7908, 0, 7798, 7796, 0,
- 7794, 7910,
-0, 46, 7922, 221, 374, 7928, 376, 0,
- 0, 562, 0, 0, 7822, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 7924, 0, 0, 0, 0, 0,
- 7926,
-0, 46, 224, 225, 226, 227, 228, 229, 0,
- 257, 259, 261, 551, 462, 0, 0, 513,
- 515, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 7681, 7841, 0, 0, 0, 0, 0, 7843,
-1, 11,
- 263, 265, 0, 0, 0, 231, 0, 0,
- 0, 267, 269,
-0, 46, 232, 233, 234, 7869, 235,
- 0, 553, 275, 277, 281, 279, 283, 0,
- 0, 517, 519, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7865, 0, 7705, 7707, 0,
- 0, 7867,
-0, 46, 236, 237, 238, 297, 239, 0,
- 0, 299, 301, 303, 0, 464, 0, 0,
- 521, 523, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 7883, 0, 0, 7725, 0, 0,
- 7881,
-0, 42, 505, 324, 0, 241, 0, 0, 326,
- 0, 0, 0, 7749, 328, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 7751, 7753, 7755,
-0, 46, 242, 243, 244, 245,
- 246, 0, 0, 333, 335, 491, 559, 466,
- 337, 417, 525, 527, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 7885, 0, 0, 0,
- 0, 0, 7887,
-0, 46, 249, 250, 251, 361, 252,
- 367, 0, 363, 365, 371, 0, 468, 369,
- 432, 533, 535, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7909, 0, 7799, 7797, 0,
- 7795, 7911,
-0, 46, 7923, 253, 375, 7929, 255, 7833,
- 0, 563, 0, 0, 7823, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 7925, 0, 0, 0, 0, 0,
- 7927,
-6, 42, 7696, 0, 0, 0, 7690, 270, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7692, 7694, 7698,
-6, 42, 7697, 0,
- 0, 0, 7691, 271, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 7693, 7695, 7699,
-1, 11, 500, 284, 0, 0, 0,
- 290, 7712, 286, 0, 288, 486,
-1, 11, 501, 285,
- 0, 0, 0, 291, 7713, 287, 0, 289,
- 487,
-2, 44, 292, 0, 7718, 0, 7720, 0, 0,
- 0, 7714, 542, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7716,
- 0, 0, 0, 7722,
-2, 44, 293, 0, 7719, 0,
- 7721, 0, 0, 0, 7715, 543, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 7717, 7830, 0, 0, 7723,
-2, 2, 308,
-2, 11,
- 309, 0, 0, 0, 0, 0, 0, 0,
- 0, 496,
-1, 41, 7728, 0, 0, 0, 0, 310,
- 0, 0, 0, 0, 488, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 7730, 7732,
-1, 41, 7729, 0, 0, 0, 0,
- 311, 0, 0, 0, 0, 489, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 7731, 7733,
-1, 42, 313, 0, 0, 0,
- 0, 315, 0, 0, 0, 0, 317, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7734, 7738, 7740,
-1, 42, 314, 0,
- 0, 0, 0, 316, 0, 0, 0, 0,
- 318, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 7735, 7739, 7741,
-1, 41,
- 340, 0, 0, 0, 0, 342, 0, 0,
- 0, 7768, 344, 0, 0, 528, 530, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7770,
- 7774,
-1, 41, 341, 0, 0, 0, 0, 343, 0,
- 0, 0, 7769, 345, 0, 0, 529, 531,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 7771, 7775,
-1, 40, 346, 348, 0, 0, 0, 350,
- 0, 0, 0, 7776, 352, 0, 0, 0,
- 0, 536, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 7778,
-1, 40, 347, 349, 0, 0, 0, 351,
- 0, 0, 0, 7777, 353, 0, 0, 0,
- 0, 537, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 7779,
-6, 42, 354, 0, 0, 0, 7786, 356,
- 0, 0, 0, 0, 538, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 7788, 7790, 7792,
-4, 42, 7831,
- 0, 355, 0, 0, 0, 7787, 357, 0,
- 0, 0, 0, 539, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7789, 7791, 7793,
-0, 40, 7808, 7810,
- 372, 0, 7812, 0, 0, 0, 0, 0,
- 7814, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7816,
-0, 40, 7809,
- 7811, 373, 0, 7813, 7832, 0, 0, 0,
- 0, 7815, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7817,
-1, 41,
- 377, 7824, 0, 0, 0, 0, 0, 0,
- 0, 379, 381, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7826,
- 7828,
-1, 41, 378, 7825, 0, 0, 0, 0, 0,
- 0, 0, 380, 382, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 7827, 7829,
-0, 11, 475, 471, 0, 0, 0, 0,
- 0, 469, 0, 0, 0, 473,
-0, 11, 476, 472,
- 0, 0, 0, 0, 0, 470, 0, 0,
- 0, 474,
-7, 7, 478,
-7, 7, 479,
-7, 7, 480,
-7, 7, 481,
-1, 7, 508, 0,
- 0, 0, 0, 0, 482,
-1, 7, 509, 0, 0,
- 0, 0, 0, 483,
-7, 7, 492,
-7, 7, 493,
-11, 11, 494,
-11, 11, 495,
-1, 1,
- 506,
-1, 1, 507,
-1, 1, 510,
-1, 1, 511,
-7, 7, 554,
-7, 7, 555,
-1, 7, 7756, 0,
- 0, 7758, 0, 0, 556,
-1, 7, 7757, 0, 0,
- 7759, 0, 0, 557,
-7, 7, 560,
-7, 7, 561,
-0, 49, 8173, 901,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 8129,
-0, 50,
- 8122, 902, 0, 0, 0, 0, 0, 8121,
- 8120, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7944,
- 7945, 0, 8124,
-0, 48, 8136, 904, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 7960, 7961,
-0, 50, 8138, 905, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7976, 7977, 0, 8140,
-0, 48, 8154,
- 906, 0, 0, 938, 0, 0, 8153, 8152,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7992, 7993,
-0, 48,
- 8184, 908, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 8008,
- 8009,
-0, 48, 8170, 910, 0, 0, 939, 0, 0,
- 8169, 8168, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 8025,
-0, 50, 8186, 911, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 8040, 8041, 0, 8188,
-0, 49, 8146, 912, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 8151,
-0, 50, 8048,
- 940, 0, 0, 0, 0, 0, 8113, 8112,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7936, 7937,
- 8118, 8115,
-0, 48, 8050, 941, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 7952, 7953,
-0, 50, 8052, 942, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 7968, 7969, 8134, 8131,
-0, 49, 8054, 943,
- 0, 0, 970, 0, 0, 8145, 8144, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 7984, 7985, 8150,
-0, 49,
- 8162, 944, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 8167,
-0, 49, 8058, 973, 0, 0, 971, 0,
- 0, 8161, 8160, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 8016, 8017, 8166,
-0, 48, 8056, 972, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 8000, 8001,
-0, 50, 8060, 974, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 8032, 8033, 8182, 8179,
-1, 4,
- 979, 0, 0, 980,
-0, 8, 1024, 0, 0, 0,
- 1025, 0, 0, 0, 1238,
-1, 1, 1027,
-4, 4, 1031,
-1, 1, 1036,
-0, 8,
- 1037, 0, 0, 0, 1252, 0, 0, 1250,
- 1049,
-4, 12, 1264, 0, 0, 1262, 1038, 0, 0,
- 0, 1266,
-0, 8, 1117, 0, 0, 0, 1253, 0,
- 0, 1251, 1081,
-0, 8, 1104, 0, 0, 0, 1105,
- 0, 0, 0, 1239,
-1, 1, 1107,
-4, 4, 1111,
-1, 1, 1116,
-4, 12, 1265,
- 0, 0, 1263, 1118, 0, 0, 0, 1267,
-14, 14,
- 1142,
-14, 14, 1143,
-4, 8, 1244, 0, 0, 0, 1217,
-4, 8, 1245,
- 0, 0, 0, 1218,
-4, 8, 1234, 0, 0, 0,
- 1232,
-4, 8, 1235, 0, 0, 0, 1233,
-4, 4, 1242,
-4, 4, 1243,
-4, 4,
- 1246,
-4, 4, 1247,
-4, 4, 1254,
-4, 4, 1255,
-4, 4, 1258,
-4, 4, 1259,
-4, 4, 1260,
-4, 4, 1261,
-4, 4,
- 1268,
-4, 4, 1269,
-4, 4, 1272,
-4, 4, 1273,
-17, 19, 1570, 1571, 1573,
-18, 18, 1572,
-18, 18,
- 1574,
-18, 18, 1728,
-18, 18, 1730,
-18, 18, 1747,
-20, 20, 2345,
-20, 20, 2353,
-20, 20, 2356,
-21, 22, 2507,
- 2508,
-23, 25, 2888, 2891, 2892,
-26, 26, 2964,
-26, 27, 3020, 3018,
-27, 27, 3019,
-28, 28,
- 3144,
-29, 29, 3264,
-29, 31, 3271, 3272, 3274,
-29, 29, 3275,
-32, 33, 3402, 3404,
-32, 32,
- 3403,
-34, 36, 3546, 3548, 3550,
-34, 34, 3549,
-37, 37, 4134,
-38, 38, 6918,
-38, 38, 6920,
-38, 38,
- 6922,
-38, 38, 6924,
-38, 38, 6926,
-38, 38, 6930,
-38, 38, 6971,
-38, 38, 6973,
-38, 38, 6976,
-38, 38, 6977,
-38, 38,
- 6979,
-10, 41, 7682, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7684,
- 7686,
-10, 41, 7683, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7685,
- 7687,
-1, 1, 7688,
-1, 1, 7689,
-0, 1, 7700, 7702,
-0, 1, 7701, 7703,
-8, 8, 7708,
-8, 8,
- 7709,
-10, 10, 7710,
-10, 10, 7711,
-1, 1, 7726,
-1, 1, 7727,
-7, 7, 7736,
-7, 7, 7737,
-1, 40, 7742,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 7744, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7746,
-1, 40, 7743,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 7745, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7747,
-0, 1, 7760,
- 7762,
-0, 1, 7761, 7763,
-1, 10, 7764, 0, 0, 0, 0,
- 0, 0, 0, 0, 7766,
-1, 10, 7765, 0, 0,
- 0, 0, 0, 0, 0, 0, 7767,
-7, 7, 7772,
-7, 7,
- 7773,
-10, 10, 7780,
-10, 10, 7781,
-10, 10, 7782,
-10, 10, 7783,
-10, 10, 7784,
-10, 10, 7785,
-1, 1, 7800,
-1, 1,
- 7801,
-4, 4, 7802,
-4, 4, 7803,
-3, 40, 7804, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 7806,
-3, 40, 7805, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7807,
-4, 10, 7820,
- 0, 0, 0, 0, 0, 7818,
-4, 10, 7821, 0,
- 0, 0, 0, 0, 7819,
-10, 10, 7835,
-0, 46, 7846, 7844,
- 0, 7850, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 7848,
-0, 46, 7847, 7845, 0,
- 7851, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7849,
-2, 8, 7852, 0, 0, 0,
- 0, 0, 7862,
-2, 8, 7853, 0, 0, 0, 0,
- 0, 7863,
-0, 46, 7856, 7854, 0, 7860, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 7858,
-0, 46, 7857, 7855, 0, 7861, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7859,
-0, 46,
- 7872, 7870, 0, 7876, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7874,
-0, 46, 7873,
- 7871, 0, 7877, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 7875,
-2, 2, 7878,
-2, 2, 7879,
-0, 46,
- 7890, 7888, 0, 7894, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7892,
-0, 46, 7891,
- 7889, 0, 7895, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 7893,
-2, 2, 7896,
-2, 2, 7897,
-0, 46,
- 7900, 7898, 0, 7904, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 7906, 0, 0, 0, 0, 0, 7902,
-0, 46, 7901,
- 7899, 0, 7905, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7907,
- 0, 0, 0, 0, 0, 7903,
-0, 46, 7914, 7912,
- 0, 7918, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7920, 0,
- 0, 0, 0, 0, 7916,
-0, 46, 7915, 7913, 0,
- 7919, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 7921, 0, 0,
- 0, 0, 0, 7917,
-0, 50, 7938, 7940, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 7942, 8064,
-0, 50, 7939,
- 7941, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 7943, 8065,
-0, 50, 7946, 7948, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7950, 8072,
-0, 50, 7947, 7949, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7951, 8073,
-0, 1,
- 7954, 7956,
-0, 1, 7955, 7957,
-0, 1, 7962, 7964,
-0, 1, 7963, 7965,
-0, 50,
- 7970, 7972, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 7974, 8080,
-0, 50, 7971, 7973, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 7975, 8081,
-0, 50, 7978, 7980,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7982,
- 8088,
-0, 50, 7979, 7981, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 7983, 8089,
-0, 49, 7986, 7988, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 7990,
-0, 49, 7987, 7989,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7991,
-0, 49,
- 7994, 7996, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 7998,
-0, 49, 7995, 7997, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 7999,
-0, 1, 8002, 8004,
-0, 1, 8003, 8005,
-0, 1,
- 8010, 8012,
-0, 1, 8011, 8013,
-0, 49, 8018, 8020, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 8022,
-0, 49, 8019, 8021,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 8023,
-0, 49,
- 8027, 8029, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 8031,
-0, 50, 8034, 8036, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 8038, 8096,
-0, 50, 8035, 8037, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 8039, 8097,
-0, 50,
- 8042, 8044, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 8046, 8104,
-0, 50, 8043, 8045, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 8047, 8105,
-50, 50, 8066,
-50, 50, 8067,
-50, 50,
- 8068,
-50, 50, 8069,
-50, 50, 8070,
-50, 50, 8071,
-50, 50, 8074,
-50, 50, 8075,
-50, 50, 8076,
-50, 50, 8077,
-50, 50,
- 8078,
-50, 50, 8079,
-50, 50, 8082,
-50, 50, 8083,
-50, 50, 8084,
-50, 50, 8085,
-50, 50, 8086,
-50, 50, 8087,
-50, 50,
- 8090,
-50, 50, 8091,
-50, 50, 8092,
-50, 50, 8093,
-50, 50, 8094,
-50, 50, 8095,
-50, 50, 8098,
-50, 50, 8099,
-50, 50,
- 8100,
-50, 50, 8101,
-50, 50, 8102,
-50, 50, 8103,
-50, 50, 8106,
-50, 50, 8107,
-50, 50, 8108,
-50, 50, 8109,
-50, 50,
- 8110,
-50, 50, 8111,
-50, 50, 8114,
-50, 50, 8116,
-50, 50, 8119,
-50, 50, 8130,
-50, 50, 8132,
-50, 50, 8135,
-0, 49,
- 8141, 8142, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 8143,
-0, 49, 8157, 8158, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 8159,
-47, 48, 8164, 8165,
-48, 48, 8172,
-50, 50, 8178,
-50, 50,
- 8180,
-50, 50, 8183,
-51, 51, 8602,
-51, 51, 8603,
-51, 51, 8622,
-51, 51, 8653,
-51, 51, 8654,
-51, 51, 8655,
-51, 51,
- 8708,
-51, 51, 8713,
-51, 51, 8716,
-51, 51, 8740,
-51, 51, 8742,
-51, 51, 8769,
-51, 51, 8772,
-51, 51, 8775,
-51, 51,
- 8777,
-51, 51, 8800,
-51, 51, 8802,
-51, 51, 8813,
-51, 51, 8814,
-51, 51, 8815,
-51, 51, 8816,
-51, 51, 8817,
-51, 51,
- 8820,
-51, 51, 8821,
-51, 51, 8824,
-51, 51, 8825,
-51, 51, 8832,
-51, 51, 8833,
-51, 51, 8836,
-51, 51, 8837,
-51, 51,
- 8840,
-51, 51, 8841,
-51, 51, 8876,
-51, 51, 8877,
-51, 51, 8878,
-51, 51, 8879,
-51, 51, 8928,
-51, 51, 8929,
-51, 51,
- 8930,
-51, 51, 8931,
-51, 51, 8938,
-51, 51, 8939,
-51, 51, 8940,
-51, 51, 8941,
-51, 51, 10972,
-52, 52, 12364,
-52, 52,
- 12366,
-52, 52, 12368,
-52, 52, 12370,
-52, 52, 12372,
-52, 52, 12374,
-52, 52, 12376,
-52, 52, 12378,
-52, 52, 12380,
-52, 52,
- 12382,
-52, 52, 12384,
-52, 52, 12386,
-52, 52, 12389,
-52, 52, 12391,
-52, 52, 12393,
-52, 53, 12400, 12401,
-52, 53,
- 12403, 12404,
-52, 53, 12406, 12407,
-52, 53, 12409, 12410,
-52, 53, 12412, 12413,
-52, 52,
- 12436,
-52, 52, 12446,
-52, 52, 12460,
-52, 52, 12462,
-52, 52, 12464,
-52, 52, 12466,
-52, 52, 12468,
-52, 52, 12470,
-52, 52,
- 12472,
-52, 52, 12474,
-52, 52, 12476,
-52, 52, 12478,
-52, 52, 12480,
-52, 52, 12482,
-52, 52, 12485,
-52, 52, 12487,
-52, 52,
- 12489,
-52, 53, 12496, 12497,
-52, 53, 12499, 12500,
-52, 53, 12502, 12503,
-52, 53, 12505,
- 12506,
-52, 53, 12508, 12509,
-52, 52, 12532,
-52, 52, 12535,
-52, 52, 12536,
-52, 52, 12537,
-52, 52, 12538,
-52, 52,
- 12542,
-54, 55, 1, 4250,
-54, 55, 1, 4252,
-54, 55, 1, 4267,
-56, 57, 1, 4398,
-56, 57, 1, 4399,
-58, 61, 1, 4939, 1, 4940,
-62, 67,
- 1, 5307, 1, 5308, 1, 5310,
-68, 69, 1, 5562,
-68, 69, 1, 5563,
-70, 71, 1, 53598,
-70, 71, 1, 53599,
-72, 81, 1, 53600,
- 1, 53601, 1, 53602, 1, 53603, 1, 53604,
-70, 71, 1, 53691,
-70, 71, 1, 53692,
-72, 75, 1, 53693, 1, 53695,
-72, 75,
- 1, 53694, 1, 53696,
+ 0, 46, 192, 193, 194, 195, 196, 197, 0,
+ 256, 258, 260, 550, 461, 0, 0, 512,
+ 514, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 7680, 7840, 0, 0, 0, 0, 0, 7842,
+1, 11,
+ 262, 264, 0, 0, 0, 199, 0, 0,
+ 0, 266, 268,
+0, 46, 200, 201, 202, 7868, 203,
+ 0, 552, 274, 276, 280, 278, 282, 0,
+ 0, 516, 518, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 7864, 0, 7704, 7706, 0,
+ 0, 7866,
+0, 46, 204, 205, 206, 296, 207, 0,
+ 0, 298, 300, 302, 304, 463, 0, 0,
+ 520, 522, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 7882, 0, 0, 7724, 0, 0,
+ 7880,
+0, 42, 504, 323, 0, 209, 0, 0, 325,
+ 0, 0, 0, 7748, 327, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 7750, 7752, 7754,
+0, 46, 210, 211, 212, 213,
+ 214, 0, 0, 332, 334, 490, 558, 465,
+ 336, 416, 524, 526, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 7884, 0, 0, 0,
+ 0, 0, 7886,
+0, 46, 217, 218, 219, 360, 220,
+ 366, 0, 362, 364, 370, 0, 467, 368,
+ 431, 532, 534, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 7908, 0, 7798, 7796, 0,
+ 7794, 7910,
+0, 46, 7922, 221, 374, 7928, 376, 0,
+ 0, 562, 0, 0, 7822, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 7924, 0, 0, 0, 0, 0,
+ 7926,
+0, 46, 224, 225, 226, 227, 228, 229, 0,
+ 257, 259, 261, 551, 462, 0, 0, 513,
+ 515, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 7681, 7841, 0, 0, 0, 0, 0, 7843,
+1, 11,
+ 263, 265, 0, 0, 0, 231, 0, 0,
+ 0, 267, 269,
+0, 46, 232, 233, 234, 7869, 235,
+ 0, 553, 275, 277, 281, 279, 283, 0,
+ 0, 517, 519, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 7865, 0, 7705, 7707, 0,
+ 0, 7867,
+0, 46, 236, 237, 238, 297, 239, 0,
+ 0, 299, 301, 303, 0, 464, 0, 0,
+ 521, 523, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 7883, 0, 0, 7725, 0, 0,
+ 7881,
+0, 42, 505, 324, 0, 241, 0, 0, 326,
+ 0, 0, 0, 7749, 328, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 7751, 7753, 7755,
+0, 46, 242, 243, 244, 245,
+ 246, 0, 0, 333, 335, 491, 559, 466,
+ 337, 417, 525, 527, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 7885, 0, 0, 0,
+ 0, 0, 7887,
+0, 46, 249, 250, 251, 361, 252,
+ 367, 0, 363, 365, 371, 0, 468, 369,
+ 432, 533, 535, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 7909, 0, 7799, 7797, 0,
+ 7795, 7911,
+0, 46, 7923, 253, 375, 7929, 255, 7833,
+ 0, 563, 0, 0, 7823, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 7925, 0, 0, 0, 0, 0,
+ 7927,
+6, 42, 7696, 0, 0, 0, 7690, 270, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 7692, 7694, 7698,
+6, 42, 7697, 0,
+ 0, 0, 7691, 271, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 7693, 7695, 7699,
+1, 11, 500, 284, 0, 0, 0,
+ 290, 7712, 286, 0, 288, 486,
+1, 11, 501, 285,
+ 0, 0, 0, 291, 7713, 287, 0, 289,
+ 487,
+2, 44, 292, 0, 7718, 0, 7720, 0, 0,
+ 0, 7714, 542, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 7716,
+ 0, 0, 0, 7722,
+2, 44, 293, 0, 7719, 0,
+ 7721, 0, 0, 0, 7715, 543, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 7717, 7830, 0, 0, 7723,
+2, 2, 308,
+2, 11,
+ 309, 0, 0, 0, 0, 0, 0, 0,
+ 0, 496,
+1, 41, 7728, 0, 0, 0, 0, 310,
+ 0, 0, 0, 0, 488, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 7730, 7732,
+1, 41, 7729, 0, 0, 0, 0,
+ 311, 0, 0, 0, 0, 489, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 7731, 7733,
+1, 42, 313, 0, 0, 0,
+ 0, 315, 0, 0, 0, 0, 317, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 7734, 7738, 7740,
+1, 42, 314, 0,
+ 0, 0, 0, 316, 0, 0, 0, 0,
+ 318, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 7735, 7739, 7741,
+1, 41,
+ 340, 0, 0, 0, 0, 342, 0, 0,
+ 0, 7768, 344, 0, 0, 528, 530, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 7770,
+ 7774,
+1, 41, 341, 0, 0, 0, 0, 343, 0,
+ 0, 0, 7769, 345, 0, 0, 529, 531,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 7771, 7775,
+1, 40, 346, 348, 0, 0, 0, 350,
+ 0, 0, 0, 7776, 352, 0, 0, 0,
+ 0, 536, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 7778,
+1, 40, 347, 349, 0, 0, 0, 351,
+ 0, 0, 0, 7777, 353, 0, 0, 0,
+ 0, 537, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 7779,
+6, 42, 354, 0, 0, 0, 7786, 356,
+ 0, 0, 0, 0, 538, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 7788, 7790, 7792,
+4, 42, 7831,
+ 0, 355, 0, 0, 0, 7787, 357, 0,
+ 0, 0, 0, 539, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 7789, 7791, 7793,
+0, 40, 7808, 7810,
+ 372, 0, 7812, 0, 0, 0, 0, 0,
+ 7814, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 7816,
+0, 40, 7809,
+ 7811, 373, 0, 7813, 7832, 0, 0, 0,
+ 0, 7815, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 7817,
+1, 41,
+ 377, 7824, 0, 0, 0, 0, 0, 0,
+ 0, 379, 381, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 7826,
+ 7828,
+1, 41, 378, 7825, 0, 0, 0, 0, 0,
+ 0, 0, 380, 382, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 7827, 7829,
+0, 11, 475, 471, 0, 0, 0, 0,
+ 0, 469, 0, 0, 0, 473,
+0, 11, 476, 472,
+ 0, 0, 0, 0, 0, 470, 0, 0,
+ 0, 474,
+7, 7, 478,
+7, 7, 479,
+7, 7, 480,
+7, 7, 481,
+1, 7, 508, 0,
+ 0, 0, 0, 0, 482,
+1, 7, 509, 0, 0,
+ 0, 0, 0, 483,
+7, 7, 492,
+7, 7, 493,
+11, 11, 494,
+11, 11, 495,
+1, 1,
+ 506,
+1, 1, 507,
+1, 1, 510,
+1, 1, 511,
+7, 7, 554,
+7, 7, 555,
+1, 7, 7756, 0,
+ 0, 7758, 0, 0, 556,
+1, 7, 7757, 0, 0,
+ 7759, 0, 0, 557,
+7, 7, 560,
+7, 7, 561,
+0, 49, 8173, 901,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 8129,
+0, 50,
+ 8122, 902, 0, 0, 0, 0, 0, 8121,
+ 8120, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 7944,
+ 7945, 0, 8124,
+0, 48, 8136, 904, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 7960, 7961,
+0, 50, 8138, 905, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 7976, 7977, 0, 8140,
+0, 48, 8154,
+ 906, 0, 0, 938, 0, 0, 8153, 8152,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 7992, 7993,
+0, 48,
+ 8184, 908, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 8008,
+ 8009,
+0, 48, 8170, 910, 0, 0, 939, 0, 0,
+ 8169, 8168, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 8025,
+0, 50, 8186, 911, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 8040, 8041, 0, 8188,
+0, 49, 8146, 912, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 8151,
+0, 50, 8048,
+ 940, 0, 0, 0, 0, 0, 8113, 8112,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 7936, 7937,
+ 8118, 8115,
+0, 48, 8050, 941, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 7952, 7953,
+0, 50, 8052, 942, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 7968, 7969, 8134, 8131,
+0, 49, 8054, 943,
+ 0, 0, 970, 0, 0, 8145, 8144, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 7984, 7985, 8150,
+0, 49,
+ 8162, 944, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 8167,
+0, 49, 8058, 973, 0, 0, 971, 0,
+ 0, 8161, 8160, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 8016, 8017, 8166,
+0, 48, 8056, 972, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 8000, 8001,
+0, 50, 8060, 974, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 8032, 8033, 8182, 8179,
+1, 4,
+ 979, 0, 0, 980,
+0, 8, 1024, 0, 0, 0,
+ 1025, 0, 0, 0, 1238,
+1, 1, 1027,
+4, 4, 1031,
+1, 1, 1036,
+0, 8,
+ 1037, 0, 0, 0, 1252, 0, 0, 1250,
+ 1049,
+4, 12, 1264, 0, 0, 1262, 1038, 0, 0,
+ 0, 1266,
+0, 8, 1117, 0, 0, 0, 1253, 0,
+ 0, 1251, 1081,
+0, 8, 1104, 0, 0, 0, 1105,
+ 0, 0, 0, 1239,
+1, 1, 1107,
+4, 4, 1111,
+1, 1, 1116,
+4, 12, 1265,
+ 0, 0, 1263, 1118, 0, 0, 0, 1267,
+14, 14,
+ 1142,
+14, 14, 1143,
+4, 8, 1244, 0, 0, 0, 1217,
+4, 8, 1245,
+ 0, 0, 0, 1218,
+4, 8, 1234, 0, 0, 0,
+ 1232,
+4, 8, 1235, 0, 0, 0, 1233,
+4, 4, 1242,
+4, 4, 1243,
+4, 4,
+ 1246,
+4, 4, 1247,
+4, 4, 1254,
+4, 4, 1255,
+4, 4, 1258,
+4, 4, 1259,
+4, 4, 1260,
+4, 4, 1261,
+4, 4,
+ 1268,
+4, 4, 1269,
+4, 4, 1272,
+4, 4, 1273,
+17, 19, 1570, 1571, 1573,
+18, 18, 1572,
+18, 18,
+ 1574,
+18, 18, 1728,
+18, 18, 1730,
+18, 18, 1747,
+20, 20, 2345,
+20, 20, 2353,
+20, 20, 2356,
+21, 22, 2507,
+ 2508,
+23, 25, 2888, 2891, 2892,
+26, 26, 2964,
+26, 27, 3020, 3018,
+27, 27, 3019,
+28, 28,
+ 3144,
+29, 29, 3264,
+29, 31, 3271, 3272, 3274,
+29, 29, 3275,
+32, 33, 3402, 3404,
+32, 32,
+ 3403,
+34, 36, 3546, 3548, 3550,
+34, 34, 3549,
+37, 37, 4134,
+38, 38, 6918,
+38, 38, 6920,
+38, 38,
+ 6922,
+38, 38, 6924,
+38, 38, 6926,
+38, 38, 6930,
+38, 38, 6971,
+38, 38, 6973,
+38, 38, 6976,
+38, 38, 6977,
+38, 38,
+ 6979,
+10, 41, 7682, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 7684,
+ 7686,
+10, 41, 7683, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 7685,
+ 7687,
+1, 1, 7688,
+1, 1, 7689,
+0, 1, 7700, 7702,
+0, 1, 7701, 7703,
+8, 8, 7708,
+8, 8,
+ 7709,
+10, 10, 7710,
+10, 10, 7711,
+1, 1, 7726,
+1, 1, 7727,
+7, 7, 7736,
+7, 7, 7737,
+1, 40, 7742,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 7744, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 7746,
+1, 40, 7743,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 7745, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 7747,
+0, 1, 7760,
+ 7762,
+0, 1, 7761, 7763,
+1, 10, 7764, 0, 0, 0, 0,
+ 0, 0, 0, 0, 7766,
+1, 10, 7765, 0, 0,
+ 0, 0, 0, 0, 0, 0, 7767,
+7, 7, 7772,
+7, 7,
+ 7773,
+10, 10, 7780,
+10, 10, 7781,
+10, 10, 7782,
+10, 10, 7783,
+10, 10, 7784,
+10, 10, 7785,
+1, 1, 7800,
+1, 1,
+ 7801,
+4, 4, 7802,
+4, 4, 7803,
+3, 40, 7804, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 7806,
+3, 40, 7805, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 7807,
+4, 10, 7820,
+ 0, 0, 0, 0, 0, 7818,
+4, 10, 7821, 0,
+ 0, 0, 0, 0, 7819,
+10, 10, 7835,
+0, 46, 7846, 7844,
+ 0, 7850, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 7848,
+0, 46, 7847, 7845, 0,
+ 7851, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 7849,
+2, 8, 7852, 0, 0, 0,
+ 0, 0, 7862,
+2, 8, 7853, 0, 0, 0, 0,
+ 0, 7863,
+0, 46, 7856, 7854, 0, 7860, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 7858,
+0, 46, 7857, 7855, 0, 7861, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 7859,
+0, 46,
+ 7872, 7870, 0, 7876, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 7874,
+0, 46, 7873,
+ 7871, 0, 7877, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 7875,
+2, 2, 7878,
+2, 2, 7879,
+0, 46,
+ 7890, 7888, 0, 7894, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 7892,
+0, 46, 7891,
+ 7889, 0, 7895, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 7893,
+2, 2, 7896,
+2, 2, 7897,
+0, 46,
+ 7900, 7898, 0, 7904, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 7906, 0, 0, 0, 0, 0, 7902,
+0, 46, 7901,
+ 7899, 0, 7905, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 7907,
+ 0, 0, 0, 0, 0, 7903,
+0, 46, 7914, 7912,
+ 0, 7918, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 7920, 0,
+ 0, 0, 0, 0, 7916,
+0, 46, 7915, 7913, 0,
+ 7919, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 7921, 0, 0,
+ 0, 0, 0, 7917,
+0, 50, 7938, 7940, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 7942, 8064,
+0, 50, 7939,
+ 7941, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 7943, 8065,
+0, 50, 7946, 7948, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 7950, 8072,
+0, 50, 7947, 7949, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 7951, 8073,
+0, 1,
+ 7954, 7956,
+0, 1, 7955, 7957,
+0, 1, 7962, 7964,
+0, 1, 7963, 7965,
+0, 50,
+ 7970, 7972, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 7974, 8080,
+0, 50, 7971, 7973, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 7975, 8081,
+0, 50, 7978, 7980,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 7982,
+ 8088,
+0, 50, 7979, 7981, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 7983, 8089,
+0, 49, 7986, 7988, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 7990,
+0, 49, 7987, 7989,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 7991,
+0, 49,
+ 7994, 7996, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 7998,
+0, 49, 7995, 7997, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 7999,
+0, 1, 8002, 8004,
+0, 1, 8003, 8005,
+0, 1,
+ 8010, 8012,
+0, 1, 8011, 8013,
+0, 49, 8018, 8020, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 8022,
+0, 49, 8019, 8021,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 8023,
+0, 49,
+ 8027, 8029, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 8031,
+0, 50, 8034, 8036, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 8038, 8096,
+0, 50, 8035, 8037, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 8039, 8097,
+0, 50,
+ 8042, 8044, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 8046, 8104,
+0, 50, 8043, 8045, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 8047, 8105,
+50, 50, 8066,
+50, 50, 8067,
+50, 50,
+ 8068,
+50, 50, 8069,
+50, 50, 8070,
+50, 50, 8071,
+50, 50, 8074,
+50, 50, 8075,
+50, 50, 8076,
+50, 50, 8077,
+50, 50,
+ 8078,
+50, 50, 8079,
+50, 50, 8082,
+50, 50, 8083,
+50, 50, 8084,
+50, 50, 8085,
+50, 50, 8086,
+50, 50, 8087,
+50, 50,
+ 8090,
+50, 50, 8091,
+50, 50, 8092,
+50, 50, 8093,
+50, 50, 8094,
+50, 50, 8095,
+50, 50, 8098,
+50, 50, 8099,
+50, 50,
+ 8100,
+50, 50, 8101,
+50, 50, 8102,
+50, 50, 8103,
+50, 50, 8106,
+50, 50, 8107,
+50, 50, 8108,
+50, 50, 8109,
+50, 50,
+ 8110,
+50, 50, 8111,
+50, 50, 8114,
+50, 50, 8116,
+50, 50, 8119,
+50, 50, 8130,
+50, 50, 8132,
+50, 50, 8135,
+0, 49,
+ 8141, 8142, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 8143,
+0, 49, 8157, 8158, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 8159,
+47, 48, 8164, 8165,
+48, 48, 8172,
+50, 50, 8178,
+50, 50,
+ 8180,
+50, 50, 8183,
+51, 51, 8602,
+51, 51, 8603,
+51, 51, 8622,
+51, 51, 8653,
+51, 51, 8654,
+51, 51, 8655,
+51, 51,
+ 8708,
+51, 51, 8713,
+51, 51, 8716,
+51, 51, 8740,
+51, 51, 8742,
+51, 51, 8769,
+51, 51, 8772,
+51, 51, 8775,
+51, 51,
+ 8777,
+51, 51, 8800,
+51, 51, 8802,
+51, 51, 8813,
+51, 51, 8814,
+51, 51, 8815,
+51, 51, 8816,
+51, 51, 8817,
+51, 51,
+ 8820,
+51, 51, 8821,
+51, 51, 8824,
+51, 51, 8825,
+51, 51, 8832,
+51, 51, 8833,
+51, 51, 8836,
+51, 51, 8837,
+51, 51,
+ 8840,
+51, 51, 8841,
+51, 51, 8876,
+51, 51, 8877,
+51, 51, 8878,
+51, 51, 8879,
+51, 51, 8928,
+51, 51, 8929,
+51, 51,
+ 8930,
+51, 51, 8931,
+51, 51, 8938,
+51, 51, 8939,
+51, 51, 8940,
+51, 51, 8941,
+51, 51, 10972,
+52, 52, 12364,
+52, 52,
+ 12366,
+52, 52, 12368,
+52, 52, 12370,
+52, 52, 12372,
+52, 52, 12374,
+52, 52, 12376,
+52, 52, 12378,
+52, 52, 12380,
+52, 52,
+ 12382,
+52, 52, 12384,
+52, 52, 12386,
+52, 52, 12389,
+52, 52, 12391,
+52, 52, 12393,
+52, 53, 12400, 12401,
+52, 53,
+ 12403, 12404,
+52, 53, 12406, 12407,
+52, 53, 12409, 12410,
+52, 53, 12412, 12413,
+52, 52,
+ 12436,
+52, 52, 12446,
+52, 52, 12460,
+52, 52, 12462,
+52, 52, 12464,
+52, 52, 12466,
+52, 52, 12468,
+52, 52, 12470,
+52, 52,
+ 12472,
+52, 52, 12474,
+52, 52, 12476,
+52, 52, 12478,
+52, 52, 12480,
+52, 52, 12482,
+52, 52, 12485,
+52, 52, 12487,
+52, 52,
+ 12489,
+52, 53, 12496, 12497,
+52, 53, 12499, 12500,
+52, 53, 12502, 12503,
+52, 53, 12505,
+ 12506,
+52, 53, 12508, 12509,
+52, 52, 12532,
+52, 52, 12535,
+52, 52, 12536,
+52, 52, 12537,
+52, 52, 12538,
+52, 52,
+ 12542,
+54, 55, 1, 4250,
+54, 55, 1, 4252,
+54, 55, 1, 4267,
+56, 57, 1, 4398,
+56, 57, 1, 4399,
+58, 61, 1, 4939, 1, 4940,
+62, 67,
+ 1, 5307, 1, 5308, 1, 5310,
+68, 69, 1, 5562,
+68, 69, 1, 5563,
+70, 71, 1, 53598,
+70, 71, 1, 53599,
+72, 81, 1, 53600,
+ 1, 53601, 1, 53602, 1, 53603, 1, 53604,
+70, 71, 1, 53691,
+70, 71, 1, 53692,
+72, 75, 1, 53693, 1, 53695,
+72, 75,
+ 1, 53694, 1, 53696,
};
diff --git a/subversion/libsvn_subr/version.c b/subversion/libsvn_subr/version.c
index 1aabb400800d..1c50ad0e7a5d 100644
--- a/subversion/libsvn_subr/version.c
+++ b/subversion/libsvn_subr/version.c
@@ -143,7 +143,7 @@ svn_version_extended(svn_boolean_t verbose,
info->build_time = __TIME__;
info->build_host = SVN_BUILD_HOST;
info->copyright = apr_pstrdup
- (pool, _("Copyright (C) 2018 The Apache Software Foundation.\n"
+ (pool, _("Copyright (C) 2020 The Apache Software Foundation.\n"
"This software consists of contributions made by many people;\n"
"see the NOTICE file for more information.\n"
"Subversion is open source software, see "
diff --git a/subversion/libsvn_subr/win32_crashrpt.c b/subversion/libsvn_subr/win32_crashrpt.c
index bed2d6eaa466..1f8cdd0c7511 100644
--- a/subversion/libsvn_subr/win32_crashrpt.c
+++ b/subversion/libsvn_subr/win32_crashrpt.c
@@ -45,9 +45,6 @@ typedef int win32_crashrpt__dummy;
/*** Global variables ***/
static HANDLE dbghelp_dll = INVALID_HANDLE_VALUE;
-/* Email address where the crash reports should be sent too. */
-#define CRASHREPORT_EMAIL "users@subversion.apache.org"
-
#define DBGHELP_DLL "dbghelp.dll"
#define LOGFILE_PREFIX "svn-crash-log"
@@ -774,7 +771,7 @@ svn__unhandled_exception_filter(PEXCEPTION_POINTERS ptrs)
"usernames and passwords etc.)\n",
log_filename,
dmp_filename,
- CRASHREPORT_EMAIL);
+ SVN_WIN32_CRASHREPORT_EMAIL);
if (getenv("SVN_DBG_STACKTRACES_TO_STDERR") != NULL)
{
diff --git a/subversion/libsvn_subr/win32_crypto.c b/subversion/libsvn_subr/win32_crypto.c
index 0986e5a5076b..deead9f25e11 100644
--- a/subversion/libsvn_subr/win32_crypto.c
+++ b/subversion/libsvn_subr/win32_crypto.c
@@ -395,16 +395,29 @@ windows_validate_certificate(svn_boolean_t *ok_p,
memset(&chain_para, 0, sizeof(chain_para));
chain_para.cbSize = sizeof(chain_para);
+ /* Don't hit the wire for URL based objects and revocation checks, as
+ that may cause stalls, network timeouts or spurious errors in cases
+ such as with the remote OCSP and CRL endpoints being inaccessible or
+ unreliable.
+
+ For this particular case of the SVN_AUTH_SSL_UNKNOWNCA cert failure
+ override we should be okay with just the data that we have immediately
+ available on the local machine.
+ */
if (CertGetCertificateChain(NULL, cert_context, NULL, NULL, &chain_para,
CERT_CHAIN_CACHE_END_CERT |
- CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT,
+ CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL |
+ CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT |
+ CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY,
NULL, &chain_context))
{
CERT_CHAIN_POLICY_PARA policy_para;
CERT_CHAIN_POLICY_STATUS policy_status;
policy_para.cbSize = sizeof(policy_para);
- policy_para.dwFlags = 0;
+ /* We only use the local data for revocation checks, so they may
+ fail with errors like CRYPT_E_REVOCATION_OFFLINE; ignore those. */
+ policy_para.dwFlags = CERT_CHAIN_POLICY_IGNORE_ALL_REV_UNKNOWN_FLAGS;
policy_para.pvExtraPolicyPara = NULL;
policy_status.cbSize = sizeof(policy_status);
diff --git a/subversion/libsvn_subr/x509info.c b/subversion/libsvn_subr/x509info.c
index 9cd437249118..a24611c3f8ed 100644
--- a/subversion/libsvn_subr/x509info.c
+++ b/subversion/libsvn_subr/x509info.c
@@ -128,7 +128,7 @@ typedef struct asn1_oid {
const char *long_label;
} asn1_oid;
-#define CONSTANT_PAIR(c) (unsigned char *)(c), sizeof((c)) - 1
+#define CONSTANT_PAIR(c) (const unsigned char *)(c), sizeof((c)) - 1
static const asn1_oid asn1_oids[] = {
{ CONSTANT_PAIR(SVN_X509_OID_COMMON_NAME), "CN", "commonName" },
diff --git a/subversion/libsvn_subr/x509parse.c b/subversion/libsvn_subr/x509parse.c
index a121575c4378..9459432fb37f 100644
--- a/subversion/libsvn_subr/x509parse.c
+++ b/subversion/libsvn_subr/x509parse.c
@@ -262,7 +262,7 @@ x509_get_alg(const unsigned char **p, const unsigned char *end, x509_buf * alg)
if (*p == end)
return SVN_NO_ERROR;
-
+
/* The OID encoding of 1.2.840.113549.1.1.10 (id-RSASSA-PSS) */
#define OID_RSASSA_PSS "\x2a\x86\x48\x86\xf7\x0d\x01\x01\x0a"
diff --git a/subversion/libsvn_wc/README b/subversion/libsvn_wc/README
index b5fc5293cd96..7475ec5331f3 100644
--- a/subversion/libsvn_wc/README
+++ b/subversion/libsvn_wc/README
@@ -94,6 +94,10 @@ copies.
.svn/wc.db /* SQLite database containing node metadata. */
pristine/ /* Sharded directory containing base files. */
tmp/ /* Local tmp area. */
+ experimental/ /* Data for experimental features. */
+ shelves/ /* Used by 1.10.x shelves implementation */
+ entries /* Stub file. */
+ format /* Stub file. */
`wc.db':
A self-contained SQLite database containing all the metadata Subversion
@@ -109,6 +113,17 @@ copies.
Pristines are used for sending diffs back to the server, etc.
+`experimental':
+ Experimental (unstable) features store their data here.
+
+`shelves':
+ Subversion 1.10's "svn shelve" command stores shelved changes here.
+ This directory is not used by any other minor release line.
+
+`entries', `format':
+ These stub files exist only to enable a pre-1.7 client to yield a clearer
+ error message.
+
How the client applies an update delta
--------------------------------------
diff --git a/subversion/libsvn_wc/conflicts.c b/subversion/libsvn_wc/conflicts.c
index 606710c69f00..b4bc6c05ad6c 100644
--- a/subversion/libsvn_wc/conflicts.c
+++ b/subversion/libsvn_wc/conflicts.c
@@ -539,6 +539,7 @@ svn_wc__conflict_skel_add_tree_conflict(svn_skel_t *conflict_skel,
svn_wc_conflict_reason_t reason,
svn_wc_conflict_action_t action,
const char *move_src_op_root_abspath,
+ const char *move_dst_op_root_abspath,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
@@ -555,18 +556,33 @@ svn_wc__conflict_skel_add_tree_conflict(svn_skel_t *conflict_skel,
tree_conflict = svn_skel__make_empty_list(result_pool);
- if (reason == svn_wc_conflict_reason_moved_away
- && move_src_op_root_abspath)
+ if (reason == svn_wc_conflict_reason_moved_away)
{
- const char *move_src_op_root_relpath;
+ if (move_dst_op_root_abspath)
+ {
+ const char *move_dst_op_root_relpath;
- SVN_ERR(svn_wc__db_to_relpath(&move_src_op_root_relpath,
- db, wri_abspath,
- move_src_op_root_abspath,
- result_pool, scratch_pool));
+ SVN_ERR(svn_wc__db_to_relpath(&move_dst_op_root_relpath,
+ db, wri_abspath,
+ move_dst_op_root_abspath,
+ result_pool, scratch_pool));
- svn_skel__prepend_str(move_src_op_root_relpath, tree_conflict,
- result_pool);
+ svn_skel__prepend_str(move_dst_op_root_relpath, tree_conflict,
+ result_pool);
+ }
+
+ if (move_src_op_root_abspath)
+ {
+ const char *move_src_op_root_relpath;
+
+ SVN_ERR(svn_wc__db_to_relpath(&move_src_op_root_relpath,
+ db, wri_abspath,
+ move_src_op_root_abspath,
+ result_pool, scratch_pool));
+
+ svn_skel__prepend_str(move_src_op_root_relpath, tree_conflict,
+ result_pool);
+ }
}
svn_skel__prepend_str(svn_token__to_word(action_map, action),
@@ -932,6 +948,7 @@ svn_error_t *
svn_wc__conflict_read_tree_conflict(svn_wc_conflict_reason_t *reason,
svn_wc_conflict_action_t *action,
const char **move_src_op_root_abspath,
+ const char **move_dst_op_root_abspath,
svn_wc__db_t *db,
const char *wri_abspath,
const svn_skel_t *conflict_skel,
@@ -981,10 +998,10 @@ svn_wc__conflict_read_tree_conflict(svn_wc_conflict_reason_t *reason,
c = c->next;
- if (move_src_op_root_abspath)
+ if (move_src_op_root_abspath || move_dst_op_root_abspath)
{
/* Only set for update and switch tree conflicts */
- if (c && is_moved_away)
+ if (c && is_moved_away && move_src_op_root_abspath)
{
const char *move_src_op_root_relpath
= apr_pstrmemdup(scratch_pool, c->data, c->len);
@@ -994,8 +1011,25 @@ svn_wc__conflict_read_tree_conflict(svn_wc_conflict_reason_t *reason,
move_src_op_root_relpath,
result_pool, scratch_pool));
}
- else
+ else if (move_src_op_root_abspath)
*move_src_op_root_abspath = NULL;
+
+ if (c)
+ c = c->next;
+
+ if (c && is_moved_away && move_dst_op_root_abspath)
+ {
+ const char *move_dst_op_root_relpath
+ = apr_pstrmemdup(scratch_pool, c->data, c->len);
+
+ SVN_ERR(svn_wc__db_from_relpath(move_dst_op_root_abspath,
+ db, wri_abspath,
+ move_dst_op_root_relpath,
+ result_pool, scratch_pool));
+ }
+ else if (move_dst_op_root_abspath)
+ *move_dst_op_root_abspath = NULL;
+
}
return SVN_NO_ERROR;
@@ -1352,7 +1386,7 @@ generate_propconflict(svn_boolean_t *conflict_remains,
}
case svn_wc_conflict_choose_merged:
{
- if (!cdesc->merged_file
+ if (!cdesc->merged_file
&& (!result->merged_file && !result->merged_value))
return svn_error_create
(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE,
@@ -1801,7 +1835,7 @@ read_tree_conflict_desc(svn_wc_conflict_description2_t **desc,
svn_wc_conflict_action_t action;
SVN_ERR(svn_wc__conflict_read_tree_conflict(
- &reason, &action, NULL,
+ &reason, &action, NULL, NULL,
db, local_abspath, conflict_skel, scratch_pool, scratch_pool));
if (reason == svn_wc_conflict_reason_missing)
@@ -2347,7 +2381,7 @@ svn_wc__read_conflict_descriptions2_t(const apr_array_header_t **conflicts,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
- return svn_wc__read_conflicts(conflicts, NULL, wc_ctx->db, local_abspath,
+ return svn_wc__read_conflicts(conflicts, NULL, wc_ctx->db, local_abspath,
FALSE, FALSE, result_pool, scratch_pool);
}
@@ -2603,7 +2637,7 @@ resolve_prop_conflict_on_node(svn_boolean_t *did_resolve,
return SVN_NO_ERROR;
}
-/*
+/*
* Record a tree conflict resolution failure due to error condition ERR
* in the RESOLVE_LATER hash table. If the hash table is not available
* (meaning the caller does not wish to retry resolution later), or if
@@ -2676,7 +2710,7 @@ resolve_tree_conflict_on_node(svn_boolean_t *did_resolve,
SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action,
&src_op_root_abspath,
- db, local_abspath,
+ NULL, db, local_abspath,
conflicts,
scratch_pool, scratch_pool));
@@ -2748,6 +2782,7 @@ resolve_tree_conflict_on_node(svn_boolean_t *did_resolve,
SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action,
&src_op_root_abspath,
+ NULL,
db, local_abspath,
new_conflicts,
scratch_pool,
@@ -3483,7 +3518,7 @@ svn_wc__conflict_tree_update_break_moved_away(svn_wc_context_t *wc_ctx,
return SVN_NO_ERROR;
SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action,
- &src_op_root_abspath,
+ &src_op_root_abspath, NULL,
wc_ctx->db, local_abspath,
conflict_skel,
scratch_pool, scratch_pool));
@@ -3569,7 +3604,7 @@ svn_wc__conflict_tree_update_raise_moved_away(svn_wc_context_t *wc_ctx,
if (!tree_conflicted)
return SVN_NO_ERROR;
- SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action, NULL,
+ SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action, NULL, NULL,
wc_ctx->db, local_abspath,
conflict_skel,
scratch_pool, scratch_pool));
@@ -3648,7 +3683,7 @@ svn_wc__conflict_tree_update_moved_away_node(svn_wc_context_t *wc_ctx,
return SVN_NO_ERROR;
SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action,
- &src_op_root_abspath,
+ &src_op_root_abspath, NULL,
wc_ctx->db, local_abspath,
conflict_skel,
scratch_pool, scratch_pool));
@@ -3734,8 +3769,8 @@ svn_wc__conflict_tree_update_incoming_move(svn_wc_context_t *wc_ctx,
return SVN_NO_ERROR;
SVN_ERR(svn_wc__conflict_read_tree_conflict(&local_change, &incoming_change,
- NULL, wc_ctx->db, local_abspath,
- conflict_skel,
+ NULL, NULL, wc_ctx->db,
+ local_abspath, conflict_skel,
scratch_pool, scratch_pool));
/* Make sure the expected conflict is recorded. */
@@ -3803,8 +3838,8 @@ svn_wc__conflict_tree_update_local_add(svn_wc_context_t *wc_ctx,
return SVN_NO_ERROR;
SVN_ERR(svn_wc__conflict_read_tree_conflict(&local_change, &incoming_change,
- NULL, wc_ctx->db, local_abspath,
- conflict_skel,
+ NULL, NULL, wc_ctx->db,
+ local_abspath, conflict_skel,
scratch_pool, scratch_pool));
/* Make sure the expected conflict is recorded. */
@@ -3853,9 +3888,9 @@ svn_wc__guess_incoming_move_target_nodes(apr_array_header_t **possible_targets,
apr_size_t longest_ancestor_len = 0;
*possible_targets = apr_array_make(result_pool, 1, sizeof(const char *));
- SVN_ERR(svn_wc__find_repos_node_in_wc(&candidates, wc_ctx->db, victim_abspath,
- moved_to_repos_relpath,
- scratch_pool, scratch_pool));
+ SVN_ERR(svn_wc__db_find_repos_node_in_wc(&candidates, wc_ctx->db, victim_abspath,
+ moved_to_repos_relpath,
+ scratch_pool, scratch_pool));
/* Find a "useful move target" node in our set of candidates.
* Since there is no way to be certain, filter out nodes which seem
@@ -3903,7 +3938,7 @@ svn_wc__guess_incoming_move_target_nodes(apr_array_header_t **possible_targets,
status != svn_wc__db_status_added)
continue;
- if (node_kind != victim_node_kind)
+ if (victim_node_kind != svn_node_none && node_kind != victim_node_kind)
continue;
SVN_ERR(svn_wc__db_is_switched(&is_wcroot, &is_switched, NULL,
@@ -3930,8 +3965,8 @@ svn_wc__guess_incoming_move_target_nodes(apr_array_header_t **possible_targets,
{
insert_index = (*possible_targets)->nelts; /* append */
}
- svn_sort__array_insert(*possible_targets, &moved_to_abspath,
- insert_index);
+ SVN_ERR(svn_sort__array_insert2(*possible_targets, &moved_to_abspath,
+ insert_index));
}
svn_pool_destroy(iterpool);
diff --git a/subversion/libsvn_wc/conflicts.h b/subversion/libsvn_wc/conflicts.h
index 0a9324b89a61..a5664571b308 100644
--- a/subversion/libsvn_wc/conflicts.h
+++ b/subversion/libsvn_wc/conflicts.h
@@ -219,6 +219,11 @@ svn_wc__conflict_skel_add_prop_conflict(svn_skel_t *conflict_skel,
MOVE_SRC_OP_ROOT_ABSPATH should be A for a conflict associated
with (1), MOVE_SRC_OP_ROOT_ABSPATH should be A/B for a conflict
associated with (2).
+ MOVE_DST_OP_ROOT_ABSPATH is the op-root of the move target (i.e. the
+ op-root of the corresponding copy). This needs to be stored because
+ moves in the NODE table do not always persist after an update, while
+ the conflict resolver may need information about the pre-update state
+ of the move.
It is an error to add another tree conflict to a conflict skel that
already contains a tree conflict. (It is not an error, at this level,
@@ -233,6 +238,7 @@ svn_wc__conflict_skel_add_tree_conflict(svn_skel_t *conflict_skel,
svn_wc_conflict_reason_t local_change,
svn_wc_conflict_action_t incoming_change,
const char *move_src_op_root_abspath,
+ const char *move_dst_op_root_abspath,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
@@ -364,6 +370,7 @@ svn_error_t *
svn_wc__conflict_read_tree_conflict(svn_wc_conflict_reason_t *local_change,
svn_wc_conflict_action_t *incoming_change,
const char **move_src_op_root_abspath,
+ const char **move_dst_op_root_abspath,
svn_wc__db_t *db,
const char *wri_abspath,
const svn_skel_t *conflict_skel,
diff --git a/subversion/libsvn_wc/deprecated.c b/subversion/libsvn_wc/deprecated.c
index e54a86df903b..379564bd6da8 100644
--- a/subversion/libsvn_wc/deprecated.c
+++ b/subversion/libsvn_wc/deprecated.c
@@ -1091,6 +1091,33 @@ svn_wc_add(const char *path,
/*** From revert.c ***/
svn_error_t *
+svn_wc_revert5(svn_wc_context_t *wc_ctx,
+ const char *local_abspath,
+ svn_depth_t depth,
+ svn_boolean_t use_commit_times,
+ const apr_array_header_t *changelist_filter,
+ svn_boolean_t clear_changelists,
+ svn_boolean_t metadata_only,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
+ apr_pool_t *scratch_pool)
+{
+ SVN_ERR(svn_wc_revert6(wc_ctx, local_abspath,
+ depth,
+ use_commit_times,
+ changelist_filter,
+ clear_changelists,
+ metadata_only,
+ TRUE /*added_keep_local*/,
+ cancel_func, cancel_baton,
+ notify_func, notify_baton,
+ scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
svn_wc_revert4(svn_wc_context_t *wc_ctx,
const char *local_abspath,
svn_depth_t depth,
@@ -2069,8 +2096,7 @@ svn_wc_get_diff_editor6(const svn_delta_editor_t **editor,
result_pool, scratch_pool));
if (reverse_order)
- diff_processor = svn_diff__tree_processor_reverse_create(
- diff_processor, NULL, result_pool);
+ diff_processor = svn_diff__tree_processor_reverse_create(diff_processor, result_pool);
if (! show_copies_as_adds)
diff_processor = svn_diff__tree_processor_copy_as_changed_create(
diff --git a/subversion/libsvn_wc/diff_local.c b/subversion/libsvn_wc/diff_local.c
index 61ec06767e3a..26f9c6836928 100644
--- a/subversion/libsvn_wc/diff_local.c
+++ b/subversion/libsvn_wc/diff_local.c
@@ -433,8 +433,7 @@ diff_status_callback(void *baton,
/* Public Interface */
svn_error_t *
-svn_wc__diff7(const char **root_relpath,
- svn_boolean_t *root_is_dir,
+svn_wc__diff7(svn_boolean_t anchor_at_given_paths,
svn_wc_context_t *wc_ctx,
const char *local_abspath,
svn_depth_t depth,
@@ -459,26 +458,30 @@ svn_wc__diff7(const char **root_relpath,
eb.anchor_abspath = local_abspath;
- if (root_relpath)
+ if (anchor_at_given_paths)
{
+ /* Anchor the underlying diff processor at the parent of
+ LOCAL_ABSPATH (if possible), and adjust so the outgoing
+ DIFF_PROCESSOR is always anchored at LOCAL_ABSPATH. */
+ /* ### Why anchor the underlying diff processor at the parent? */
svn_boolean_t is_wcroot;
SVN_ERR(svn_wc__db_is_wcroot(&is_wcroot,
wc_ctx->db, local_abspath, scratch_pool));
if (!is_wcroot)
- eb.anchor_abspath = svn_dirent_dirname(local_abspath, scratch_pool);
+ {
+ const char *relpath;
+
+ eb.anchor_abspath = svn_dirent_dirname(local_abspath, scratch_pool);
+ relpath = svn_dirent_basename(local_abspath, NULL);
+ diff_processor = svn_diff__tree_processor_filter_create(
+ diff_processor, relpath, scratch_pool);
+ }
}
else if (kind != svn_node_dir)
eb.anchor_abspath = svn_dirent_dirname(local_abspath, scratch_pool);
- if (root_relpath)
- *root_relpath = apr_pstrdup(result_pool,
- svn_dirent_skip_ancestor(eb.anchor_abspath,
- local_abspath));
- if (root_is_dir)
- *root_is_dir = (kind == svn_node_dir);
-
/* Apply changelist filtering to the output */
if (changelist_filter && changelist_filter->nelts)
{
@@ -487,7 +490,7 @@ svn_wc__diff7(const char **root_relpath,
SVN_ERR(svn_hash_from_cstring_keys(&changelist_hash, changelist_filter,
result_pool));
diff_processor = svn_wc__changelist_filter_tree_processor_create(
- diff_processor, wc_ctx, local_abspath,
+ diff_processor, wc_ctx, eb.anchor_abspath,
changelist_hash, result_pool);
}
@@ -572,7 +575,7 @@ svn_wc_diff6(svn_wc_context_t *wc_ctx,
processor = svn_diff__tree_processor_copy_as_changed_create(processor,
scratch_pool);
- return svn_error_trace(svn_wc__diff7(NULL, NULL,
+ return svn_error_trace(svn_wc__diff7(FALSE,
wc_ctx, local_abspath,
depth,
ignore_ancestry,
diff --git a/subversion/libsvn_wc/entries.c b/subversion/libsvn_wc/entries.c
index 5748aa3cb857..c7e3ae0ae963 100644
--- a/subversion/libsvn_wc/entries.c
+++ b/subversion/libsvn_wc/entries.c
@@ -781,7 +781,7 @@ read_one_entry(const svn_wc_entry_t **new_entry,
if (parent_root_url != NULL
&& strcmp(original_root_url, parent_root_url) == 0)
{
-
+
const char *relpath_to_entry = svn_dirent_is_child(
op_root_abspath, entry_abspath, NULL);
const char *entry_repos_relpath = svn_relpath_join(
@@ -1049,7 +1049,7 @@ read_entries_new(apr_hash_t **result_entries,
svn_pool_clear(iterpool);
SVN_ERR(read_one_entry(&entry,
- db, dir_abspath,
+ db, dir_abspath,
wcroot, dir_relpath,
name, parent_entry,
result_pool, iterpool));
diff --git a/subversion/libsvn_wc/libsvn_wc.pc.in b/subversion/libsvn_wc/libsvn_wc.pc.in
index f44387e7472b..dc1c4d759aed 100644
--- a/subversion/libsvn_wc/libsvn_wc.pc.in
+++ b/subversion/libsvn_wc/libsvn_wc.pc.in
@@ -6,7 +6,7 @@ includedir=@includedir@
Name: libsvn_wc
Description: Subversion Working Copy Library
Version: @PACKAGE_VERSION@
-Requires: apr-util-@SVN_APR_MAJOR_VERSION@ apr-@SVN_APR_MAJOR_VERSION@
-Requires.private: libsvn_delta libsvn_diff libsvn_subr
-Libs: -L${libdir} -lsvn_wc
-Cflags: -I${includedir}
+Requires: apr-util-@SVN_APR_MAJOR_VERSION@, apr-@SVN_APR_MAJOR_VERSION@
+Requires.private: libsvn_delta, libsvn_diff, libsvn_subr
+Libs: -L${libdir} -lsvn_wc-1
+Cflags: -I${includedir}/subversion-1
diff --git a/subversion/libsvn_wc/node.c b/subversion/libsvn_wc/node.c
index 586477637274..71f0e48e38ba 100644
--- a/subversion/libsvn_wc/node.c
+++ b/subversion/libsvn_wc/node.c
@@ -1126,3 +1126,31 @@ svn_wc__node_was_moved_here(const char **moved_from_abspath,
return SVN_NO_ERROR;
}
+
+svn_error_t *
+svn_wc__find_working_nodes_with_basename(apr_array_header_t **abspaths,
+ const char *wri_abspath,
+ const char *basename,
+ svn_node_kind_t kind,
+ svn_wc_context_t *wc_ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ return svn_error_trace(svn_wc__db_find_working_nodes_with_basename(
+ abspaths, wc_ctx->db, wri_abspath, basename, kind,
+ result_pool, scratch_pool));
+}
+
+svn_error_t *
+svn_wc__find_copies_of_repos_path(apr_array_header_t **abspaths,
+ const char *wri_abspath,
+ const char *repos_relpath,
+ svn_node_kind_t kind,
+ svn_wc_context_t *wc_ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ return svn_error_trace(svn_wc__db_find_copies_of_repos_path(
+ abspaths, wc_ctx->db, wri_abspath, repos_relpath,
+ kind, result_pool, scratch_pool));
+}
diff --git a/subversion/libsvn_wc/props.c b/subversion/libsvn_wc/props.c
index f56899d86002..b314a34acf8f 100644
--- a/subversion/libsvn_wc/props.c
+++ b/subversion/libsvn_wc/props.c
@@ -2236,7 +2236,9 @@ svn_wc_canonicalize_svn_prop(const svn_string_t **propval_p,
if (duplicate_targets->nelts > 1)
{
more_str = apr_psprintf(/*scratch_*/pool,
- _(" (%d more duplicate targets found)"),
+ Q_(" (%d more duplicate target found)",
+ " (%d more duplicate targets found)",
+ duplicate_targets->nelts - 1),
duplicate_targets->nelts - 1);
}
return svn_error_createf(
diff --git a/subversion/libsvn_wc/questions.c b/subversion/libsvn_wc/questions.c
index 08583639b571..c248f5d63adc 100644
--- a/subversion/libsvn_wc/questions.c
+++ b/subversion/libsvn_wc/questions.c
@@ -475,7 +475,7 @@ internal_conflicted_p(svn_boolean_t *text_conflicted_p,
svn_wc_conflict_action_t action;
SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action, NULL,
- db, local_abspath,
+ NULL, db, local_abspath,
conflicts,
scratch_pool,
scratch_pool));
diff --git a/subversion/libsvn_wc/revert.c b/subversion/libsvn_wc/revert.c
index bba1799864ab..28a17f091a82 100644
--- a/subversion/libsvn_wc/revert.c
+++ b/subversion/libsvn_wc/revert.c
@@ -62,6 +62,18 @@
the addition of all the directory's children. Again,
svn_wc_remove_from_revision_control() should do the trick.
+ - For a copy, we remove the item from disk as well. The thinking here
+ is that Subversion is responsible for the existence of the item: it
+ must have been created by something like 'svn copy' or 'svn merge'.
+
+ - For a plain add, removing the file or directory from disk is optional.
+ The user's idea of Subversion's involvement could be either that
+ Subversion was just responsible for adding an existing item to version
+ control, as with 'svn add', and so should not be responsible for
+ deleting it from disk; or that Subversion is responsible for the
+ existence of the item, e.g. if created by 'svn patch' or svn mkdir'.
+ It depends on the use case.
+
Deletes
- Restore properties to their unmodified state.
@@ -285,6 +297,7 @@ revert_restore(svn_boolean_t *run_wq,
svn_boolean_t metadata_only,
svn_boolean_t use_commit_times,
svn_boolean_t revert_root,
+ svn_boolean_t added_keep_local,
const struct svn_wc__db_info_t *info,
svn_cancel_func_t cancel_func,
void *cancel_baton,
@@ -344,8 +357,9 @@ revert_restore(svn_boolean_t *run_wq,
}
else
{
- if (!copied_here)
+ if (added_keep_local && !copied_here)
{
+ /* It is a plain add, and we want to keep the local file/dir. */
if (notify_func && notify_required)
notify_func(notify_baton,
svn_wc_create_notify(local_abspath,
@@ -359,8 +373,17 @@ revert_restore(svn_boolean_t *run_wq,
scratch_pool));
return SVN_NO_ERROR;
}
+ else if (!copied_here)
+ {
+ /* It is a plain add, and we don't want to keep the local file/dir. */
+ status = svn_wc__db_status_not_present;
+ kind = svn_node_none;
+ recorded_size = SVN_INVALID_FILESIZE;
+ recorded_time = 0;
+ }
else
{
+ /* It is a copy, so we don't want to keep the local file/dir. */
/* ### Initialise to values which prevent the code below from
* ### trying to restore anything to disk.
* ### 'status' should be status_unknown but that doesn't exist. */
@@ -429,6 +452,7 @@ revert_restore(svn_boolean_t *run_wq,
SVN_ERR(revert_restore(run_wq,
db, child_abspath, depth, metadata_only,
use_commit_times, FALSE /* revert root */,
+ added_keep_local,
apr_hash_this_val(hi),
cancel_func, cancel_baton,
notify_func, notify_baton,
@@ -536,11 +560,7 @@ revert_wc_data(svn_boolean_t *run_wq,
/* If we expect a versioned item to be present then check that any
item on disk matches the versioned item, if it doesn't match then
fix it or delete it. */
- if (on_disk != svn_node_none
- && status != svn_wc__db_status_server_excluded
- && status != svn_wc__db_status_deleted
- && status != svn_wc__db_status_excluded
- && status != svn_wc__db_status_not_present)
+ if (on_disk != svn_node_none)
{
if (on_disk == svn_node_dir && kind != svn_node_dir)
{
@@ -560,7 +580,11 @@ revert_wc_data(svn_boolean_t *run_wq,
on_disk = svn_node_none;
}
}
- else if (on_disk == svn_node_file)
+ else if (on_disk == svn_node_file
+ && status != svn_wc__db_status_server_excluded
+ && status != svn_wc__db_status_deleted
+ && status != svn_wc__db_status_excluded
+ && status != svn_wc__db_status_not_present)
{
svn_boolean_t modified;
apr_hash_t *props;
@@ -712,6 +736,7 @@ revert(svn_wc__db_t *db,
svn_boolean_t use_commit_times,
svn_boolean_t clear_changelists,
svn_boolean_t metadata_only,
+ svn_boolean_t added_keep_local,
svn_cancel_func_t cancel_func,
void *cancel_baton,
svn_wc_notify_func2_t notify_func,
@@ -762,6 +787,7 @@ revert(svn_wc__db_t *db,
err = svn_error_trace(
revert_restore(&run_queue, db, local_abspath, depth, metadata_only,
use_commit_times, TRUE /* revert root */,
+ added_keep_local,
info, cancel_func, cancel_baton,
notify_func, notify_baton,
scratch_pool));
@@ -791,6 +817,7 @@ revert_changelist(svn_wc__db_t *db,
apr_hash_t *changelist_hash,
svn_boolean_t clear_changelists,
svn_boolean_t metadata_only,
+ svn_boolean_t added_keep_local,
svn_cancel_func_t cancel_func,
void *cancel_baton,
svn_wc_notify_func2_t notify_func,
@@ -809,7 +836,7 @@ revert_changelist(svn_wc__db_t *db,
scratch_pool))
SVN_ERR(revert(db, local_abspath,
svn_depth_empty, use_commit_times, clear_changelists,
- metadata_only,
+ metadata_only, added_keep_local,
cancel_func, cancel_baton,
notify_func, notify_baton,
scratch_pool));
@@ -845,6 +872,7 @@ revert_changelist(svn_wc__db_t *db,
SVN_ERR(revert_changelist(db, child_abspath, depth,
use_commit_times, changelist_hash,
clear_changelists, metadata_only,
+ added_keep_local,
cancel_func, cancel_baton,
notify_func, notify_baton,
iterpool));
@@ -871,6 +899,7 @@ revert_partial(svn_wc__db_t *db,
svn_boolean_t use_commit_times,
svn_boolean_t clear_changelists,
svn_boolean_t metadata_only,
+ svn_boolean_t added_keep_local,
svn_cancel_func_t cancel_func,
void *cancel_baton,
svn_wc_notify_func2_t notify_func,
@@ -892,6 +921,7 @@ revert_partial(svn_wc__db_t *db,
children. */
SVN_ERR(revert(db, local_abspath, svn_depth_empty,
use_commit_times, clear_changelists, metadata_only,
+ added_keep_local,
cancel_func, cancel_baton,
notify_func, notify_baton, iterpool));
@@ -926,7 +956,7 @@ revert_partial(svn_wc__db_t *db,
/* Revert just this node (depth=empty). */
SVN_ERR(revert(db, child_abspath,
svn_depth_empty, use_commit_times, clear_changelists,
- metadata_only,
+ metadata_only, added_keep_local,
cancel_func, cancel_baton,
notify_func, notify_baton,
iterpool));
@@ -939,13 +969,14 @@ revert_partial(svn_wc__db_t *db,
svn_error_t *
-svn_wc_revert5(svn_wc_context_t *wc_ctx,
+svn_wc_revert6(svn_wc_context_t *wc_ctx,
const char *local_abspath,
svn_depth_t depth,
svn_boolean_t use_commit_times,
const apr_array_header_t *changelist_filter,
svn_boolean_t clear_changelists,
svn_boolean_t metadata_only,
+ svn_boolean_t added_keep_local,
svn_cancel_func_t cancel_func,
void *cancel_baton,
svn_wc_notify_func2_t notify_func,
@@ -963,6 +994,7 @@ svn_wc_revert5(svn_wc_context_t *wc_ctx,
changelist_hash,
clear_changelists,
metadata_only,
+ added_keep_local,
cancel_func, cancel_baton,
notify_func, notify_baton,
scratch_pool));
@@ -972,6 +1004,7 @@ svn_wc_revert5(svn_wc_context_t *wc_ctx,
return svn_error_trace(revert(wc_ctx->db, local_abspath,
depth, use_commit_times, clear_changelists,
metadata_only,
+ added_keep_local,
cancel_func, cancel_baton,
notify_func, notify_baton,
scratch_pool));
@@ -986,6 +1019,7 @@ svn_wc_revert5(svn_wc_context_t *wc_ctx,
return svn_error_trace(revert_partial(wc_ctx->db, local_abspath,
depth, use_commit_times,
clear_changelists, metadata_only,
+ added_keep_local,
cancel_func, cancel_baton,
notify_func, notify_baton,
scratch_pool));
diff --git a/subversion/libsvn_wc/tree_conflicts.c b/subversion/libsvn_wc/tree_conflicts.c
index caf39eda9878..e8465775a61c 100644
--- a/subversion/libsvn_wc/tree_conflicts.c
+++ b/subversion/libsvn_wc/tree_conflicts.c
@@ -442,7 +442,7 @@ svn_wc__add_tree_conflict(svn_wc_context_t *wc_ctx,
conflict->local_abspath,
conflict->reason,
conflict->action,
- NULL,
+ NULL, NULL,
scratch_pool, scratch_pool));
switch (conflict->operation)
diff --git a/subversion/libsvn_wc/update_editor.c b/subversion/libsvn_wc/update_editor.c
index 4dca3af7e13f..307356162148 100644
--- a/subversion/libsvn_wc/update_editor.c
+++ b/subversion/libsvn_wc/update_editor.c
@@ -1235,9 +1235,11 @@ open_root(void *edit_baton,
db->shadowed = TRUE;
else if (have_work)
{
+ const char *move_dst_op_root_abspath;
const char *move_src_root_abspath;
- SVN_ERR(svn_wc__db_base_moved_to(NULL, NULL, &move_src_root_abspath,
+ SVN_ERR(svn_wc__db_base_moved_to(NULL, &move_dst_op_root_abspath,
+ &move_src_root_abspath,
NULL, eb->db, db->local_abspath,
pool, pool));
@@ -1252,7 +1254,8 @@ open_root(void *edit_baton,
tree_conflict, eb->db, move_src_root_abspath,
svn_wc_conflict_reason_moved_away,
svn_wc_conflict_action_edit,
- move_src_root_abspath, pool, pool));
+ move_src_root_abspath,
+ move_dst_op_root_abspath, pool, pool));
if (strcmp(db->local_abspath, move_src_root_abspath))
{
@@ -1345,6 +1348,7 @@ check_tree_conflict(svn_skel_t **pconflict,
svn_wc_conflict_reason_t reason = SVN_WC_CONFLICT_REASON_NONE;
svn_boolean_t modified = FALSE;
const char *move_src_op_root_abspath = NULL;
+ const char *move_dst_op_root_abspath = NULL;
*pconflict = NULL;
@@ -1397,8 +1401,8 @@ check_tree_conflict(svn_skel_t **pconflict,
case svn_wc__db_status_deleted:
{
- SVN_ERR(svn_wc__db_base_moved_to(NULL, NULL, NULL,
- &move_src_op_root_abspath,
+ SVN_ERR(svn_wc__db_base_moved_to(NULL, &move_dst_op_root_abspath,
+ NULL, &move_src_op_root_abspath,
eb->db, local_abspath,
scratch_pool, scratch_pool));
if (move_src_op_root_abspath)
@@ -1454,7 +1458,7 @@ check_tree_conflict(svn_skel_t **pconflict,
* Therefore, we need to start a separate crawl here. */
SVN_ERR(svn_wc__node_has_local_mods(&modified, NULL,
- eb->db, local_abspath, FALSE,
+ eb->db, local_abspath, TRUE,
eb->cancel_func, eb->cancel_baton,
scratch_pool));
@@ -1530,6 +1534,7 @@ check_tree_conflict(svn_skel_t **pconflict,
reason,
action,
move_src_op_root_abspath,
+ move_dst_op_root_abspath,
result_pool, scratch_pool));
return SVN_NO_ERROR;
@@ -2007,11 +2012,13 @@ add_directory(const char *path,
{
svn_wc_conflict_reason_t reason;
const char *move_src_op_root_abspath;
+ const char *move_dst_op_root_abspath;
/* So this deletion wasn't just a deletion, it is actually a
replacement. Let's install a better tree conflict. */
SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, NULL,
&move_src_op_root_abspath,
+ &move_dst_op_root_abspath,
eb->db,
db->local_abspath,
tree_conflict,
@@ -2024,6 +2031,7 @@ add_directory(const char *path,
eb->db, db->local_abspath,
reason, svn_wc_conflict_action_replace,
move_src_op_root_abspath,
+ move_dst_op_root_abspath,
db->pool, scratch_pool));
/* And now stop checking for conflicts here and just perform
@@ -2148,8 +2156,8 @@ add_directory(const char *path,
tree_conflict,
eb->db, db->local_abspath,
svn_wc_conflict_reason_unversioned,
- svn_wc_conflict_action_add, NULL,
- db->pool, scratch_pool));
+ svn_wc_conflict_action_add,
+ NULL, NULL, db->pool, scratch_pool));
db->edit_conflict = tree_conflict;
}
}
@@ -2336,7 +2344,7 @@ open_directory(const char *path,
db->edit_conflict = tree_conflict;
/* Other modifications wouldn't be a tree conflict */
- SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, NULL, NULL,
+ SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, NULL, NULL, NULL,
eb->db, db->local_abspath,
tree_conflict,
db->pool, db->pool));
@@ -3220,11 +3228,13 @@ add_file(const char *path,
{
svn_wc_conflict_reason_t reason;
const char *move_src_op_root_abspath;
+ const char *move_dst_op_root_abspath;
/* So this deletion wasn't just a deletion, it is actually a
replacement. Let's install a better tree conflict. */
SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, NULL,
&move_src_op_root_abspath,
+ &move_dst_op_root_abspath,
eb->db,
fb->local_abspath,
tree_conflict,
@@ -3237,6 +3247,7 @@ add_file(const char *path,
eb->db, fb->local_abspath,
reason, svn_wc_conflict_action_replace,
move_src_op_root_abspath,
+ move_dst_op_root_abspath,
fb->pool, scratch_pool));
/* And now stop checking for conflicts here and just perform
@@ -3363,7 +3374,7 @@ add_file(const char *path,
eb->db, fb->local_abspath,
svn_wc_conflict_reason_unversioned,
svn_wc_conflict_action_add,
- NULL,
+ NULL, NULL,
fb->pool, scratch_pool));
}
}
@@ -3528,7 +3539,7 @@ open_file(const char *path,
fb->edit_conflict = tree_conflict;
/* Other modifications wouldn't be a tree conflict */
- SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, NULL, NULL,
+ SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, NULL, NULL, NULL,
eb->db, fb->local_abspath,
tree_conflict,
scratch_pool, scratch_pool));
@@ -3797,7 +3808,7 @@ change_file_prop(void *file_baton,
eb->db, fb->local_abspath,
svn_wc_conflict_reason_edited,
svn_wc_conflict_action_replace,
- NULL,
+ NULL, NULL,
fb->pool, scratch_pool));
SVN_ERR(complete_conflict(fb->edit_conflict, fb->edit_baton,
diff --git a/subversion/libsvn_wc/upgrade.c b/subversion/libsvn_wc/upgrade.c
index 3b9ab3a35319..67791c60845d 100644
--- a/subversion/libsvn_wc/upgrade.c
+++ b/subversion/libsvn_wc/upgrade.c
@@ -1237,7 +1237,7 @@ svn_wc__upgrade_conflict_skel_from_raw(svn_skel_t **conflicts,
db, wri_abspath,
tc->reason,
tc->action,
- NULL,
+ NULL, NULL,
scratch_pool,
scratch_pool));
@@ -1667,7 +1667,7 @@ svn_wc__upgrade_sdb(int *result_format,
"use the current client"),
svn_dirent_local_style(wcroot_abspath,
scratch_pool),
- start_format);
+ start_format);
/* ### need lock-out. only one upgrade at a time. note that other code
### cannot use this un-upgraded database until we finish the upgrade. */
diff --git a/subversion/libsvn_wc/wc-checks.h b/subversion/libsvn_wc/wc-checks.h
index bb9e5493a367..162bca4844df 100644
--- a/subversion/libsvn_wc/wc-checks.h
+++ b/subversion/libsvn_wc/wc-checks.h
@@ -1,4 +1,4 @@
-/* This file is automatically generated from wc-checks.sql and /opt/svnrm/tempdir/subversion-1.10.2/subversion/libsvn_wc/token-map.h.
+/* This file is automatically generated from wc-checks.sql and token-map.h.
* Do not edit this file -- edit the source and rerun gen-make.py */
#define STMT_VERIFICATION_TRIGGERS 0
diff --git a/subversion/libsvn_wc/wc-metadata.h b/subversion/libsvn_wc/wc-metadata.h
index 7c7c78b45a45..75e7503c3f3f 100644
--- a/subversion/libsvn_wc/wc-metadata.h
+++ b/subversion/libsvn_wc/wc-metadata.h
@@ -1,4 +1,4 @@
-/* This file is automatically generated from wc-metadata.sql and /opt/svnrm/tempdir/subversion-1.10.2/subversion/libsvn_wc/token-map.h.
+/* This file is automatically generated from wc-metadata.sql and token-map.h.
* Do not edit this file -- edit the source and rerun gen-make.py */
#define STMT_CREATE_SCHEMA 0
diff --git a/subversion/libsvn_wc/wc-queries.h b/subversion/libsvn_wc/wc-queries.h
index b333e95ffdbe..b6254e1a5bca 100644
--- a/subversion/libsvn_wc/wc-queries.h
+++ b/subversion/libsvn_wc/wc-queries.h
@@ -1,4 +1,4 @@
-/* This file is automatically generated from wc-queries.sql and subversion/libsvn_wc/token-map.h.
+/* This file is automatically generated from wc-queries.sql and token-map.h.
* Do not edit this file -- edit the source and rerun gen-make.py */
#define STMT_SELECT_NODE_INFO 0
@@ -115,17 +115,31 @@
"LIMIT 1 " \
""
-#define STMT_SELECT_ACTUAL_NODE 10
-#define STMT_10_INFO {"STMT_SELECT_ACTUAL_NODE", NULL}
+#define STMT_SELECT_PRESENT_HIGHEST_WORKING_NODES_BY_BASENAME_AND_KIND 10
+#define STMT_10_INFO {"STMT_SELECT_PRESENT_HIGHEST_WORKING_NODES_BY_BASENAME_AND_KIND", NULL}
#define STMT_10 \
+ "SELECT presence, local_relpath " \
+ "FROM nodes n " \
+ "WHERE wc_id = ?1 AND local_relpath = (CASE WHEN (parent_relpath) = '' THEN (?2) WHEN (?2) = '' THEN (parent_relpath) ELSE (parent_relpath) || '/' || (?2) END) " \
+ " AND kind = ?3 " \
+ " AND presence in ('normal', 'incomplete') " \
+ " AND op_depth = (SELECT MAX(op_depth) " \
+ " FROM NODES w " \
+ " WHERE w.wc_id = ?1 " \
+ " AND w.local_relpath = n.local_relpath) " \
+ ""
+
+#define STMT_SELECT_ACTUAL_NODE 11
+#define STMT_11_INFO {"STMT_SELECT_ACTUAL_NODE", NULL}
+#define STMT_11 \
"SELECT changelist, properties, conflict_data " \
"FROM actual_node " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
""
-#define STMT_SELECT_NODE_CHILDREN_INFO 11
-#define STMT_11_INFO {"STMT_SELECT_NODE_CHILDREN_INFO", NULL}
-#define STMT_11 \
+#define STMT_SELECT_NODE_CHILDREN_INFO 12
+#define STMT_12_INFO {"STMT_SELECT_NODE_CHILDREN_INFO", NULL}
+#define STMT_12 \
"SELECT op_depth, nodes.repos_id, nodes.repos_path, presence, kind, revision, " \
" checksum, translated_size, changed_revision, changed_date, changed_author, " \
" depth, symlink_target, last_mod_time, properties, lock_token, lock_owner, " \
@@ -137,9 +151,9 @@
"ORDER BY local_relpath DESC, op_depth DESC " \
""
-#define STMT_SELECT_BASE_NODE_CHILDREN_INFO 12
-#define STMT_12_INFO {"STMT_SELECT_BASE_NODE_CHILDREN_INFO", NULL}
-#define STMT_12 \
+#define STMT_SELECT_BASE_NODE_CHILDREN_INFO 13
+#define STMT_13_INFO {"STMT_SELECT_BASE_NODE_CHILDREN_INFO", NULL}
+#define STMT_13 \
"SELECT op_depth, nodes.repos_id, nodes.repos_path, presence, kind, revision, " \
" checksum, translated_size, changed_revision, changed_date, changed_author, " \
" depth, symlink_target, last_mod_time, properties, lock_token, lock_owner, " \
@@ -151,50 +165,50 @@
"ORDER BY local_relpath DESC " \
""
-#define STMT_SELECT_NODE_CHILDREN_WALKER_INFO 13
-#define STMT_13_INFO {"STMT_SELECT_NODE_CHILDREN_WALKER_INFO", NULL}
-#define STMT_13 \
+#define STMT_SELECT_NODE_CHILDREN_WALKER_INFO 14
+#define STMT_14_INFO {"STMT_SELECT_NODE_CHILDREN_WALKER_INFO", NULL}
+#define STMT_14 \
"SELECT local_relpath, op_depth, presence, kind " \
"FROM nodes_current " \
"WHERE wc_id = ?1 AND parent_relpath = ?2 " \
"ORDER BY local_relpath " \
""
-#define STMT_SELECT_ACTUAL_CHILDREN_INFO 14
-#define STMT_14_INFO {"STMT_SELECT_ACTUAL_CHILDREN_INFO", NULL}
-#define STMT_14 \
+#define STMT_SELECT_ACTUAL_CHILDREN_INFO 15
+#define STMT_15_INFO {"STMT_SELECT_ACTUAL_CHILDREN_INFO", NULL}
+#define STMT_15 \
"SELECT local_relpath, changelist, properties, conflict_data " \
"FROM actual_node " \
"WHERE wc_id = ?1 AND parent_relpath = ?2 " \
""
-#define STMT_SELECT_REPOSITORY_BY_ID 15
-#define STMT_15_INFO {"STMT_SELECT_REPOSITORY_BY_ID", NULL}
-#define STMT_15 \
+#define STMT_SELECT_REPOSITORY_BY_ID 16
+#define STMT_16_INFO {"STMT_SELECT_REPOSITORY_BY_ID", NULL}
+#define STMT_16 \
"SELECT root, uuid FROM repository WHERE id = ?1 " \
""
-#define STMT_SELECT_WCROOT_NULL 16
-#define STMT_16_INFO {"STMT_SELECT_WCROOT_NULL", NULL}
-#define STMT_16 \
+#define STMT_SELECT_WCROOT_NULL 17
+#define STMT_17_INFO {"STMT_SELECT_WCROOT_NULL", NULL}
+#define STMT_17 \
"SELECT id FROM wcroot WHERE local_abspath IS NULL " \
""
-#define STMT_SELECT_REPOSITORY 17
-#define STMT_17_INFO {"STMT_SELECT_REPOSITORY", NULL}
-#define STMT_17 \
+#define STMT_SELECT_REPOSITORY 18
+#define STMT_18_INFO {"STMT_SELECT_REPOSITORY", NULL}
+#define STMT_18 \
"SELECT id FROM repository WHERE root = ?1 " \
""
-#define STMT_INSERT_REPOSITORY 18
-#define STMT_18_INFO {"STMT_INSERT_REPOSITORY", NULL}
-#define STMT_18 \
+#define STMT_INSERT_REPOSITORY 19
+#define STMT_19_INFO {"STMT_INSERT_REPOSITORY", NULL}
+#define STMT_19 \
"INSERT INTO repository (root, uuid) VALUES (?1, ?2) " \
""
-#define STMT_INSERT_NODE 19
-#define STMT_19_INFO {"STMT_INSERT_NODE", NULL}
-#define STMT_19 \
+#define STMT_INSERT_NODE 20
+#define STMT_20_INFO {"STMT_INSERT_NODE", NULL}
+#define STMT_20 \
"INSERT OR REPLACE INTO nodes ( " \
" wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \
" revision, presence, depth, kind, changed_revision, changed_date, " \
@@ -205,9 +219,9 @@
" ?15, ?16, ?17, ?18, ?19, ?20, ?21, ?22, ?23) " \
""
-#define STMT_SELECT_WORKING_PRESENT 20
-#define STMT_20_INFO {"STMT_SELECT_WORKING_PRESENT", NULL}
-#define STMT_20 \
+#define STMT_SELECT_WORKING_PRESENT 21
+#define STMT_21_INFO {"STMT_SELECT_WORKING_PRESENT", NULL}
+#define STMT_21 \
"SELECT local_relpath, kind, checksum, translated_size, last_mod_time " \
"FROM nodes n " \
"WHERE wc_id = ?1 " \
@@ -220,25 +234,25 @@
"ORDER BY local_relpath DESC " \
""
-#define STMT_DELETE_NODE_RECURSIVE 21
-#define STMT_21_INFO {"STMT_DELETE_NODE_RECURSIVE", NULL}
-#define STMT_21 \
+#define STMT_DELETE_NODE_RECURSIVE 22
+#define STMT_22_INFO {"STMT_DELETE_NODE_RECURSIVE", NULL}
+#define STMT_22 \
"DELETE FROM NODES " \
"WHERE wc_id = ?1 " \
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
""
-#define STMT_DELETE_NODE 22
-#define STMT_22_INFO {"STMT_DELETE_NODE", NULL}
-#define STMT_22 \
+#define STMT_DELETE_NODE 23
+#define STMT_23_INFO {"STMT_DELETE_NODE", NULL}
+#define STMT_23 \
"DELETE " \
"FROM NODES " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
""
-#define STMT_DELETE_ACTUAL_FOR_BASE_RECURSIVE 23
-#define STMT_23_INFO {"STMT_DELETE_ACTUAL_FOR_BASE_RECURSIVE", NULL}
-#define STMT_23 \
+#define STMT_DELETE_ACTUAL_FOR_BASE_RECURSIVE 24
+#define STMT_24_INFO {"STMT_DELETE_ACTUAL_FOR_BASE_RECURSIVE", NULL}
+#define STMT_24 \
"DELETE FROM actual_node " \
"WHERE wc_id = ?1 AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
" AND EXISTS(SELECT 1 FROM NODES b " \
@@ -252,9 +266,9 @@
" AND presence in ('normal', 'incomplete', 'not-present')) " \
""
-#define STMT_DELETE_WORKING_BASE_DELETE 24
-#define STMT_24_INFO {"STMT_DELETE_WORKING_BASE_DELETE", NULL}
-#define STMT_24 \
+#define STMT_DELETE_WORKING_BASE_DELETE 25
+#define STMT_25_INFO {"STMT_DELETE_WORKING_BASE_DELETE", NULL}
+#define STMT_25 \
"DELETE FROM nodes " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
" AND presence = 'base-deleted' " \
@@ -265,9 +279,9 @@
" AND op_depth > ?3) " \
""
-#define STMT_DELETE_WORKING_BASE_DELETE_RECURSIVE 25
-#define STMT_25_INFO {"STMT_DELETE_WORKING_BASE_DELETE_RECURSIVE", NULL}
-#define STMT_25 \
+#define STMT_DELETE_WORKING_BASE_DELETE_RECURSIVE 26
+#define STMT_26_INFO {"STMT_DELETE_WORKING_BASE_DELETE_RECURSIVE", NULL}
+#define STMT_26 \
"DELETE FROM nodes " \
"WHERE wc_id = ?1 AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
" AND presence = 'base-deleted' " \
@@ -278,35 +292,35 @@
" AND op_depth > ?3) " \
""
-#define STMT_DELETE_WORKING_RECURSIVE 26
-#define STMT_26_INFO {"STMT_DELETE_WORKING_RECURSIVE", NULL}
-#define STMT_26 \
+#define STMT_DELETE_WORKING_RECURSIVE 27
+#define STMT_27_INFO {"STMT_DELETE_WORKING_RECURSIVE", NULL}
+#define STMT_27 \
"DELETE FROM nodes " \
"WHERE wc_id = ?1 AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
" AND op_depth > 0 " \
""
-#define STMT_DELETE_BASE_RECURSIVE 27
-#define STMT_27_INFO {"STMT_DELETE_BASE_RECURSIVE", NULL}
-#define STMT_27 \
+#define STMT_DELETE_BASE_RECURSIVE 28
+#define STMT_28_INFO {"STMT_DELETE_BASE_RECURSIVE", NULL}
+#define STMT_28 \
"DELETE FROM nodes " \
"WHERE wc_id = ?1 AND (local_relpath = ?2 " \
" OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
" AND op_depth = 0 " \
""
-#define STMT_DELETE_WORKING_OP_DEPTH 28
-#define STMT_28_INFO {"STMT_DELETE_WORKING_OP_DEPTH", NULL}
-#define STMT_28 \
+#define STMT_DELETE_WORKING_OP_DEPTH 29
+#define STMT_29_INFO {"STMT_DELETE_WORKING_OP_DEPTH", NULL}
+#define STMT_29 \
"DELETE FROM nodes " \
"WHERE wc_id = ?1 " \
" AND (local_relpath = ?2 OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
" AND op_depth = ?3 " \
""
-#define STMT_SELECT_LAYER_FOR_REPLACE 29
-#define STMT_29_INFO {"STMT_SELECT_LAYER_FOR_REPLACE", NULL}
-#define STMT_29 \
+#define STMT_SELECT_LAYER_FOR_REPLACE 30
+#define STMT_30_INFO {"STMT_SELECT_LAYER_FOR_REPLACE", NULL}
+#define STMT_30 \
"SELECT s.local_relpath, s.kind, " \
" (CASE WHEN (?2) = '' THEN (CASE WHEN (?4) = '' THEN (s.local_relpath) WHEN (s.local_relpath) = '' THEN (?4) ELSE (?4) || '/' || (s.local_relpath) END) WHEN (?4) = '' THEN (CASE WHEN (?2) = '' THEN (s.local_relpath) WHEN SUBSTR((s.local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(s.local_relpath) THEN '' WHEN SUBSTR((s.local_relpath), LENGTH(?2)+1, 1) = '/' THEN SUBSTR((s.local_relpath), LENGTH(?2)+2) END END) WHEN SUBSTR((s.local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(s.local_relpath) THEN (?4) WHEN SUBSTR((s.local_relpath), LENGTH(?2)+1, 1) = '/' THEN (?4) || SUBSTR((s.local_relpath), LENGTH(?2)+1) END END) drp, 'normal' " \
"FROM nodes s " \
@@ -323,9 +337,9 @@
"ORDER BY s.local_relpath " \
""
-#define STMT_SELECT_DESCENDANTS_OP_DEPTH_RV 30
-#define STMT_30_INFO {"STMT_SELECT_DESCENDANTS_OP_DEPTH_RV", NULL}
-#define STMT_30 \
+#define STMT_SELECT_DESCENDANTS_OP_DEPTH_RV 31
+#define STMT_31_INFO {"STMT_SELECT_DESCENDANTS_OP_DEPTH_RV", NULL}
+#define STMT_31 \
"SELECT local_relpath, kind " \
"FROM nodes " \
"WHERE wc_id = ?1 " \
@@ -335,9 +349,9 @@
"ORDER BY local_relpath DESC " \
""
-#define STMT_COPY_NODE_MOVE 31
-#define STMT_31_INFO {"STMT_COPY_NODE_MOVE", NULL}
-#define STMT_31 \
+#define STMT_COPY_NODE_MOVE 32
+#define STMT_32_INFO {"STMT_COPY_NODE_MOVE", NULL}
+#define STMT_32 \
"INSERT OR REPLACE INTO nodes ( " \
" wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \
" revision, presence, depth, kind, changed_revision, changed_date, " \
@@ -356,9 +370,9 @@
"WHERE s.wc_id = ?1 AND s.local_relpath = ?2 AND s.op_depth = ?3 " \
""
-#define STMT_SELECT_NO_LONGER_MOVED_RV 32
-#define STMT_32_INFO {"STMT_SELECT_NO_LONGER_MOVED_RV", NULL}
-#define STMT_32 \
+#define STMT_SELECT_NO_LONGER_MOVED_RV 33
+#define STMT_33_INFO {"STMT_SELECT_NO_LONGER_MOVED_RV", NULL}
+#define STMT_33 \
"SELECT d.local_relpath, (CASE WHEN (?2) = '' THEN (CASE WHEN (?4) = '' THEN (d.local_relpath) WHEN (d.local_relpath) = '' THEN (?4) ELSE (?4) || '/' || (d.local_relpath) END) WHEN (?4) = '' THEN (CASE WHEN (?2) = '' THEN (d.local_relpath) WHEN SUBSTR((d.local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(d.local_relpath) THEN '' WHEN SUBSTR((d.local_relpath), LENGTH(?2)+1, 1) = '/' THEN SUBSTR((d.local_relpath), LENGTH(?2)+2) END END) WHEN SUBSTR((d.local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(d.local_relpath) THEN (?4) WHEN SUBSTR((d.local_relpath), LENGTH(?2)+1, 1) = '/' THEN (?4) || SUBSTR((d.local_relpath), LENGTH(?2)+1) END END) srp, " \
" b.presence, b.op_depth " \
"FROM nodes d " \
@@ -377,9 +391,9 @@
"ORDER BY d.local_relpath DESC " \
""
-#define STMT_SELECT_OP_DEPTH_CHILDREN 33
-#define STMT_33_INFO {"STMT_SELECT_OP_DEPTH_CHILDREN", NULL}
-#define STMT_33 \
+#define STMT_SELECT_OP_DEPTH_CHILDREN 34
+#define STMT_34_INFO {"STMT_SELECT_OP_DEPTH_CHILDREN", NULL}
+#define STMT_34 \
"SELECT local_relpath, kind FROM nodes " \
"WHERE wc_id = ?1 " \
" AND parent_relpath = ?2 " \
@@ -389,9 +403,9 @@
"ORDER BY local_relpath " \
""
-#define STMT_SELECT_OP_DEPTH_CHILDREN_EXISTS 34
-#define STMT_34_INFO {"STMT_SELECT_OP_DEPTH_CHILDREN_EXISTS", NULL}
-#define STMT_34 \
+#define STMT_SELECT_OP_DEPTH_CHILDREN_EXISTS 35
+#define STMT_35_INFO {"STMT_SELECT_OP_DEPTH_CHILDREN_EXISTS", NULL}
+#define STMT_35 \
"SELECT local_relpath, kind FROM nodes " \
"WHERE wc_id = ?1 " \
" AND parent_relpath = ?2 " \
@@ -400,9 +414,9 @@
"ORDER BY local_relpath " \
""
-#define STMT_SELECT_GE_OP_DEPTH_CHILDREN 35
-#define STMT_35_INFO {"STMT_SELECT_GE_OP_DEPTH_CHILDREN", NULL}
-#define STMT_35 \
+#define STMT_SELECT_GE_OP_DEPTH_CHILDREN 36
+#define STMT_36_INFO {"STMT_SELECT_GE_OP_DEPTH_CHILDREN", NULL}
+#define STMT_36 \
"SELECT 1 FROM nodes " \
"WHERE wc_id = ?1 AND parent_relpath = ?2 " \
" AND (op_depth > ?3 OR (op_depth = ?3 " \
@@ -414,9 +428,9 @@
" WHERE wc_id = ?1 AND n.local_relpath = a.local_relpath) " \
""
-#define STMT_DELETE_SHADOWED_RECURSIVE 36
-#define STMT_36_INFO {"STMT_DELETE_SHADOWED_RECURSIVE", NULL}
-#define STMT_36 \
+#define STMT_DELETE_SHADOWED_RECURSIVE 37
+#define STMT_37_INFO {"STMT_DELETE_SHADOWED_RECURSIVE", NULL}
+#define STMT_37 \
"DELETE FROM nodes " \
"WHERE wc_id = ?1 " \
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
@@ -424,26 +438,26 @@
" OR (op_depth = ?3 AND presence = 'base-deleted')) " \
""
-#define STMT_CLEAR_MOVED_TO_FROM_DEST 37
-#define STMT_37_INFO {"STMT_CLEAR_MOVED_TO_FROM_DEST", NULL}
-#define STMT_37 \
+#define STMT_CLEAR_MOVED_TO_FROM_DEST 38
+#define STMT_38_INFO {"STMT_CLEAR_MOVED_TO_FROM_DEST", NULL}
+#define STMT_38 \
"UPDATE NODES SET moved_to = NULL " \
"WHERE wc_id = ?1 " \
" AND moved_to = ?2 " \
""
-#define STMT_SELECT_NOT_PRESENT_DESCENDANTS 38
-#define STMT_38_INFO {"STMT_SELECT_NOT_PRESENT_DESCENDANTS", NULL}
-#define STMT_38 \
+#define STMT_SELECT_NOT_PRESENT_DESCENDANTS 39
+#define STMT_39_INFO {"STMT_SELECT_NOT_PRESENT_DESCENDANTS", NULL}
+#define STMT_39 \
"SELECT local_relpath FROM nodes " \
"WHERE wc_id = ?1 AND op_depth = ?3 " \
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
" AND presence = 'not-present' " \
""
-#define STMT_COMMIT_DESCENDANTS_TO_BASE 39
-#define STMT_39_INFO {"STMT_COMMIT_DESCENDANTS_TO_BASE", NULL}
-#define STMT_39 \
+#define STMT_COMMIT_DESCENDANTS_TO_BASE 40
+#define STMT_40_INFO {"STMT_COMMIT_DESCENDANTS_TO_BASE", NULL}
+#define STMT_40 \
"UPDATE NODES SET op_depth = 0, " \
" repos_id = ?4, " \
" repos_path = (CASE WHEN (?2) = '' THEN (CASE WHEN (?5) = '' THEN (local_relpath) WHEN (local_relpath) = '' THEN (?5) ELSE (?5) || '/' || (local_relpath) END) WHEN (?5) = '' THEN (CASE WHEN (?2) = '' THEN (local_relpath) WHEN SUBSTR((local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(local_relpath) THEN '' WHEN SUBSTR((local_relpath), LENGTH(?2)+1, 1) = '/' THEN SUBSTR((local_relpath), LENGTH(?2)+2) END END) WHEN SUBSTR((local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(local_relpath) THEN (?5) WHEN SUBSTR((local_relpath), LENGTH(?2)+1, 1) = '/' THEN (?5) || SUBSTR((local_relpath), LENGTH(?2)+1) END END), " \
@@ -461,17 +475,17 @@
" AND op_depth = ?3 " \
""
-#define STMT_SELECT_NODE_CHILDREN 40
-#define STMT_40_INFO {"STMT_SELECT_NODE_CHILDREN", NULL}
-#define STMT_40 \
+#define STMT_SELECT_NODE_CHILDREN 41
+#define STMT_41_INFO {"STMT_SELECT_NODE_CHILDREN", NULL}
+#define STMT_41 \
"SELECT DISTINCT local_relpath FROM nodes " \
"WHERE wc_id = ?1 AND parent_relpath = ?2 " \
"ORDER BY local_relpath " \
""
-#define STMT_SELECT_WORKING_CHILDREN 41
-#define STMT_41_INFO {"STMT_SELECT_WORKING_CHILDREN", NULL}
-#define STMT_41 \
+#define STMT_SELECT_WORKING_CHILDREN 42
+#define STMT_42_INFO {"STMT_SELECT_WORKING_CHILDREN", NULL}
+#define STMT_42 \
"SELECT DISTINCT local_relpath FROM nodes " \
"WHERE wc_id = ?1 AND parent_relpath = ?2 " \
" AND (op_depth > (SELECT MAX(op_depth) FROM nodes " \
@@ -483,56 +497,56 @@
"ORDER BY local_relpath " \
""
-#define STMT_SELECT_BASE_NOT_PRESENT_CHILDREN 42
-#define STMT_42_INFO {"STMT_SELECT_BASE_NOT_PRESENT_CHILDREN", NULL}
-#define STMT_42 \
+#define STMT_SELECT_BASE_NOT_PRESENT_CHILDREN 43
+#define STMT_43_INFO {"STMT_SELECT_BASE_NOT_PRESENT_CHILDREN", NULL}
+#define STMT_43 \
"SELECT local_relpath FROM nodes " \
"WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = 0 " \
" AND presence = 'not-present' " \
"ORDER BY local_relpath " \
""
-#define STMT_SELECT_NODE_PROPS 43
-#define STMT_43_INFO {"STMT_SELECT_NODE_PROPS", NULL}
-#define STMT_43 \
+#define STMT_SELECT_NODE_PROPS 44
+#define STMT_44_INFO {"STMT_SELECT_NODE_PROPS", NULL}
+#define STMT_44 \
"SELECT properties, presence FROM nodes " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
"ORDER BY op_depth DESC " \
""
-#define STMT_SELECT_ACTUAL_PROPS 44
-#define STMT_44_INFO {"STMT_SELECT_ACTUAL_PROPS", NULL}
-#define STMT_44 \
+#define STMT_SELECT_ACTUAL_PROPS 45
+#define STMT_45_INFO {"STMT_SELECT_ACTUAL_PROPS", NULL}
+#define STMT_45 \
"SELECT properties FROM actual_node " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
""
-#define STMT_UPDATE_ACTUAL_PROPS 45
-#define STMT_45_INFO {"STMT_UPDATE_ACTUAL_PROPS", NULL}
-#define STMT_45 \
+#define STMT_UPDATE_ACTUAL_PROPS 46
+#define STMT_46_INFO {"STMT_UPDATE_ACTUAL_PROPS", NULL}
+#define STMT_46 \
"UPDATE actual_node SET properties = ?3 " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
""
-#define STMT_INSERT_ACTUAL_PROPS 46
-#define STMT_46_INFO {"STMT_INSERT_ACTUAL_PROPS", NULL}
-#define STMT_46 \
+#define STMT_INSERT_ACTUAL_PROPS 47
+#define STMT_47_INFO {"STMT_INSERT_ACTUAL_PROPS", NULL}
+#define STMT_47 \
"INSERT INTO actual_node (wc_id, local_relpath, parent_relpath, properties) " \
"VALUES (?1, ?2, ?3, ?4) " \
""
-#define STMT_INSERT_LOCK 47
-#define STMT_47_INFO {"STMT_INSERT_LOCK", NULL}
-#define STMT_47 \
+#define STMT_INSERT_LOCK 48
+#define STMT_48_INFO {"STMT_INSERT_LOCK", NULL}
+#define STMT_48 \
"INSERT OR REPLACE INTO lock " \
"(repos_id, repos_relpath, lock_token, lock_owner, lock_comment, " \
" lock_date) " \
"VALUES (?1, ?2, ?3, ?4, ?5, ?6) " \
""
-#define STMT_SELECT_BASE_NODE_LOCK_TOKENS_RECURSIVE 48
-#define STMT_48_INFO {"STMT_SELECT_BASE_NODE_LOCK_TOKENS_RECURSIVE", NULL}
-#define STMT_48 \
+#define STMT_SELECT_BASE_NODE_LOCK_TOKENS_RECURSIVE 49
+#define STMT_49_INFO {"STMT_SELECT_BASE_NODE_LOCK_TOKENS_RECURSIVE", NULL}
+#define STMT_49 \
"SELECT nodes.repos_id, nodes.repos_path, lock_token " \
"FROM nodes " \
"LEFT JOIN lock ON nodes.repos_id = lock.repos_id " \
@@ -541,30 +555,30 @@
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
""
-#define STMT_INSERT_WCROOT 49
-#define STMT_49_INFO {"STMT_INSERT_WCROOT", NULL}
-#define STMT_49 \
+#define STMT_INSERT_WCROOT 50
+#define STMT_50_INFO {"STMT_INSERT_WCROOT", NULL}
+#define STMT_50 \
"INSERT INTO wcroot (local_abspath) " \
"VALUES (?1) " \
""
-#define STMT_UPDATE_BASE_NODE_DAV_CACHE 50
-#define STMT_50_INFO {"STMT_UPDATE_BASE_NODE_DAV_CACHE", NULL}
-#define STMT_50 \
+#define STMT_UPDATE_BASE_NODE_DAV_CACHE 51
+#define STMT_51_INFO {"STMT_UPDATE_BASE_NODE_DAV_CACHE", NULL}
+#define STMT_51 \
"UPDATE nodes SET dav_cache = ?3 " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
""
-#define STMT_SELECT_BASE_DAV_CACHE 51
-#define STMT_51_INFO {"STMT_SELECT_BASE_DAV_CACHE", NULL}
-#define STMT_51 \
+#define STMT_SELECT_BASE_DAV_CACHE 52
+#define STMT_52_INFO {"STMT_SELECT_BASE_DAV_CACHE", NULL}
+#define STMT_52 \
"SELECT dav_cache FROM nodes " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
""
-#define STMT_SELECT_DELETION_INFO 52
-#define STMT_52_INFO {"STMT_SELECT_DELETION_INFO", NULL}
-#define STMT_52 \
+#define STMT_SELECT_DELETION_INFO 53
+#define STMT_53_INFO {"STMT_SELECT_DELETION_INFO", NULL}
+#define STMT_53 \
"SELECT b.presence, w.presence, w.op_depth, w.moved_to " \
"FROM nodes w " \
"LEFT JOIN nodes b ON b.wc_id = ?1 AND b.local_relpath = ?2 AND b.op_depth = 0 " \
@@ -575,18 +589,18 @@
"LIMIT 1 " \
""
-#define STMT_SELECT_MOVED_TO_NODE 53
-#define STMT_53_INFO {"STMT_SELECT_MOVED_TO_NODE", NULL}
-#define STMT_53 \
+#define STMT_SELECT_MOVED_TO_NODE 54
+#define STMT_54_INFO {"STMT_SELECT_MOVED_TO_NODE", NULL}
+#define STMT_54 \
"SELECT op_depth, moved_to " \
"FROM nodes " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND moved_to IS NOT NULL " \
"ORDER BY op_depth DESC " \
""
-#define STMT_SELECT_OP_DEPTH_MOVED_TO 54
-#define STMT_54_INFO {"STMT_SELECT_OP_DEPTH_MOVED_TO", NULL}
-#define STMT_54 \
+#define STMT_SELECT_OP_DEPTH_MOVED_TO 55
+#define STMT_55_INFO {"STMT_SELECT_OP_DEPTH_MOVED_TO", NULL}
+#define STMT_55 \
"SELECT op_depth, moved_to " \
"FROM nodes " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > ?3 " \
@@ -597,17 +611,17 @@
"LIMIT 1 " \
""
-#define STMT_SELECT_MOVED_TO 55
-#define STMT_55_INFO {"STMT_SELECT_MOVED_TO", NULL}
-#define STMT_55 \
+#define STMT_SELECT_MOVED_TO 56
+#define STMT_56_INFO {"STMT_SELECT_MOVED_TO", NULL}
+#define STMT_56 \
"SELECT moved_to " \
"FROM nodes " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
""
-#define STMT_SELECT_MOVED_BACK 56
-#define STMT_56_INFO {"STMT_SELECT_MOVED_BACK", NULL}
-#define STMT_56 \
+#define STMT_SELECT_MOVED_BACK 57
+#define STMT_57_INFO {"STMT_SELECT_MOVED_BACK", NULL}
+#define STMT_57 \
"SELECT u.local_relpath, " \
" u.presence, u.repos_id, u.repos_path, u.revision, " \
" l.presence, l.repos_id, l.repos_path, l.revision, " \
@@ -633,71 +647,71 @@
" AND u.op_depth = ?4 " \
""
-#define STMT_DELETE_LOCK 57
-#define STMT_57_INFO {"STMT_DELETE_LOCK", NULL}
-#define STMT_57 \
+#define STMT_DELETE_LOCK 58
+#define STMT_58_INFO {"STMT_DELETE_LOCK", NULL}
+#define STMT_58 \
"DELETE FROM lock " \
"WHERE repos_id = ?1 AND repos_relpath = ?2 " \
""
-#define STMT_DELETE_LOCK_RECURSIVELY 58
-#define STMT_58_INFO {"STMT_DELETE_LOCK_RECURSIVELY", NULL}
-#define STMT_58 \
+#define STMT_DELETE_LOCK_RECURSIVELY 59
+#define STMT_59_INFO {"STMT_DELETE_LOCK_RECURSIVELY", NULL}
+#define STMT_59 \
"DELETE FROM lock " \
"WHERE repos_id = ?1 AND (repos_relpath = ?2 OR (((repos_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((repos_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
""
-#define STMT_CLEAR_BASE_NODE_RECURSIVE_DAV_CACHE 59
-#define STMT_59_INFO {"STMT_CLEAR_BASE_NODE_RECURSIVE_DAV_CACHE", NULL}
-#define STMT_59 \
+#define STMT_CLEAR_BASE_NODE_RECURSIVE_DAV_CACHE 60
+#define STMT_60_INFO {"STMT_CLEAR_BASE_NODE_RECURSIVE_DAV_CACHE", NULL}
+#define STMT_60 \
"UPDATE nodes SET dav_cache = NULL " \
"WHERE dav_cache IS NOT NULL AND wc_id = ?1 AND op_depth = 0 " \
" AND (local_relpath = ?2 " \
" OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
""
-#define STMT_RECURSIVE_UPDATE_NODE_REPO 60
-#define STMT_60_INFO {"STMT_RECURSIVE_UPDATE_NODE_REPO", NULL}
-#define STMT_60 \
+#define STMT_RECURSIVE_UPDATE_NODE_REPO 61
+#define STMT_61_INFO {"STMT_RECURSIVE_UPDATE_NODE_REPO", NULL}
+#define STMT_61 \
"UPDATE nodes SET repos_id = ?4, dav_cache = NULL " \
"WHERE (wc_id = ?1 AND local_relpath = ?2 AND repos_id = ?3) " \
" OR (wc_id = ?1 AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
" AND repos_id = ?3) " \
""
-#define STMT_UPDATE_LOCK_REPOS_ID 61
-#define STMT_61_INFO {"STMT_UPDATE_LOCK_REPOS_ID", NULL}
-#define STMT_61 \
+#define STMT_UPDATE_LOCK_REPOS_ID 62
+#define STMT_62_INFO {"STMT_UPDATE_LOCK_REPOS_ID", NULL}
+#define STMT_62 \
"UPDATE lock SET repos_id = ?2 " \
"WHERE repos_id = ?1 " \
""
-#define STMT_UPDATE_NODE_FILEINFO 62
-#define STMT_62_INFO {"STMT_UPDATE_NODE_FILEINFO", NULL}
-#define STMT_62 \
+#define STMT_UPDATE_NODE_FILEINFO 63
+#define STMT_63_INFO {"STMT_UPDATE_NODE_FILEINFO", NULL}
+#define STMT_63 \
"UPDATE nodes SET translated_size = ?3, last_mod_time = ?4 " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
" AND op_depth = (SELECT MAX(op_depth) FROM nodes " \
" WHERE wc_id = ?1 AND local_relpath = ?2) " \
""
-#define STMT_INSERT_ACTUAL_CONFLICT 63
-#define STMT_63_INFO {"STMT_INSERT_ACTUAL_CONFLICT", NULL}
-#define STMT_63 \
+#define STMT_INSERT_ACTUAL_CONFLICT 64
+#define STMT_64_INFO {"STMT_INSERT_ACTUAL_CONFLICT", NULL}
+#define STMT_64 \
"INSERT INTO actual_node (wc_id, local_relpath, conflict_data, parent_relpath) " \
"VALUES (?1, ?2, ?3, ?4) " \
""
-#define STMT_UPDATE_ACTUAL_CONFLICT 64
-#define STMT_64_INFO {"STMT_UPDATE_ACTUAL_CONFLICT", NULL}
-#define STMT_64 \
+#define STMT_UPDATE_ACTUAL_CONFLICT 65
+#define STMT_65_INFO {"STMT_UPDATE_ACTUAL_CONFLICT", NULL}
+#define STMT_65 \
"UPDATE actual_node SET conflict_data = ?3 " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
""
-#define STMT_UPDATE_ACTUAL_CHANGELISTS 65
-#define STMT_65_INFO {"STMT_UPDATE_ACTUAL_CHANGELISTS", NULL}
-#define STMT_65 \
+#define STMT_UPDATE_ACTUAL_CHANGELISTS 66
+#define STMT_66_INFO {"STMT_UPDATE_ACTUAL_CHANGELISTS", NULL}
+#define STMT_66 \
"UPDATE actual_node SET changelist = ?3 " \
"WHERE wc_id = ?1 " \
" AND (local_relpath = ?2 OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
@@ -707,16 +721,16 @@
" AND kind = 'file') " \
""
-#define STMT_UPDATE_ACTUAL_CLEAR_CHANGELIST 66
-#define STMT_66_INFO {"STMT_UPDATE_ACTUAL_CLEAR_CHANGELIST", NULL}
-#define STMT_66 \
+#define STMT_UPDATE_ACTUAL_CLEAR_CHANGELIST 67
+#define STMT_67_INFO {"STMT_UPDATE_ACTUAL_CLEAR_CHANGELIST", NULL}
+#define STMT_67 \
"UPDATE actual_node SET changelist = NULL " \
" WHERE wc_id = ?1 AND local_relpath = ?2 " \
""
-#define STMT_MARK_SKIPPED_CHANGELIST_DIRS 67
-#define STMT_67_INFO {"STMT_MARK_SKIPPED_CHANGELIST_DIRS", NULL}
-#define STMT_67 \
+#define STMT_MARK_SKIPPED_CHANGELIST_DIRS 68
+#define STMT_68_INFO {"STMT_MARK_SKIPPED_CHANGELIST_DIRS", NULL}
+#define STMT_68 \
"INSERT INTO changelist_list (wc_id, local_relpath, notify, changelist) " \
"SELECT wc_id, local_relpath, 7, ?3 " \
"FROM targets_list " \
@@ -725,17 +739,17 @@
" AND kind = 'dir' " \
""
-#define STMT_RESET_ACTUAL_WITH_CHANGELIST 68
-#define STMT_68_INFO {"STMT_RESET_ACTUAL_WITH_CHANGELIST", NULL}
-#define STMT_68 \
+#define STMT_RESET_ACTUAL_WITH_CHANGELIST 69
+#define STMT_69_INFO {"STMT_RESET_ACTUAL_WITH_CHANGELIST", NULL}
+#define STMT_69 \
"REPLACE INTO actual_node ( " \
" wc_id, local_relpath, parent_relpath, changelist) " \
"VALUES (?1, ?2, ?3, ?4) " \
""
-#define STMT_CREATE_CHANGELIST_LIST 69
-#define STMT_69_INFO {"STMT_CREATE_CHANGELIST_LIST", NULL}
-#define STMT_69 \
+#define STMT_CREATE_CHANGELIST_LIST 70
+#define STMT_70_INFO {"STMT_CREATE_CHANGELIST_LIST", NULL}
+#define STMT_70 \
"DROP TABLE IF EXISTS changelist_list; " \
"CREATE TEMPORARY TABLE changelist_list ( " \
" wc_id INTEGER NOT NULL, " \
@@ -746,9 +760,9 @@
") " \
""
-#define STMT_CREATE_CHANGELIST_TRIGGER 70
-#define STMT_70_INFO {"STMT_CREATE_CHANGELIST_TRIGGER", NULL}
-#define STMT_70 \
+#define STMT_CREATE_CHANGELIST_TRIGGER 71
+#define STMT_71_INFO {"STMT_CREATE_CHANGELIST_TRIGGER", NULL}
+#define STMT_71 \
"DROP TRIGGER IF EXISTS trigger_changelist_list_change; " \
"CREATE TEMPORARY TRIGGER trigger_changelist_list_change " \
"BEFORE UPDATE ON actual_node " \
@@ -763,25 +777,25 @@
"END " \
""
-#define STMT_FINALIZE_CHANGELIST 71
-#define STMT_71_INFO {"STMT_FINALIZE_CHANGELIST", NULL}
-#define STMT_71 \
+#define STMT_FINALIZE_CHANGELIST 72
+#define STMT_72_INFO {"STMT_FINALIZE_CHANGELIST", NULL}
+#define STMT_72 \
"DROP TRIGGER trigger_changelist_list_change; " \
"DROP TABLE changelist_list; " \
"DROP TABLE targets_list " \
""
-#define STMT_SELECT_CHANGELIST_LIST 72
-#define STMT_72_INFO {"STMT_SELECT_CHANGELIST_LIST", NULL}
-#define STMT_72 \
+#define STMT_SELECT_CHANGELIST_LIST 73
+#define STMT_73_INFO {"STMT_SELECT_CHANGELIST_LIST", NULL}
+#define STMT_73 \
"SELECT wc_id, local_relpath, notify, changelist " \
"FROM changelist_list " \
"ORDER BY wc_id, local_relpath ASC, notify DESC " \
""
-#define STMT_CREATE_TARGETS_LIST 73
-#define STMT_73_INFO {"STMT_CREATE_TARGETS_LIST", NULL}
-#define STMT_73 \
+#define STMT_CREATE_TARGETS_LIST 74
+#define STMT_74_INFO {"STMT_CREATE_TARGETS_LIST", NULL}
+#define STMT_74 \
"DROP TABLE IF EXISTS targets_list; " \
"CREATE TEMPORARY TABLE targets_list ( " \
" wc_id INTEGER NOT NULL, " \
@@ -792,15 +806,15 @@
" ); " \
""
-#define STMT_DROP_TARGETS_LIST 74
-#define STMT_74_INFO {"STMT_DROP_TARGETS_LIST", NULL}
-#define STMT_74 \
+#define STMT_DROP_TARGETS_LIST 75
+#define STMT_75_INFO {"STMT_DROP_TARGETS_LIST", NULL}
+#define STMT_75 \
"DROP TABLE targets_list " \
""
-#define STMT_INSERT_TARGET 75
-#define STMT_75_INFO {"STMT_INSERT_TARGET", NULL}
-#define STMT_75 \
+#define STMT_INSERT_TARGET 76
+#define STMT_76_INFO {"STMT_INSERT_TARGET", NULL}
+#define STMT_76 \
"INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
"SELECT wc_id, local_relpath, parent_relpath, kind " \
"FROM nodes_current " \
@@ -808,9 +822,9 @@
" AND local_relpath = ?2 " \
""
-#define STMT_INSERT_TARGET_DEPTH_FILES 76
-#define STMT_76_INFO {"STMT_INSERT_TARGET_DEPTH_FILES", NULL}
-#define STMT_76 \
+#define STMT_INSERT_TARGET_DEPTH_FILES 77
+#define STMT_77_INFO {"STMT_INSERT_TARGET_DEPTH_FILES", NULL}
+#define STMT_77 \
"INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
"SELECT wc_id, local_relpath, parent_relpath, kind " \
"FROM nodes_current " \
@@ -819,9 +833,9 @@
" AND kind = 'file' " \
""
-#define STMT_INSERT_TARGET_DEPTH_IMMEDIATES 77
-#define STMT_77_INFO {"STMT_INSERT_TARGET_DEPTH_IMMEDIATES", NULL}
-#define STMT_77 \
+#define STMT_INSERT_TARGET_DEPTH_IMMEDIATES 78
+#define STMT_78_INFO {"STMT_INSERT_TARGET_DEPTH_IMMEDIATES", NULL}
+#define STMT_78 \
"INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
"SELECT wc_id, local_relpath, parent_relpath, kind " \
"FROM nodes_current " \
@@ -829,9 +843,9 @@
" AND parent_relpath = ?2 " \
""
-#define STMT_INSERT_TARGET_DEPTH_INFINITY 78
-#define STMT_78_INFO {"STMT_INSERT_TARGET_DEPTH_INFINITY", NULL}
-#define STMT_78 \
+#define STMT_INSERT_TARGET_DEPTH_INFINITY 79
+#define STMT_79_INFO {"STMT_INSERT_TARGET_DEPTH_INFINITY", NULL}
+#define STMT_79 \
"INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
"SELECT wc_id, local_relpath, parent_relpath, kind " \
"FROM nodes_current " \
@@ -839,9 +853,9 @@
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
""
-#define STMT_INSERT_TARGET_WITH_CHANGELIST 79
-#define STMT_79_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST", NULL}
-#define STMT_79 \
+#define STMT_INSERT_TARGET_WITH_CHANGELIST 80
+#define STMT_80_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST", NULL}
+#define STMT_80 \
"INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
"SELECT N.wc_id, N.local_relpath, N.parent_relpath, N.kind " \
" FROM actual_node AS A JOIN nodes_current AS N " \
@@ -851,9 +865,9 @@
" AND A.changelist = ?3 " \
""
-#define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_FILES 80
-#define STMT_80_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_FILES", NULL}
-#define STMT_80 \
+#define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_FILES 81
+#define STMT_81_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_FILES", NULL}
+#define STMT_81 \
"INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
"SELECT N.wc_id, N.local_relpath, N.parent_relpath, N.kind " \
" FROM actual_node AS A JOIN nodes_current AS N " \
@@ -864,9 +878,9 @@
" AND A.changelist = ?3 " \
""
-#define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_IMMEDIATES 81
-#define STMT_81_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_IMMEDIATES", NULL}
-#define STMT_81 \
+#define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_IMMEDIATES 82
+#define STMT_82_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_IMMEDIATES", NULL}
+#define STMT_82 \
"INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
"SELECT N.wc_id, N.local_relpath, N.parent_relpath, N.kind " \
" FROM actual_node AS A JOIN nodes_current AS N " \
@@ -876,9 +890,9 @@
" AND A.changelist = ?3 " \
""
-#define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_INFINITY 82
-#define STMT_82_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_INFINITY", NULL}
-#define STMT_82 \
+#define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_INFINITY 83
+#define STMT_83_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_INFINITY", NULL}
+#define STMT_83 \
"INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
"SELECT N.wc_id, N.local_relpath, N.parent_relpath, N.kind " \
" FROM actual_node AS A JOIN nodes_current AS N " \
@@ -888,18 +902,18 @@
" AND A.changelist = ?3 " \
""
-#define STMT_INSERT_ACTUAL_EMPTIES 83
-#define STMT_83_INFO {"STMT_INSERT_ACTUAL_EMPTIES", NULL}
-#define STMT_83 \
+#define STMT_INSERT_ACTUAL_EMPTIES 84
+#define STMT_84_INFO {"STMT_INSERT_ACTUAL_EMPTIES", NULL}
+#define STMT_84 \
"INSERT OR IGNORE INTO actual_node ( " \
" wc_id, local_relpath, parent_relpath) " \
"SELECT wc_id, local_relpath, parent_relpath " \
"FROM targets_list " \
""
-#define STMT_INSERT_ACTUAL_EMPTIES_FILES 84
-#define STMT_84_INFO {"STMT_INSERT_ACTUAL_EMPTIES_FILES", NULL}
-#define STMT_84 \
+#define STMT_INSERT_ACTUAL_EMPTIES_FILES 85
+#define STMT_85_INFO {"STMT_INSERT_ACTUAL_EMPTIES_FILES", NULL}
+#define STMT_85 \
"INSERT OR IGNORE INTO actual_node ( " \
" wc_id, local_relpath, parent_relpath) " \
"SELECT wc_id, local_relpath, parent_relpath " \
@@ -907,9 +921,9 @@
"WHERE kind='file' " \
""
-#define STMT_DELETE_ACTUAL_EMPTY 85
-#define STMT_85_INFO {"STMT_DELETE_ACTUAL_EMPTY", NULL}
-#define STMT_85 \
+#define STMT_DELETE_ACTUAL_EMPTY 86
+#define STMT_86_INFO {"STMT_DELETE_ACTUAL_EMPTY", NULL}
+#define STMT_86 \
"DELETE FROM actual_node " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
" AND properties IS NULL " \
@@ -921,9 +935,9 @@
" AND left_checksum IS NULL " \
""
-#define STMT_DELETE_ACTUAL_EMPTIES 86
-#define STMT_86_INFO {"STMT_DELETE_ACTUAL_EMPTIES", NULL}
-#define STMT_86 \
+#define STMT_DELETE_ACTUAL_EMPTIES 87
+#define STMT_87_INFO {"STMT_DELETE_ACTUAL_EMPTIES", NULL}
+#define STMT_87 \
"DELETE FROM actual_node " \
"WHERE wc_id = ?1 " \
" AND (local_relpath = ?2 OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
@@ -936,25 +950,25 @@
" AND left_checksum IS NULL " \
""
-#define STMT_DELETE_BASE_NODE 87
-#define STMT_87_INFO {"STMT_DELETE_BASE_NODE", NULL}
-#define STMT_87 \
+#define STMT_DELETE_BASE_NODE 88
+#define STMT_88_INFO {"STMT_DELETE_BASE_NODE", NULL}
+#define STMT_88 \
"DELETE FROM nodes " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
""
-#define STMT_DELETE_WORKING_NODE 88
-#define STMT_88_INFO {"STMT_DELETE_WORKING_NODE", NULL}
-#define STMT_88 \
+#define STMT_DELETE_WORKING_NODE 89
+#define STMT_89_INFO {"STMT_DELETE_WORKING_NODE", NULL}
+#define STMT_89 \
"DELETE FROM nodes " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
" AND op_depth = (SELECT MAX(op_depth) FROM nodes " \
" WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > 0) " \
""
-#define STMT_DELETE_LOWEST_WORKING_NODE 89
-#define STMT_89_INFO {"STMT_DELETE_LOWEST_WORKING_NODE", NULL}
-#define STMT_89 \
+#define STMT_DELETE_LOWEST_WORKING_NODE 90
+#define STMT_90_INFO {"STMT_DELETE_LOWEST_WORKING_NODE", NULL}
+#define STMT_90 \
"DELETE FROM nodes " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
" AND op_depth = (SELECT MIN(op_depth) FROM nodes " \
@@ -962,16 +976,16 @@
" AND presence = 'base-deleted' " \
""
-#define STMT_DELETE_NODE_ALL_LAYERS 90
-#define STMT_90_INFO {"STMT_DELETE_NODE_ALL_LAYERS", NULL}
-#define STMT_90 \
+#define STMT_DELETE_NODE_ALL_LAYERS 91
+#define STMT_91_INFO {"STMT_DELETE_NODE_ALL_LAYERS", NULL}
+#define STMT_91 \
"DELETE FROM nodes " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
""
-#define STMT_DELETE_NODES_ABOVE_DEPTH_RECURSIVE 91
-#define STMT_91_INFO {"STMT_DELETE_NODES_ABOVE_DEPTH_RECURSIVE", NULL}
-#define STMT_91 \
+#define STMT_DELETE_NODES_ABOVE_DEPTH_RECURSIVE 92
+#define STMT_92_INFO {"STMT_DELETE_NODES_ABOVE_DEPTH_RECURSIVE", NULL}
+#define STMT_92 \
"DELETE FROM nodes " \
"WHERE wc_id = ?1 " \
" AND (local_relpath = ?2 " \
@@ -979,25 +993,25 @@
" AND op_depth >= ?3 " \
""
-#define STMT_DELETE_ACTUAL_NODE 92
-#define STMT_92_INFO {"STMT_DELETE_ACTUAL_NODE", NULL}
-#define STMT_92 \
+#define STMT_DELETE_ACTUAL_NODE 93
+#define STMT_93_INFO {"STMT_DELETE_ACTUAL_NODE", NULL}
+#define STMT_93 \
"DELETE FROM actual_node " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
""
-#define STMT_DELETE_ACTUAL_NODE_RECURSIVE 93
-#define STMT_93_INFO {"STMT_DELETE_ACTUAL_NODE_RECURSIVE", NULL}
-#define STMT_93 \
+#define STMT_DELETE_ACTUAL_NODE_RECURSIVE 94
+#define STMT_94_INFO {"STMT_DELETE_ACTUAL_NODE_RECURSIVE", NULL}
+#define STMT_94 \
"DELETE FROM actual_node " \
"WHERE wc_id = ?1 " \
" AND (local_relpath = ?2 " \
" OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
""
-#define STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST 94
-#define STMT_94_INFO {"STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST", NULL}
-#define STMT_94 \
+#define STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST 95
+#define STMT_95_INFO {"STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST", NULL}
+#define STMT_95 \
"DELETE FROM actual_node " \
"WHERE wc_id = ?1 " \
" AND local_relpath = ?2 " \
@@ -1007,9 +1021,9 @@
" AND c.kind = 'file')) " \
""
-#define STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE 95
-#define STMT_95_INFO {"STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE", NULL}
-#define STMT_95 \
+#define STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE 96
+#define STMT_96_INFO {"STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE", NULL}
+#define STMT_96 \
"DELETE FROM actual_node " \
"WHERE wc_id = ?1 " \
" AND (local_relpath = ?2 " \
@@ -1021,9 +1035,9 @@
" AND c.kind = 'file')) " \
""
-#define STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST 96
-#define STMT_96_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST", NULL}
-#define STMT_96 \
+#define STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST 97
+#define STMT_97_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST", NULL}
+#define STMT_97 \
"UPDATE actual_node " \
"SET properties = NULL, " \
" text_mod = NULL, " \
@@ -1035,9 +1049,9 @@
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
""
-#define STMT_CLEAR_ACTUAL_NODE_LEAVING_CONFLICT 97
-#define STMT_97_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CONFLICT", NULL}
-#define STMT_97 \
+#define STMT_CLEAR_ACTUAL_NODE_LEAVING_CONFLICT 98
+#define STMT_98_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CONFLICT", NULL}
+#define STMT_98 \
"UPDATE actual_node " \
"SET properties = NULL, " \
" text_mod = NULL, " \
@@ -1049,9 +1063,9 @@
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
""
-#define STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE 98
-#define STMT_98_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE", NULL}
-#define STMT_98 \
+#define STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE 99
+#define STMT_99_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE", NULL}
+#define STMT_99 \
"UPDATE actual_node " \
"SET properties = NULL, " \
" text_mod = NULL, " \
@@ -1065,109 +1079,109 @@
" OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
""
-#define STMT_UPDATE_NODE_BASE_DEPTH 99
-#define STMT_99_INFO {"STMT_UPDATE_NODE_BASE_DEPTH", NULL}
-#define STMT_99 \
+#define STMT_UPDATE_NODE_BASE_DEPTH 100
+#define STMT_100_INFO {"STMT_UPDATE_NODE_BASE_DEPTH", NULL}
+#define STMT_100 \
"UPDATE nodes SET depth = ?3 " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
" AND kind='dir' " \
" AND presence IN ('normal', 'incomplete') " \
""
-#define STMT_UPDATE_NODE_BASE_PRESENCE 100
-#define STMT_100_INFO {"STMT_UPDATE_NODE_BASE_PRESENCE", NULL}
-#define STMT_100 \
+#define STMT_UPDATE_NODE_BASE_PRESENCE 101
+#define STMT_101_INFO {"STMT_UPDATE_NODE_BASE_PRESENCE", NULL}
+#define STMT_101 \
"UPDATE nodes SET presence = ?3 " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
""
-#define STMT_UPDATE_BASE_NODE_PRESENCE_REVNUM_AND_REPOS_PATH 101
-#define STMT_101_INFO {"STMT_UPDATE_BASE_NODE_PRESENCE_REVNUM_AND_REPOS_PATH", NULL}
-#define STMT_101 \
+#define STMT_UPDATE_BASE_NODE_PRESENCE_REVNUM_AND_REPOS_PATH 102
+#define STMT_102_INFO {"STMT_UPDATE_BASE_NODE_PRESENCE_REVNUM_AND_REPOS_PATH", NULL}
+#define STMT_102 \
"UPDATE nodes SET presence = ?3, revision = ?4, repos_path = ?5 " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
""
-#define STMT_LOOK_FOR_WORK 102
-#define STMT_102_INFO {"STMT_LOOK_FOR_WORK", NULL}
-#define STMT_102 \
+#define STMT_LOOK_FOR_WORK 103
+#define STMT_103_INFO {"STMT_LOOK_FOR_WORK", NULL}
+#define STMT_103 \
"SELECT id FROM work_queue LIMIT 1 " \
""
-#define STMT_INSERT_WORK_ITEM 103
-#define STMT_103_INFO {"STMT_INSERT_WORK_ITEM", NULL}
-#define STMT_103 \
+#define STMT_INSERT_WORK_ITEM 104
+#define STMT_104_INFO {"STMT_INSERT_WORK_ITEM", NULL}
+#define STMT_104 \
"INSERT INTO work_queue (work) VALUES (?1) " \
""
-#define STMT_SELECT_WORK_ITEM 104
-#define STMT_104_INFO {"STMT_SELECT_WORK_ITEM", NULL}
-#define STMT_104 \
+#define STMT_SELECT_WORK_ITEM 105
+#define STMT_105_INFO {"STMT_SELECT_WORK_ITEM", NULL}
+#define STMT_105 \
"SELECT id, work FROM work_queue ORDER BY id LIMIT 1 " \
""
-#define STMT_DELETE_WORK_ITEM 105
-#define STMT_105_INFO {"STMT_DELETE_WORK_ITEM", NULL}
-#define STMT_105 \
+#define STMT_DELETE_WORK_ITEM 106
+#define STMT_106_INFO {"STMT_DELETE_WORK_ITEM", NULL}
+#define STMT_106 \
"DELETE FROM work_queue WHERE id = ?1 " \
""
-#define STMT_INSERT_OR_IGNORE_PRISTINE 106
-#define STMT_106_INFO {"STMT_INSERT_OR_IGNORE_PRISTINE", NULL}
-#define STMT_106 \
+#define STMT_INSERT_OR_IGNORE_PRISTINE 107
+#define STMT_107_INFO {"STMT_INSERT_OR_IGNORE_PRISTINE", NULL}
+#define STMT_107 \
"INSERT OR IGNORE INTO pristine (checksum, md5_checksum, size, refcount) " \
"VALUES (?1, ?2, ?3, 0) " \
""
-#define STMT_INSERT_PRISTINE 107
-#define STMT_107_INFO {"STMT_INSERT_PRISTINE", NULL}
-#define STMT_107 \
+#define STMT_INSERT_PRISTINE 108
+#define STMT_108_INFO {"STMT_INSERT_PRISTINE", NULL}
+#define STMT_108 \
"INSERT INTO pristine (checksum, md5_checksum, size, refcount) " \
"VALUES (?1, ?2, ?3, 0) " \
""
-#define STMT_SELECT_PRISTINE 108
-#define STMT_108_INFO {"STMT_SELECT_PRISTINE", NULL}
-#define STMT_108 \
+#define STMT_SELECT_PRISTINE 109
+#define STMT_109_INFO {"STMT_SELECT_PRISTINE", NULL}
+#define STMT_109 \
"SELECT md5_checksum " \
"FROM pristine " \
"WHERE checksum = ?1 " \
""
-#define STMT_SELECT_PRISTINE_SIZE 109
-#define STMT_109_INFO {"STMT_SELECT_PRISTINE_SIZE", NULL}
-#define STMT_109 \
+#define STMT_SELECT_PRISTINE_SIZE 110
+#define STMT_110_INFO {"STMT_SELECT_PRISTINE_SIZE", NULL}
+#define STMT_110 \
"SELECT size " \
"FROM pristine " \
"WHERE checksum = ?1 LIMIT 1 " \
""
-#define STMT_SELECT_PRISTINE_BY_MD5 110
-#define STMT_110_INFO {"STMT_SELECT_PRISTINE_BY_MD5", NULL}
-#define STMT_110 \
+#define STMT_SELECT_PRISTINE_BY_MD5 111
+#define STMT_111_INFO {"STMT_SELECT_PRISTINE_BY_MD5", NULL}
+#define STMT_111 \
"SELECT checksum " \
"FROM pristine " \
"WHERE md5_checksum = ?1 " \
""
-#define STMT_SELECT_UNREFERENCED_PRISTINES 111
-#define STMT_111_INFO {"STMT_SELECT_UNREFERENCED_PRISTINES", NULL}
-#define STMT_111 \
+#define STMT_SELECT_UNREFERENCED_PRISTINES 112
+#define STMT_112_INFO {"STMT_SELECT_UNREFERENCED_PRISTINES", NULL}
+#define STMT_112 \
"SELECT checksum " \
"FROM pristine " \
"WHERE refcount = 0 " \
""
-#define STMT_DELETE_PRISTINE_IF_UNREFERENCED 112
-#define STMT_112_INFO {"STMT_DELETE_PRISTINE_IF_UNREFERENCED", NULL}
-#define STMT_112 \
+#define STMT_DELETE_PRISTINE_IF_UNREFERENCED 113
+#define STMT_113_INFO {"STMT_DELETE_PRISTINE_IF_UNREFERENCED", NULL}
+#define STMT_113 \
"DELETE FROM pristine " \
"WHERE checksum = ?1 AND refcount = 0 " \
""
-#define STMT_SELECT_COPY_PRISTINES 113
-#define STMT_113_INFO {"STMT_SELECT_COPY_PRISTINES", NULL}
-#define STMT_113 \
+#define STMT_SELECT_COPY_PRISTINES 114
+#define STMT_114_INFO {"STMT_SELECT_COPY_PRISTINES", NULL}
+#define STMT_114 \
"SELECT n.checksum, md5_checksum, size " \
"FROM nodes_current n " \
"LEFT JOIN pristine p ON n.checksum = p.checksum " \
@@ -1185,62 +1199,62 @@
" AND n.checksum IS NOT NULL " \
""
-#define STMT_VACUUM 114
-#define STMT_114_INFO {"STMT_VACUUM", NULL}
-#define STMT_114 \
+#define STMT_VACUUM 115
+#define STMT_115_INFO {"STMT_VACUUM", NULL}
+#define STMT_115 \
"VACUUM " \
""
-#define STMT_SELECT_CONFLICT_VICTIMS 115
-#define STMT_115_INFO {"STMT_SELECT_CONFLICT_VICTIMS", NULL}
-#define STMT_115 \
+#define STMT_SELECT_CONFLICT_VICTIMS 116
+#define STMT_116_INFO {"STMT_SELECT_CONFLICT_VICTIMS", NULL}
+#define STMT_116 \
"SELECT local_relpath, conflict_data " \
"FROM actual_node " \
"WHERE wc_id = ?1 AND parent_relpath = ?2 AND " \
" NOT (conflict_data IS NULL) " \
""
-#define STMT_INSERT_WC_LOCK 116
-#define STMT_116_INFO {"STMT_INSERT_WC_LOCK", NULL}
-#define STMT_116 \
+#define STMT_INSERT_WC_LOCK 117
+#define STMT_117_INFO {"STMT_INSERT_WC_LOCK", NULL}
+#define STMT_117 \
"INSERT INTO wc_lock (wc_id, local_dir_relpath, locked_levels) " \
"VALUES (?1, ?2, ?3) " \
""
-#define STMT_SELECT_WC_LOCK 117
-#define STMT_117_INFO {"STMT_SELECT_WC_LOCK", NULL}
-#define STMT_117 \
+#define STMT_SELECT_WC_LOCK 118
+#define STMT_118_INFO {"STMT_SELECT_WC_LOCK", NULL}
+#define STMT_118 \
"SELECT locked_levels FROM wc_lock " \
"WHERE wc_id = ?1 AND local_dir_relpath = ?2 " \
""
-#define STMT_SELECT_ANCESTOR_WCLOCKS 118
-#define STMT_118_INFO {"STMT_SELECT_ANCESTOR_WCLOCKS", NULL}
-#define STMT_118 \
+#define STMT_SELECT_ANCESTOR_WCLOCKS 119
+#define STMT_119_INFO {"STMT_SELECT_ANCESTOR_WCLOCKS", NULL}
+#define STMT_119 \
"SELECT local_dir_relpath, locked_levels FROM wc_lock " \
"WHERE wc_id = ?1 " \
" AND ((local_dir_relpath >= ?3 AND local_dir_relpath <= ?2) " \
" OR local_dir_relpath = '') " \
""
-#define STMT_DELETE_WC_LOCK 119
-#define STMT_119_INFO {"STMT_DELETE_WC_LOCK", NULL}
-#define STMT_119 \
+#define STMT_DELETE_WC_LOCK 120
+#define STMT_120_INFO {"STMT_DELETE_WC_LOCK", NULL}
+#define STMT_120 \
"DELETE FROM wc_lock " \
"WHERE wc_id = ?1 AND local_dir_relpath = ?2 " \
""
-#define STMT_FIND_WC_LOCK 120
-#define STMT_120_INFO {"STMT_FIND_WC_LOCK", NULL}
-#define STMT_120 \
+#define STMT_FIND_WC_LOCK 121
+#define STMT_121_INFO {"STMT_FIND_WC_LOCK", NULL}
+#define STMT_121 \
"SELECT local_dir_relpath FROM wc_lock " \
"WHERE wc_id = ?1 " \
" AND (((local_dir_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_dir_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
""
-#define STMT_FIND_CONFLICT_DESCENDANT 121
-#define STMT_121_INFO {"STMT_FIND_CONFLICT_DESCENDANT", NULL}
-#define STMT_121 \
+#define STMT_FIND_CONFLICT_DESCENDANT 122
+#define STMT_122_INFO {"STMT_FIND_CONFLICT_DESCENDANT", NULL}
+#define STMT_122 \
"SELECT 1 FROM actual_node " \
"WHERE wc_id = ?1 " \
" AND local_relpath > (?2 || '/') " \
@@ -1249,9 +1263,9 @@
"LIMIT 1 " \
""
-#define STMT_DELETE_WC_LOCK_ORPHAN 122
-#define STMT_122_INFO {"STMT_DELETE_WC_LOCK_ORPHAN", NULL}
-#define STMT_122 \
+#define STMT_DELETE_WC_LOCK_ORPHAN 123
+#define STMT_123_INFO {"STMT_DELETE_WC_LOCK_ORPHAN", NULL}
+#define STMT_123 \
"DELETE FROM wc_lock " \
"WHERE wc_id = ?1 AND local_dir_relpath = ?2 " \
"AND NOT EXISTS (SELECT 1 FROM nodes " \
@@ -1259,9 +1273,9 @@
" AND nodes.local_relpath = wc_lock.local_dir_relpath) " \
""
-#define STMT_DELETE_WC_LOCK_ORPHAN_RECURSIVE 123
-#define STMT_123_INFO {"STMT_DELETE_WC_LOCK_ORPHAN_RECURSIVE", NULL}
-#define STMT_123 \
+#define STMT_DELETE_WC_LOCK_ORPHAN_RECURSIVE 124
+#define STMT_124_INFO {"STMT_DELETE_WC_LOCK_ORPHAN_RECURSIVE", NULL}
+#define STMT_124 \
"DELETE FROM wc_lock " \
"WHERE wc_id = ?1 " \
" AND (local_dir_relpath = ?2 " \
@@ -1271,9 +1285,9 @@
" AND nodes.local_relpath = wc_lock.local_dir_relpath) " \
""
-#define STMT_APPLY_CHANGES_TO_BASE_NODE 124
-#define STMT_124_INFO {"STMT_APPLY_CHANGES_TO_BASE_NODE", NULL}
-#define STMT_124 \
+#define STMT_APPLY_CHANGES_TO_BASE_NODE 125
+#define STMT_125_INFO {"STMT_APPLY_CHANGES_TO_BASE_NODE", NULL}
+#define STMT_125 \
"INSERT OR REPLACE INTO nodes ( " \
" wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \
" revision, presence, depth, kind, changed_revision, changed_date, " \
@@ -1287,18 +1301,18 @@
" AND op_depth = 0)) " \
""
-#define STMT_INSTALL_WORKING_NODE_FOR_DELETE 125
-#define STMT_125_INFO {"STMT_INSTALL_WORKING_NODE_FOR_DELETE", NULL}
-#define STMT_125 \
+#define STMT_INSTALL_WORKING_NODE_FOR_DELETE 126
+#define STMT_126_INFO {"STMT_INSTALL_WORKING_NODE_FOR_DELETE", NULL}
+#define STMT_126 \
"INSERT INTO nodes ( " \
" wc_id, local_relpath, op_depth, " \
" parent_relpath, presence, kind) " \
"VALUES(?1, ?2, ?3, ?4, 'base-deleted', ?5) " \
""
-#define STMT_REPLACE_WITH_BASE_DELETED 126
-#define STMT_126_INFO {"STMT_REPLACE_WITH_BASE_DELETED", NULL}
-#define STMT_126 \
+#define STMT_REPLACE_WITH_BASE_DELETED 127
+#define STMT_127_INFO {"STMT_REPLACE_WITH_BASE_DELETED", NULL}
+#define STMT_127 \
"INSERT OR REPLACE INTO nodes (wc_id, local_relpath, op_depth, parent_relpath, " \
" kind, moved_to, presence) " \
"SELECT wc_id, local_relpath, op_depth, parent_relpath, " \
@@ -1309,9 +1323,9 @@
" AND op_depth = ?3 " \
""
-#define STMT_INSERT_DELETE_FROM_NODE_RECURSIVE 127
-#define STMT_127_INFO {"STMT_INSERT_DELETE_FROM_NODE_RECURSIVE", NULL}
-#define STMT_127 \
+#define STMT_INSERT_DELETE_FROM_NODE_RECURSIVE 128
+#define STMT_128_INFO {"STMT_INSERT_DELETE_FROM_NODE_RECURSIVE", NULL}
+#define STMT_128 \
"INSERT INTO nodes ( " \
" wc_id, local_relpath, op_depth, parent_relpath, presence, kind) " \
"SELECT wc_id, local_relpath, ?4 , parent_relpath, 'base-deleted', " \
@@ -1330,9 +1344,9 @@
"ORDER BY local_relpath " \
""
-#define STMT_INSERT_WORKING_NODE_FROM_BASE_COPY 128
-#define STMT_128_INFO {"STMT_INSERT_WORKING_NODE_FROM_BASE_COPY", NULL}
-#define STMT_128 \
+#define STMT_INSERT_WORKING_NODE_FROM_BASE_COPY 129
+#define STMT_129_INFO {"STMT_INSERT_WORKING_NODE_FROM_BASE_COPY", NULL}
+#define STMT_129 \
"INSERT OR REPLACE INTO nodes ( " \
" wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \
" revision, presence, depth, kind, changed_revision, changed_date, " \
@@ -1348,9 +1362,9 @@
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
""
-#define STMT_INSERT_DELETE_FROM_BASE 129
-#define STMT_129_INFO {"STMT_INSERT_DELETE_FROM_BASE", NULL}
-#define STMT_129 \
+#define STMT_INSERT_DELETE_FROM_BASE 130
+#define STMT_130_INFO {"STMT_INSERT_DELETE_FROM_BASE", NULL}
+#define STMT_130 \
"INSERT INTO nodes ( " \
" wc_id, local_relpath, op_depth, parent_relpath, presence, kind) " \
"SELECT wc_id, local_relpath, ?3 , parent_relpath, " \
@@ -1359,18 +1373,18 @@
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
""
-#define STMT_UPDATE_OP_DEPTH_INCREASE_RECURSIVE 130
-#define STMT_130_INFO {"STMT_UPDATE_OP_DEPTH_INCREASE_RECURSIVE", NULL}
-#define STMT_130 \
+#define STMT_UPDATE_OP_DEPTH_INCREASE_RECURSIVE 131
+#define STMT_131_INFO {"STMT_UPDATE_OP_DEPTH_INCREASE_RECURSIVE", NULL}
+#define STMT_131 \
"UPDATE nodes SET op_depth = ?3 + 1 " \
"WHERE wc_id = ?1 " \
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
" AND op_depth = ?3 " \
""
-#define STMT_COPY_OP_DEPTH_RECURSIVE 131
-#define STMT_131_INFO {"STMT_COPY_OP_DEPTH_RECURSIVE", NULL}
-#define STMT_131 \
+#define STMT_COPY_OP_DEPTH_RECURSIVE 132
+#define STMT_132_INFO {"STMT_COPY_OP_DEPTH_RECURSIVE", NULL}
+#define STMT_132 \
"INSERT INTO nodes ( " \
" wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \
" revision, presence, depth, kind, changed_revision, changed_date, " \
@@ -1395,16 +1409,16 @@
"ORDER BY local_relpath " \
""
-#define STMT_DOES_NODE_EXIST 132
-#define STMT_132_INFO {"STMT_DOES_NODE_EXIST", NULL}
-#define STMT_132 \
+#define STMT_DOES_NODE_EXIST 133
+#define STMT_133_INFO {"STMT_DOES_NODE_EXIST", NULL}
+#define STMT_133 \
"SELECT 1 FROM nodes WHERE wc_id = ?1 AND local_relpath = ?2 " \
"LIMIT 1 " \
""
-#define STMT_HAS_SERVER_EXCLUDED_DESCENDANTS 133
-#define STMT_133_INFO {"STMT_HAS_SERVER_EXCLUDED_DESCENDANTS", NULL}
-#define STMT_133 \
+#define STMT_HAS_SERVER_EXCLUDED_DESCENDANTS 134
+#define STMT_134_INFO {"STMT_HAS_SERVER_EXCLUDED_DESCENDANTS", NULL}
+#define STMT_134 \
"SELECT local_relpath FROM nodes " \
"WHERE wc_id = ?1 " \
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
@@ -1412,9 +1426,9 @@
"LIMIT 1 " \
""
-#define STMT_SELECT_ALL_EXCLUDED_DESCENDANTS 134
-#define STMT_134_INFO {"STMT_SELECT_ALL_EXCLUDED_DESCENDANTS", NULL}
-#define STMT_134 \
+#define STMT_SELECT_ALL_EXCLUDED_DESCENDANTS 135
+#define STMT_135_INFO {"STMT_SELECT_ALL_EXCLUDED_DESCENDANTS", NULL}
+#define STMT_135 \
"SELECT local_relpath FROM nodes " \
"WHERE wc_id = ?1 " \
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
@@ -1422,9 +1436,9 @@
" AND (presence = 'server-excluded' OR presence = 'excluded') " \
""
-#define STMT_INSERT_WORKING_NODE_COPY_FROM 135
-#define STMT_135_INFO {"STMT_INSERT_WORKING_NODE_COPY_FROM", NULL}
-#define STMT_135 \
+#define STMT_INSERT_WORKING_NODE_COPY_FROM 136
+#define STMT_136_INFO {"STMT_INSERT_WORKING_NODE_COPY_FROM", NULL}
+#define STMT_136 \
"INSERT OR REPLACE INTO nodes ( " \
" wc_id, local_relpath, op_depth, parent_relpath, repos_id, " \
" repos_path, revision, presence, depth, moved_here, kind, changed_revision, " \
@@ -1443,9 +1457,9 @@
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
""
-#define STMT_INSERT_WORKING_NODE_COPY_FROM_DEPTH 136
-#define STMT_136_INFO {"STMT_INSERT_WORKING_NODE_COPY_FROM_DEPTH", NULL}
-#define STMT_136 \
+#define STMT_INSERT_WORKING_NODE_COPY_FROM_DEPTH 137
+#define STMT_137_INFO {"STMT_INSERT_WORKING_NODE_COPY_FROM_DEPTH", NULL}
+#define STMT_137 \
"INSERT OR REPLACE INTO nodes ( " \
" wc_id, local_relpath, op_depth, parent_relpath, repos_id, " \
" repos_path, revision, presence, depth, moved_here, kind, changed_revision, " \
@@ -1464,49 +1478,49 @@
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?7 " \
""
-#define STMT_UPDATE_BASE_REVISION 137
-#define STMT_137_INFO {"STMT_UPDATE_BASE_REVISION", NULL}
-#define STMT_137 \
+#define STMT_UPDATE_BASE_REVISION 138
+#define STMT_138_INFO {"STMT_UPDATE_BASE_REVISION", NULL}
+#define STMT_138 \
"UPDATE nodes SET revision = ?3 " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
""
-#define STMT_UPDATE_BASE_REPOS 138
-#define STMT_138_INFO {"STMT_UPDATE_BASE_REPOS", NULL}
-#define STMT_138 \
+#define STMT_UPDATE_BASE_REPOS 139
+#define STMT_139_INFO {"STMT_UPDATE_BASE_REPOS", NULL}
+#define STMT_139 \
"UPDATE nodes SET repos_id = ?3, repos_path = ?4 " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
""
-#define STMT_ACTUAL_HAS_CHILDREN 139
-#define STMT_139_INFO {"STMT_ACTUAL_HAS_CHILDREN", NULL}
-#define STMT_139 \
+#define STMT_ACTUAL_HAS_CHILDREN 140
+#define STMT_140_INFO {"STMT_ACTUAL_HAS_CHILDREN", NULL}
+#define STMT_140 \
"SELECT 1 FROM actual_node " \
"WHERE wc_id = ?1 AND parent_relpath = ?2 " \
"LIMIT 1 " \
""
-#define STMT_INSERT_EXTERNAL 140
-#define STMT_140_INFO {"STMT_INSERT_EXTERNAL", NULL}
-#define STMT_140 \
+#define STMT_INSERT_EXTERNAL 141
+#define STMT_141_INFO {"STMT_INSERT_EXTERNAL", NULL}
+#define STMT_141 \
"INSERT OR REPLACE INTO externals ( " \
" wc_id, local_relpath, parent_relpath, presence, kind, def_local_relpath, " \
" repos_id, def_repos_relpath, def_operational_revision, def_revision) " \
"VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10) " \
""
-#define STMT_SELECT_EXTERNAL_INFO 141
-#define STMT_141_INFO {"STMT_SELECT_EXTERNAL_INFO", NULL}
-#define STMT_141 \
+#define STMT_SELECT_EXTERNAL_INFO 142
+#define STMT_142_INFO {"STMT_SELECT_EXTERNAL_INFO", NULL}
+#define STMT_142 \
"SELECT presence, kind, def_local_relpath, repos_id, " \
" def_repos_relpath, def_operational_revision, def_revision " \
"FROM externals WHERE wc_id = ?1 AND local_relpath = ?2 " \
"LIMIT 1 " \
""
-#define STMT_DELETE_FILE_EXTERNALS 142
-#define STMT_142_INFO {"STMT_DELETE_FILE_EXTERNALS", NULL}
-#define STMT_142 \
+#define STMT_DELETE_FILE_EXTERNALS 143
+#define STMT_143_INFO {"STMT_DELETE_FILE_EXTERNALS", NULL}
+#define STMT_143 \
"DELETE FROM nodes " \
"WHERE wc_id = ?1 " \
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
@@ -1514,26 +1528,26 @@
" AND file_external IS NOT NULL " \
""
-#define STMT_DELETE_FILE_EXTERNAL_REGISTATIONS 143
-#define STMT_143_INFO {"STMT_DELETE_FILE_EXTERNAL_REGISTATIONS", NULL}
-#define STMT_143 \
+#define STMT_DELETE_FILE_EXTERNAL_REGISTATIONS 144
+#define STMT_144_INFO {"STMT_DELETE_FILE_EXTERNAL_REGISTATIONS", NULL}
+#define STMT_144 \
"DELETE FROM externals " \
"WHERE wc_id = ?1 " \
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
" AND kind != 'dir' " \
""
-#define STMT_DELETE_EXTERNAL_REGISTATIONS 144
-#define STMT_144_INFO {"STMT_DELETE_EXTERNAL_REGISTATIONS", NULL}
-#define STMT_144 \
+#define STMT_DELETE_EXTERNAL_REGISTATIONS 145
+#define STMT_145_INFO {"STMT_DELETE_EXTERNAL_REGISTATIONS", NULL}
+#define STMT_145 \
"DELETE FROM externals " \
"WHERE wc_id = ?1 " \
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
""
-#define STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW 145
-#define STMT_145_INFO {"STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW", NULL}
-#define STMT_145 \
+#define STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW 146
+#define STMT_146_INFO {"STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW", NULL}
+#define STMT_146 \
"SELECT local_relpath, kind, def_repos_relpath, " \
" (SELECT root FROM repository AS r WHERE r.id = e.repos_id) " \
"FROM externals e " \
@@ -1551,9 +1565,9 @@
" AND nodes.local_relpath = e.parent_relpath)) " \
""
-#define STMT_SELECT_COMMITTABLE_EXTERNALS_IMMEDIATELY_BELOW 146
-#define STMT_146_INFO {"STMT_SELECT_COMMITTABLE_EXTERNALS_IMMEDIATELY_BELOW", NULL}
-#define STMT_146 \
+#define STMT_SELECT_COMMITTABLE_EXTERNALS_IMMEDIATELY_BELOW 147
+#define STMT_147_INFO {"STMT_SELECT_COMMITTABLE_EXTERNALS_IMMEDIATELY_BELOW", NULL}
+#define STMT_147 \
"SELECT local_relpath, kind, def_repos_relpath, " \
" (SELECT root FROM repository AS r WHERE r.id = e.repos_id) " \
"FROM externals e " \
@@ -1572,25 +1586,25 @@
" AND nodes.local_relpath = e.parent_relpath)) " \
""
-#define STMT_SELECT_EXTERNALS_DEFINED 147
-#define STMT_147_INFO {"STMT_SELECT_EXTERNALS_DEFINED", NULL}
-#define STMT_147 \
+#define STMT_SELECT_EXTERNALS_DEFINED 148
+#define STMT_148_INFO {"STMT_SELECT_EXTERNALS_DEFINED", NULL}
+#define STMT_148 \
"SELECT local_relpath, def_local_relpath " \
"FROM externals " \
"WHERE (wc_id = ?1 AND def_local_relpath = ?2) " \
" OR (wc_id = ?1 AND (((def_local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((def_local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
""
-#define STMT_DELETE_EXTERNAL 148
-#define STMT_148_INFO {"STMT_DELETE_EXTERNAL", NULL}
-#define STMT_148 \
+#define STMT_DELETE_EXTERNAL 149
+#define STMT_149_INFO {"STMT_DELETE_EXTERNAL", NULL}
+#define STMT_149 \
"DELETE FROM externals " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
""
-#define STMT_SELECT_EXTERNAL_PROPERTIES 149
-#define STMT_149_INFO {"STMT_SELECT_EXTERNAL_PROPERTIES", NULL}
-#define STMT_149 \
+#define STMT_SELECT_EXTERNAL_PROPERTIES 150
+#define STMT_150_INFO {"STMT_SELECT_EXTERNAL_PROPERTIES", NULL}
+#define STMT_150 \
"SELECT IFNULL((SELECT properties FROM actual_node a " \
" WHERE a.wc_id = ?1 AND A.local_relpath = n.local_relpath), " \
" properties), " \
@@ -1608,9 +1622,9 @@
" AND kind = 'dir' AND presence IN ('normal', 'incomplete') " \
""
-#define STMT_SELECT_CURRENT_PROPS_RECURSIVE 150
-#define STMT_150_INFO {"STMT_SELECT_CURRENT_PROPS_RECURSIVE", NULL}
-#define STMT_150 \
+#define STMT_SELECT_CURRENT_PROPS_RECURSIVE 151
+#define STMT_151_INFO {"STMT_SELECT_CURRENT_PROPS_RECURSIVE", NULL}
+#define STMT_151 \
"SELECT IFNULL((SELECT properties FROM actual_node a " \
" WHERE a.wc_id = ?1 AND A.local_relpath = n.local_relpath), " \
" properties), " \
@@ -1620,51 +1634,51 @@
" OR (wc_id = ?1 AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
""
-#define STMT_PRAGMA_LOCKING_MODE 151
-#define STMT_151_INFO {"STMT_PRAGMA_LOCKING_MODE", NULL}
-#define STMT_151 \
+#define STMT_PRAGMA_LOCKING_MODE 152
+#define STMT_152_INFO {"STMT_PRAGMA_LOCKING_MODE", NULL}
+#define STMT_152 \
"PRAGMA locking_mode = exclusive; " \
"PRAGMA journal_mode = DELETE " \
""
-#define STMT_FIND_REPOS_PATH_IN_WC 152
-#define STMT_152_INFO {"STMT_FIND_REPOS_PATH_IN_WC", NULL}
-#define STMT_152 \
+#define STMT_FIND_REPOS_PATH_IN_WC 153
+#define STMT_153_INFO {"STMT_FIND_REPOS_PATH_IN_WC", NULL}
+#define STMT_153 \
"SELECT local_relpath FROM nodes_current " \
" WHERE wc_id = ?1 AND repos_path = ?2 " \
""
-#define STMT_INSERT_ACTUAL_NODE 153
-#define STMT_153_INFO {"STMT_INSERT_ACTUAL_NODE", NULL}
-#define STMT_153 \
+#define STMT_INSERT_ACTUAL_NODE 154
+#define STMT_154_INFO {"STMT_INSERT_ACTUAL_NODE", NULL}
+#define STMT_154 \
"INSERT OR REPLACE INTO actual_node ( " \
" wc_id, local_relpath, parent_relpath, properties, changelist, conflict_data) " \
"VALUES (?1, ?2, ?3, ?4, ?5, ?6) " \
""
-#define STMT_SELECT_ALL_FILES 154
-#define STMT_154_INFO {"STMT_SELECT_ALL_FILES", NULL}
-#define STMT_154 \
+#define STMT_SELECT_ALL_FILES 155
+#define STMT_155_INFO {"STMT_SELECT_ALL_FILES", NULL}
+#define STMT_155 \
"SELECT local_relpath FROM nodes_current " \
"WHERE wc_id = ?1 AND parent_relpath = ?2 AND kind = 'file' " \
""
-#define STMT_UPDATE_NODE_PROPS 155
-#define STMT_155_INFO {"STMT_UPDATE_NODE_PROPS", NULL}
-#define STMT_155 \
+#define STMT_UPDATE_NODE_PROPS 156
+#define STMT_156_INFO {"STMT_UPDATE_NODE_PROPS", NULL}
+#define STMT_156 \
"UPDATE nodes SET properties = ?4 " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
""
-#define STMT_PRAGMA_TABLE_INFO_NODES 156
-#define STMT_156_INFO {"STMT_PRAGMA_TABLE_INFO_NODES", NULL}
-#define STMT_156 \
+#define STMT_PRAGMA_TABLE_INFO_NODES 157
+#define STMT_157_INFO {"STMT_PRAGMA_TABLE_INFO_NODES", NULL}
+#define STMT_157 \
"PRAGMA table_info(\"NODES\") " \
""
-#define STMT_CREATE_TARGET_PROP_CACHE 157
-#define STMT_157_INFO {"STMT_CREATE_TARGET_PROP_CACHE", NULL}
-#define STMT_157 \
+#define STMT_CREATE_TARGET_PROP_CACHE 158
+#define STMT_158_INFO {"STMT_CREATE_TARGET_PROP_CACHE", NULL}
+#define STMT_158 \
"DROP TABLE IF EXISTS target_prop_cache; " \
"CREATE TEMPORARY TABLE target_prop_cache ( " \
" local_relpath TEXT NOT NULL PRIMARY KEY, " \
@@ -1673,9 +1687,9 @@
"); " \
""
-#define STMT_CACHE_TARGET_PROPS 158
-#define STMT_158_INFO {"STMT_CACHE_TARGET_PROPS", NULL}
-#define STMT_158 \
+#define STMT_CACHE_TARGET_PROPS 159
+#define STMT_159_INFO {"STMT_CACHE_TARGET_PROPS", NULL}
+#define STMT_159 \
"INSERT INTO target_prop_cache(local_relpath, kind, properties) " \
" SELECT n.local_relpath, n.kind, " \
" IFNULL((SELECT properties FROM actual_node AS a " \
@@ -1694,9 +1708,9 @@
" ORDER BY t.local_relpath " \
""
-#define STMT_CACHE_TARGET_PRISTINE_PROPS 159
-#define STMT_159_INFO {"STMT_CACHE_TARGET_PRISTINE_PROPS", NULL}
-#define STMT_159 \
+#define STMT_CACHE_TARGET_PRISTINE_PROPS 160
+#define STMT_160_INFO {"STMT_CACHE_TARGET_PRISTINE_PROPS", NULL}
+#define STMT_160 \
"INSERT INTO target_prop_cache(local_relpath, kind, properties) " \
" SELECT n.local_relpath, n.kind, " \
" CASE n.presence " \
@@ -1721,22 +1735,22 @@
" ORDER BY t.local_relpath " \
""
-#define STMT_SELECT_ALL_TARGET_PROP_CACHE 160
-#define STMT_160_INFO {"STMT_SELECT_ALL_TARGET_PROP_CACHE", NULL}
-#define STMT_160 \
+#define STMT_SELECT_ALL_TARGET_PROP_CACHE 161
+#define STMT_161_INFO {"STMT_SELECT_ALL_TARGET_PROP_CACHE", NULL}
+#define STMT_161 \
"SELECT local_relpath, properties FROM target_prop_cache " \
"ORDER BY local_relpath " \
""
-#define STMT_DROP_TARGET_PROP_CACHE 161
-#define STMT_161_INFO {"STMT_DROP_TARGET_PROP_CACHE", NULL}
-#define STMT_161 \
+#define STMT_DROP_TARGET_PROP_CACHE 162
+#define STMT_162_INFO {"STMT_DROP_TARGET_PROP_CACHE", NULL}
+#define STMT_162 \
"DROP TABLE target_prop_cache; " \
""
-#define STMT_CREATE_REVERT_LIST 162
-#define STMT_162_INFO {"STMT_CREATE_REVERT_LIST", NULL}
-#define STMT_162 \
+#define STMT_CREATE_REVERT_LIST 163
+#define STMT_163_INFO {"STMT_CREATE_REVERT_LIST", NULL}
+#define STMT_163 \
"DROP TABLE IF EXISTS revert_list; " \
"CREATE TEMPORARY TABLE revert_list ( " \
" local_relpath TEXT NOT NULL, " \
@@ -1794,26 +1808,26 @@
"END " \
""
-#define STMT_DROP_REVERT_LIST_TRIGGERS 163
-#define STMT_163_INFO {"STMT_DROP_REVERT_LIST_TRIGGERS", NULL}
-#define STMT_163 \
+#define STMT_DROP_REVERT_LIST_TRIGGERS 164
+#define STMT_164_INFO {"STMT_DROP_REVERT_LIST_TRIGGERS", NULL}
+#define STMT_164 \
"DROP TRIGGER trigger_revert_list_nodes; " \
"DROP TRIGGER trigger_revert_list_actual_delete; " \
"DROP TRIGGER trigger_revert_list_actual_update " \
""
-#define STMT_SELECT_REVERT_LIST 164
-#define STMT_164_INFO {"STMT_SELECT_REVERT_LIST", NULL}
-#define STMT_164 \
+#define STMT_SELECT_REVERT_LIST 165
+#define STMT_165_INFO {"STMT_SELECT_REVERT_LIST", NULL}
+#define STMT_165 \
"SELECT actual, notify, kind, op_depth, repos_id, conflict_data " \
"FROM revert_list " \
"WHERE local_relpath = ?1 " \
"ORDER BY actual DESC " \
""
-#define STMT_SELECT_REVERT_LIST_COPIED_CHILDREN 165
-#define STMT_165_INFO {"STMT_SELECT_REVERT_LIST_COPIED_CHILDREN", NULL}
-#define STMT_165 \
+#define STMT_SELECT_REVERT_LIST_COPIED_CHILDREN 166
+#define STMT_166_INFO {"STMT_SELECT_REVERT_LIST_COPIED_CHILDREN", NULL}
+#define STMT_166 \
"SELECT local_relpath, kind " \
"FROM revert_list " \
"WHERE (((local_relpath) > (CASE (?1) WHEN '' THEN '' ELSE (?1) || '/' END)) AND ((local_relpath) < CASE (?1) WHEN '' THEN X'FFFF' ELSE (?1) || '0' END)) " \
@@ -1822,15 +1836,15 @@
"ORDER BY local_relpath " \
""
-#define STMT_DELETE_REVERT_LIST 166
-#define STMT_166_INFO {"STMT_DELETE_REVERT_LIST", NULL}
-#define STMT_166 \
+#define STMT_DELETE_REVERT_LIST 167
+#define STMT_167_INFO {"STMT_DELETE_REVERT_LIST", NULL}
+#define STMT_167 \
"DELETE FROM revert_list WHERE local_relpath = ?1 " \
""
-#define STMT_SELECT_REVERT_LIST_RECURSIVE 167
-#define STMT_167_INFO {"STMT_SELECT_REVERT_LIST_RECURSIVE", NULL}
-#define STMT_167 \
+#define STMT_SELECT_REVERT_LIST_RECURSIVE 168
+#define STMT_168_INFO {"STMT_SELECT_REVERT_LIST_RECURSIVE", NULL}
+#define STMT_168 \
"SELECT p.local_relpath, n.kind, a.notify, a.kind " \
"FROM (SELECT DISTINCT local_relpath " \
" FROM revert_list " \
@@ -1841,32 +1855,32 @@
"ORDER BY p.local_relpath " \
""
-#define STMT_DELETE_REVERT_LIST_RECURSIVE 168
-#define STMT_168_INFO {"STMT_DELETE_REVERT_LIST_RECURSIVE", NULL}
-#define STMT_168 \
+#define STMT_DELETE_REVERT_LIST_RECURSIVE 169
+#define STMT_169_INFO {"STMT_DELETE_REVERT_LIST_RECURSIVE", NULL}
+#define STMT_169 \
"DELETE FROM revert_list " \
"WHERE (local_relpath = ?1 " \
" OR (((local_relpath) > (CASE (?1) WHEN '' THEN '' ELSE (?1) || '/' END)) AND ((local_relpath) < CASE (?1) WHEN '' THEN X'FFFF' ELSE (?1) || '0' END))) " \
""
-#define STMT_DROP_REVERT_LIST 169
-#define STMT_169_INFO {"STMT_DROP_REVERT_LIST", NULL}
-#define STMT_169 \
+#define STMT_DROP_REVERT_LIST 170
+#define STMT_170_INFO {"STMT_DROP_REVERT_LIST", NULL}
+#define STMT_170 \
"DROP TABLE IF EXISTS revert_list " \
""
-#define STMT_CREATE_DELETE_LIST 170
-#define STMT_170_INFO {"STMT_CREATE_DELETE_LIST", NULL}
-#define STMT_170 \
+#define STMT_CREATE_DELETE_LIST 171
+#define STMT_171_INFO {"STMT_CREATE_DELETE_LIST", NULL}
+#define STMT_171 \
"DROP TABLE IF EXISTS delete_list; " \
"CREATE TEMPORARY TABLE delete_list ( " \
" local_relpath TEXT PRIMARY KEY NOT NULL UNIQUE " \
" ) " \
""
-#define STMT_INSERT_DELETE_LIST 171
-#define STMT_171_INFO {"STMT_INSERT_DELETE_LIST", NULL}
-#define STMT_171 \
+#define STMT_INSERT_DELETE_LIST 172
+#define STMT_172_INFO {"STMT_INSERT_DELETE_LIST", NULL}
+#define STMT_172 \
"INSERT INTO delete_list(local_relpath) " \
"SELECT ?2 " \
"UNION ALL " \
@@ -1882,22 +1896,22 @@
"ORDER by local_relpath " \
""
-#define STMT_SELECT_DELETE_LIST 172
-#define STMT_172_INFO {"STMT_SELECT_DELETE_LIST", NULL}
-#define STMT_172 \
+#define STMT_SELECT_DELETE_LIST 173
+#define STMT_173_INFO {"STMT_SELECT_DELETE_LIST", NULL}
+#define STMT_173 \
"SELECT local_relpath FROM delete_list " \
"ORDER BY local_relpath " \
""
-#define STMT_FINALIZE_DELETE 173
-#define STMT_173_INFO {"STMT_FINALIZE_DELETE", NULL}
-#define STMT_173 \
+#define STMT_FINALIZE_DELETE 174
+#define STMT_174_INFO {"STMT_FINALIZE_DELETE", NULL}
+#define STMT_174 \
"DROP TABLE IF EXISTS delete_list " \
""
-#define STMT_CREATE_UPDATE_MOVE_LIST 174
-#define STMT_174_INFO {"STMT_CREATE_UPDATE_MOVE_LIST", NULL}
-#define STMT_174 \
+#define STMT_CREATE_UPDATE_MOVE_LIST 175
+#define STMT_175_INFO {"STMT_CREATE_UPDATE_MOVE_LIST", NULL}
+#define STMT_175 \
"DROP TABLE IF EXISTS update_move_list; " \
"CREATE TEMPORARY TABLE update_move_list ( " \
" local_relpath TEXT PRIMARY KEY NOT NULL UNIQUE, " \
@@ -1908,39 +1922,39 @@
" ) " \
""
-#define STMT_INSERT_UPDATE_MOVE_LIST 175
-#define STMT_175_INFO {"STMT_INSERT_UPDATE_MOVE_LIST", NULL}
-#define STMT_175 \
+#define STMT_INSERT_UPDATE_MOVE_LIST 176
+#define STMT_176_INFO {"STMT_INSERT_UPDATE_MOVE_LIST", NULL}
+#define STMT_176 \
"INSERT INTO update_move_list(local_relpath, action, kind, content_state, " \
" prop_state) " \
"VALUES (?1, ?2, ?3, ?4, ?5) " \
""
-#define STMT_SELECT_UPDATE_MOVE_LIST 176
-#define STMT_176_INFO {"STMT_SELECT_UPDATE_MOVE_LIST", NULL}
-#define STMT_176 \
+#define STMT_SELECT_UPDATE_MOVE_LIST 177
+#define STMT_177_INFO {"STMT_SELECT_UPDATE_MOVE_LIST", NULL}
+#define STMT_177 \
"SELECT local_relpath, action, kind, content_state, prop_state " \
"FROM update_move_list " \
"ORDER BY local_relpath " \
""
-#define STMT_FINALIZE_UPDATE_MOVE 177
-#define STMT_177_INFO {"STMT_FINALIZE_UPDATE_MOVE", NULL}
-#define STMT_177 \
+#define STMT_FINALIZE_UPDATE_MOVE 178
+#define STMT_178_INFO {"STMT_FINALIZE_UPDATE_MOVE", NULL}
+#define STMT_178 \
"DROP TABLE IF EXISTS update_move_list " \
""
-#define STMT_MOVE_NOTIFY_TO_REVERT 178
-#define STMT_178_INFO {"STMT_MOVE_NOTIFY_TO_REVERT", NULL}
-#define STMT_178 \
+#define STMT_MOVE_NOTIFY_TO_REVERT 179
+#define STMT_179_INFO {"STMT_MOVE_NOTIFY_TO_REVERT", NULL}
+#define STMT_179 \
"INSERT INTO revert_list (local_relpath, notify, kind, actual) " \
" SELECT local_relpath, 2, kind, 1 FROM update_move_list; " \
"DROP TABLE update_move_list " \
""
-#define STMT_SELECT_MIN_MAX_REVISIONS 179
-#define STMT_179_INFO {"STMT_SELECT_MIN_MAX_REVISIONS", NULL}
-#define STMT_179 \
+#define STMT_SELECT_MIN_MAX_REVISIONS 180
+#define STMT_180_INFO {"STMT_SELECT_MIN_MAX_REVISIONS", NULL}
+#define STMT_180 \
"SELECT MIN(revision), MAX(revision), " \
" MIN(changed_revision), MAX(changed_revision) FROM nodes " \
" WHERE wc_id = ?1 " \
@@ -1951,9 +1965,9 @@
" AND op_depth = 0 " \
""
-#define STMT_HAS_SPARSE_NODES 180
-#define STMT_180_INFO {"STMT_HAS_SPARSE_NODES", NULL}
-#define STMT_180 \
+#define STMT_HAS_SPARSE_NODES 181
+#define STMT_181_INFO {"STMT_HAS_SPARSE_NODES", NULL}
+#define STMT_181 \
"SELECT 1 FROM nodes " \
"WHERE wc_id = ?1 " \
" AND (local_relpath = ?2 " \
@@ -1965,9 +1979,9 @@
"LIMIT 1 " \
""
-#define STMT_SUBTREE_HAS_TREE_MODIFICATIONS 181
-#define STMT_181_INFO {"STMT_SUBTREE_HAS_TREE_MODIFICATIONS", NULL}
-#define STMT_181 \
+#define STMT_SUBTREE_HAS_TREE_MODIFICATIONS 182
+#define STMT_182_INFO {"STMT_SUBTREE_HAS_TREE_MODIFICATIONS", NULL}
+#define STMT_182 \
"SELECT 1 FROM nodes " \
"WHERE wc_id = ?1 " \
" AND (local_relpath = ?2 " \
@@ -1976,9 +1990,9 @@
"LIMIT 1 " \
""
-#define STMT_SUBTREE_HAS_PROP_MODIFICATIONS 182
-#define STMT_182_INFO {"STMT_SUBTREE_HAS_PROP_MODIFICATIONS", NULL}
-#define STMT_182 \
+#define STMT_SUBTREE_HAS_PROP_MODIFICATIONS 183
+#define STMT_183_INFO {"STMT_SUBTREE_HAS_PROP_MODIFICATIONS", NULL}
+#define STMT_183 \
"SELECT 1 FROM actual_node " \
"WHERE wc_id = ?1 " \
" AND (local_relpath = ?2 " \
@@ -1987,9 +2001,9 @@
"LIMIT 1 " \
""
-#define STMT_HAS_SWITCHED 183
-#define STMT_183_INFO {"STMT_HAS_SWITCHED", NULL}
-#define STMT_183 \
+#define STMT_HAS_SWITCHED 184
+#define STMT_184_INFO {"STMT_HAS_SWITCHED", NULL}
+#define STMT_184 \
"SELECT 1 " \
"FROM nodes " \
"WHERE wc_id = ?1 " \
@@ -2001,47 +2015,47 @@
"LIMIT 1 " \
""
-#define STMT_SELECT_MOVED_FROM_RELPATH 184
-#define STMT_184_INFO {"STMT_SELECT_MOVED_FROM_RELPATH", NULL}
-#define STMT_184 \
+#define STMT_SELECT_MOVED_FROM_RELPATH 185
+#define STMT_185_INFO {"STMT_SELECT_MOVED_FROM_RELPATH", NULL}
+#define STMT_185 \
"SELECT local_relpath, op_depth FROM nodes " \
"WHERE wc_id = ?1 AND moved_to = ?2 AND op_depth > 0 " \
""
-#define STMT_UPDATE_MOVED_TO_RELPATH 185
-#define STMT_185_INFO {"STMT_UPDATE_MOVED_TO_RELPATH", NULL}
-#define STMT_185 \
+#define STMT_UPDATE_MOVED_TO_RELPATH 186
+#define STMT_186_INFO {"STMT_UPDATE_MOVED_TO_RELPATH", NULL}
+#define STMT_186 \
"UPDATE nodes SET moved_to = ?4 " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
""
-#define STMT_CLEAR_MOVED_TO_RELPATH 186
-#define STMT_186_INFO {"STMT_CLEAR_MOVED_TO_RELPATH", NULL}
-#define STMT_186 \
+#define STMT_CLEAR_MOVED_TO_RELPATH 187
+#define STMT_187_INFO {"STMT_CLEAR_MOVED_TO_RELPATH", NULL}
+#define STMT_187 \
"UPDATE nodes SET moved_to = NULL " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
""
-#define STMT_CLEAR_MOVED_HERE_RECURSIVE 187
-#define STMT_187_INFO {"STMT_CLEAR_MOVED_HERE_RECURSIVE", NULL}
-#define STMT_187 \
+#define STMT_CLEAR_MOVED_HERE_RECURSIVE 188
+#define STMT_188_INFO {"STMT_CLEAR_MOVED_HERE_RECURSIVE", NULL}
+#define STMT_188 \
"UPDATE nodes SET moved_here = NULL " \
"WHERE wc_id = ?1 " \
" AND (local_relpath = ?2 OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
" AND op_depth = ?3 " \
""
-#define STMT_SELECT_MOVED_HERE_CHILDREN 188
-#define STMT_188_INFO {"STMT_SELECT_MOVED_HERE_CHILDREN", NULL}
-#define STMT_188 \
+#define STMT_SELECT_MOVED_HERE_CHILDREN 189
+#define STMT_189_INFO {"STMT_SELECT_MOVED_HERE_CHILDREN", NULL}
+#define STMT_189 \
"SELECT moved_to, local_relpath FROM nodes " \
"WHERE wc_id = ?1 AND op_depth > 0 " \
" AND (((moved_to) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((moved_to) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
""
-#define STMT_SELECT_MOVED_FOR_DELETE 189
-#define STMT_189_INFO {"STMT_SELECT_MOVED_FOR_DELETE", NULL}
-#define STMT_189 \
+#define STMT_SELECT_MOVED_FOR_DELETE 190
+#define STMT_190_INFO {"STMT_SELECT_MOVED_FOR_DELETE", NULL}
+#define STMT_190 \
"SELECT local_relpath, moved_to, op_depth, " \
" (SELECT CASE WHEN r.moved_here THEN r.op_depth END FROM nodes r " \
" WHERE r.wc_id = ?1 " \
@@ -2055,9 +2069,9 @@
" AND op_depth >= ?3 " \
""
-#define STMT_SELECT_MOVED_FROM_FOR_DELETE 190
-#define STMT_190_INFO {"STMT_SELECT_MOVED_FROM_FOR_DELETE", NULL}
-#define STMT_190 \
+#define STMT_SELECT_MOVED_FROM_FOR_DELETE 191
+#define STMT_191_INFO {"STMT_SELECT_MOVED_FROM_FOR_DELETE", NULL}
+#define STMT_191 \
"SELECT local_relpath, op_depth, " \
" (SELECT CASE WHEN r.moved_here THEN r.op_depth END FROM nodes r " \
" WHERE r.wc_id = ?1 " \
@@ -2068,25 +2082,25 @@
"WHERE wc_id = ?1 AND moved_to = ?2 AND op_depth > 0 " \
""
-#define STMT_UPDATE_MOVED_TO_DESCENDANTS 191
-#define STMT_191_INFO {"STMT_UPDATE_MOVED_TO_DESCENDANTS", NULL}
-#define STMT_191 \
+#define STMT_UPDATE_MOVED_TO_DESCENDANTS 192
+#define STMT_192_INFO {"STMT_UPDATE_MOVED_TO_DESCENDANTS", NULL}
+#define STMT_192 \
"UPDATE nodes SET moved_to = (CASE WHEN (?2) = '' THEN (CASE WHEN (?3) = '' THEN (moved_to) WHEN (moved_to) = '' THEN (?3) ELSE (?3) || '/' || (moved_to) END) WHEN (?3) = '' THEN (CASE WHEN (?2) = '' THEN (moved_to) WHEN SUBSTR((moved_to), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(moved_to) THEN '' WHEN SUBSTR((moved_to), LENGTH(?2)+1, 1) = '/' THEN SUBSTR((moved_to), LENGTH(?2)+2) END END) WHEN SUBSTR((moved_to), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(moved_to) THEN (?3) WHEN SUBSTR((moved_to), LENGTH(?2)+1, 1) = '/' THEN (?3) || SUBSTR((moved_to), LENGTH(?2)+1) END END) " \
" WHERE wc_id = ?1 " \
" AND (((moved_to) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((moved_to) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
""
-#define STMT_CLEAR_MOVED_TO_DESCENDANTS 192
-#define STMT_192_INFO {"STMT_CLEAR_MOVED_TO_DESCENDANTS", NULL}
-#define STMT_192 \
+#define STMT_CLEAR_MOVED_TO_DESCENDANTS 193
+#define STMT_193_INFO {"STMT_CLEAR_MOVED_TO_DESCENDANTS", NULL}
+#define STMT_193 \
"UPDATE nodes SET moved_to = NULL " \
" WHERE wc_id = ?1 " \
" AND (((moved_to) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((moved_to) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
""
-#define STMT_SELECT_MOVED_PAIR3 193
-#define STMT_193_INFO {"STMT_SELECT_MOVED_PAIR3", NULL}
-#define STMT_193 \
+#define STMT_SELECT_MOVED_PAIR3 194
+#define STMT_194_INFO {"STMT_SELECT_MOVED_PAIR3", NULL}
+#define STMT_194 \
"SELECT n.local_relpath, d.moved_to, d.op_depth, n.kind " \
"FROM nodes n " \
"JOIN nodes d ON d.wc_id = ?1 AND d.local_relpath = n.local_relpath " \
@@ -2112,9 +2126,9 @@
"ORDER BY n.local_relpath " \
""
-#define STMT_SELECT_MOVED_OUTSIDE 194
-#define STMT_194_INFO {"STMT_SELECT_MOVED_OUTSIDE", NULL}
-#define STMT_194 \
+#define STMT_SELECT_MOVED_OUTSIDE 195
+#define STMT_195_INFO {"STMT_SELECT_MOVED_OUTSIDE", NULL}
+#define STMT_195 \
"SELECT local_relpath, moved_to, op_depth FROM nodes " \
"WHERE wc_id = ?1 " \
" AND (local_relpath = ?2 OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
@@ -2123,9 +2137,9 @@
" AND NOT (((moved_to) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((moved_to) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
""
-#define STMT_SELECT_MOVED_DESCENDANTS_SRC 195
-#define STMT_195_INFO {"STMT_SELECT_MOVED_DESCENDANTS_SRC", NULL}
-#define STMT_195 \
+#define STMT_SELECT_MOVED_DESCENDANTS_SRC 196
+#define STMT_196_INFO {"STMT_SELECT_MOVED_DESCENDANTS_SRC", NULL}
+#define STMT_196 \
"SELECT s.op_depth, n.local_relpath, n.kind, n.repos_path, s.moved_to " \
"FROM nodes n " \
"JOIN nodes s ON s.wc_id = n.wc_id AND s.local_relpath = n.local_relpath " \
@@ -2139,9 +2153,9 @@
" AND s.moved_to IS NOT NULL " \
""
-#define STMT_COMMIT_UPDATE_ORIGIN 196
-#define STMT_196_INFO {"STMT_COMMIT_UPDATE_ORIGIN", NULL}
-#define STMT_196 \
+#define STMT_COMMIT_UPDATE_ORIGIN 197
+#define STMT_197_INFO {"STMT_COMMIT_UPDATE_ORIGIN", NULL}
+#define STMT_197 \
"UPDATE nodes SET repos_id = ?4, " \
" repos_path = (CASE WHEN (?2) = '' THEN (CASE WHEN (?5) = '' THEN (local_relpath) WHEN (local_relpath) = '' THEN (?5) ELSE (?5) || '/' || (local_relpath) END) WHEN (?5) = '' THEN (CASE WHEN (?2) = '' THEN (local_relpath) WHEN SUBSTR((local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(local_relpath) THEN '' WHEN SUBSTR((local_relpath), LENGTH(?2)+1, 1) = '/' THEN SUBSTR((local_relpath), LENGTH(?2)+2) END END) WHEN SUBSTR((local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(local_relpath) THEN (?5) WHEN SUBSTR((local_relpath), LENGTH(?2)+1, 1) = '/' THEN (?5) || SUBSTR((local_relpath), LENGTH(?2)+1) END END), " \
" revision = ?6 " \
@@ -2151,16 +2165,16 @@
" AND op_depth = ?3 " \
""
-#define STMT_HAS_LAYER_BETWEEN 197
-#define STMT_197_INFO {"STMT_HAS_LAYER_BETWEEN", NULL}
-#define STMT_197 \
+#define STMT_HAS_LAYER_BETWEEN 198
+#define STMT_198_INFO {"STMT_HAS_LAYER_BETWEEN", NULL}
+#define STMT_198 \
"SELECT 1 FROM NODES " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > ?3 AND op_depth < ?4 " \
""
-#define STMT_SELECT_REPOS_PATH_REVISION 198
-#define STMT_198_INFO {"STMT_SELECT_REPOS_PATH_REVISION", NULL}
-#define STMT_198 \
+#define STMT_SELECT_REPOS_PATH_REVISION 199
+#define STMT_199_INFO {"STMT_SELECT_REPOS_PATH_REVISION", NULL}
+#define STMT_199 \
"SELECT local_relpath, repos_path, revision FROM nodes " \
"WHERE wc_id = ?1 " \
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
@@ -2168,17 +2182,17 @@
"ORDER BY local_relpath " \
""
-#define STMT_SELECT_HAS_NON_FILE_CHILDREN 199
-#define STMT_199_INFO {"STMT_SELECT_HAS_NON_FILE_CHILDREN", NULL}
-#define STMT_199 \
+#define STMT_SELECT_HAS_NON_FILE_CHILDREN 200
+#define STMT_200_INFO {"STMT_SELECT_HAS_NON_FILE_CHILDREN", NULL}
+#define STMT_200 \
"SELECT 1 FROM nodes " \
"WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = ?3 AND kind != 'file' " \
"LIMIT 1 " \
""
-#define STMT_SELECT_HAS_GRANDCHILDREN 200
-#define STMT_200_INFO {"STMT_SELECT_HAS_GRANDCHILDREN", NULL}
-#define STMT_200 \
+#define STMT_SELECT_HAS_GRANDCHILDREN 201
+#define STMT_201_INFO {"STMT_SELECT_HAS_GRANDCHILDREN", NULL}
+#define STMT_201 \
"SELECT 1 FROM nodes " \
"WHERE wc_id = ?1 " \
" AND (((parent_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((parent_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
@@ -2187,24 +2201,24 @@
"LIMIT 1 " \
""
-#define STMT_SELECT_ALL_NODES 201
-#define STMT_201_INFO {"STMT_SELECT_ALL_NODES", NULL}
-#define STMT_201 \
+#define STMT_SELECT_ALL_NODES 202
+#define STMT_202_INFO {"STMT_SELECT_ALL_NODES", NULL}
+#define STMT_202 \
"SELECT op_depth, local_relpath, parent_relpath, file_external FROM nodes " \
"WHERE wc_id = ?1 " \
""
-#define STMT_UPDATE_IPROP 202
-#define STMT_202_INFO {"STMT_UPDATE_IPROP", NULL}
-#define STMT_202 \
+#define STMT_UPDATE_IPROP 203
+#define STMT_203_INFO {"STMT_UPDATE_IPROP", NULL}
+#define STMT_203 \
"UPDATE nodes " \
"SET inherited_props = ?3 " \
"WHERE (wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0) " \
""
-#define STMT_SELECT_IPROPS_NODE 203
-#define STMT_203_INFO {"STMT_SELECT_IPROPS_NODE", NULL}
-#define STMT_203 \
+#define STMT_SELECT_IPROPS_NODE 204
+#define STMT_204_INFO {"STMT_SELECT_IPROPS_NODE", NULL}
+#define STMT_204 \
"SELECT local_relpath, repos_path FROM nodes " \
"WHERE wc_id = ?1 " \
" AND local_relpath = ?2 " \
@@ -2212,9 +2226,9 @@
" AND (inherited_props not null) " \
""
-#define STMT_SELECT_IPROPS_RECURSIVE 204
-#define STMT_204_INFO {"STMT_SELECT_IPROPS_RECURSIVE", NULL}
-#define STMT_204 \
+#define STMT_SELECT_IPROPS_RECURSIVE 205
+#define STMT_205_INFO {"STMT_SELECT_IPROPS_RECURSIVE", NULL}
+#define STMT_205 \
"SELECT local_relpath, repos_path FROM nodes " \
"WHERE wc_id = ?1 " \
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
@@ -2222,9 +2236,9 @@
" AND (inherited_props not null) " \
""
-#define STMT_SELECT_IPROPS_CHILDREN 205
-#define STMT_205_INFO {"STMT_SELECT_IPROPS_CHILDREN", NULL}
-#define STMT_205 \
+#define STMT_SELECT_IPROPS_CHILDREN 206
+#define STMT_206_INFO {"STMT_SELECT_IPROPS_CHILDREN", NULL}
+#define STMT_206 \
"SELECT local_relpath, repos_path FROM nodes " \
"WHERE wc_id = ?1 " \
" AND parent_relpath = ?2 " \
@@ -2232,16 +2246,30 @@
" AND (inherited_props not null) " \
""
-#define STMT_HAVE_STAT1_TABLE 206
-#define STMT_206_INFO {"STMT_HAVE_STAT1_TABLE", NULL}
-#define STMT_206 \
+#define STMT_HAVE_STAT1_TABLE 207
+#define STMT_207_INFO {"STMT_HAVE_STAT1_TABLE", NULL}
+#define STMT_207 \
"SELECT 1 FROM sqlite_master WHERE name='sqlite_stat1' AND type='table' " \
"LIMIT 1 " \
""
-#define STMT_CREATE_SCHEMA 207
-#define STMT_207_INFO {"STMT_CREATE_SCHEMA", NULL}
-#define STMT_207 \
+#define STMT_SELECT_COPIES_OF_REPOS_RELPATH 208
+#define STMT_208_INFO {"STMT_SELECT_COPIES_OF_REPOS_RELPATH", NULL}
+#define STMT_208 \
+ "SELECT local_relpath " \
+ "FROM nodes n " \
+ "WHERE wc_id = ?1 AND repos_path = ?2 AND kind = ?3 " \
+ " AND presence = 'normal' " \
+ " AND op_depth = (SELECT MAX(op_depth) " \
+ " FROM NODES w " \
+ " WHERE w.wc_id = ?1 " \
+ " AND w.local_relpath = n.local_relpath) " \
+ "ORDER BY local_relpath ASC " \
+ ""
+
+#define STMT_CREATE_SCHEMA 209
+#define STMT_209_INFO {"STMT_CREATE_SCHEMA", NULL}
+#define STMT_209 \
"CREATE TABLE REPOSITORY ( " \
" id INTEGER PRIMARY KEY AUTOINCREMENT, " \
" root TEXT UNIQUE NOT NULL, " \
@@ -2382,9 +2410,9 @@
"; " \
""
-#define STMT_INSTALL_SCHEMA_STATISTICS 208
-#define STMT_208_INFO {"STMT_INSTALL_SCHEMA_STATISTICS", NULL}
-#define STMT_208 \
+#define STMT_INSTALL_SCHEMA_STATISTICS 210
+#define STMT_210_INFO {"STMT_INSTALL_SCHEMA_STATISTICS", NULL}
+#define STMT_210 \
"ANALYZE sqlite_master; " \
"DELETE FROM sqlite_stat1 " \
"WHERE tbl in ('NODES', 'ACTUAL_NODE', 'LOCK', 'WC_LOCK', 'EXTERNALS'); " \
@@ -2409,9 +2437,9 @@
"ANALYZE sqlite_master; " \
""
-#define STMT_UPGRADE_TO_30 209
-#define STMT_209_INFO {"STMT_UPGRADE_TO_30", NULL}
-#define STMT_209 \
+#define STMT_UPGRADE_TO_30 211
+#define STMT_211_INFO {"STMT_UPGRADE_TO_30", NULL}
+#define STMT_211 \
"CREATE UNIQUE INDEX IF NOT EXISTS I_NODES_MOVED " \
"ON NODES (wc_id, moved_to, op_depth); " \
"CREATE INDEX IF NOT EXISTS I_PRISTINE_MD5 ON PRISTINE (md5_checksum); " \
@@ -2419,9 +2447,9 @@
"UPDATE nodes SET file_external=1 WHERE file_external IS NOT NULL; " \
""
-#define STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE 210
-#define STMT_210_INFO {"STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE", NULL}
-#define STMT_210 \
+#define STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE 212
+#define STMT_212_INFO {"STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE", NULL}
+#define STMT_212 \
"SELECT wc_id, local_relpath, " \
" conflict_old, conflict_working, conflict_new, prop_reject, tree_conflict_data " \
"FROM actual_node " \
@@ -2433,18 +2461,18 @@
"ORDER by wc_id, local_relpath " \
""
-#define STMT_UPGRADE_30_SET_CONFLICT 211
-#define STMT_211_INFO {"STMT_UPGRADE_30_SET_CONFLICT", NULL}
-#define STMT_211 \
+#define STMT_UPGRADE_30_SET_CONFLICT 213
+#define STMT_213_INFO {"STMT_UPGRADE_30_SET_CONFLICT", NULL}
+#define STMT_213 \
"UPDATE actual_node SET conflict_data = ?3, conflict_old = NULL, " \
" conflict_working = NULL, conflict_new = NULL, prop_reject = NULL, " \
" tree_conflict_data = NULL " \
"WHERE wc_id = ?1 and local_relpath = ?2 " \
""
-#define STMT_UPGRADE_TO_31 212
-#define STMT_212_INFO {"STMT_UPGRADE_TO_31", NULL}
-#define STMT_212 \
+#define STMT_UPGRADE_TO_31 214
+#define STMT_214_INFO {"STMT_UPGRADE_TO_31", NULL}
+#define STMT_214 \
"ALTER TABLE NODES ADD COLUMN inherited_props BLOB; " \
"DROP INDEX IF EXISTS I_ACTUAL_CHANGELIST; " \
"DROP INDEX IF EXISTS I_EXTERNALS_PARENT; " \
@@ -2457,9 +2485,9 @@
"PRAGMA user_version = 31; " \
""
-#define STMT_UPGRADE_31_SELECT_WCROOT_NODES 213
-#define STMT_213_INFO {"STMT_UPGRADE_31_SELECT_WCROOT_NODES", NULL}
-#define STMT_213 \
+#define STMT_UPGRADE_31_SELECT_WCROOT_NODES 215
+#define STMT_215_INFO {"STMT_UPGRADE_31_SELECT_WCROOT_NODES", NULL}
+#define STMT_215 \
"SELECT l.wc_id, l.local_relpath FROM nodes as l " \
"LEFT OUTER JOIN nodes as r " \
"ON l.wc_id = r.wc_id " \
@@ -2511,9 +2539,9 @@
"DROP TABLE ACTUAL_NODE_BACKUP; " \
""
-#define STMT_VERIFICATION_TRIGGERS 214
-#define STMT_214_INFO {"STMT_VERIFICATION_TRIGGERS", NULL}
-#define STMT_214 \
+#define STMT_VERIFICATION_TRIGGERS 216
+#define STMT_216_INFO {"STMT_VERIFICATION_TRIGGERS", NULL}
+#define STMT_216 \
"CREATE TEMPORARY TRIGGER no_repository_updates BEFORE UPDATE ON repository " \
"BEGIN " \
" SELECT RAISE(FAIL, 'Updates to REPOSITORY are not allowed.'); " \
@@ -2552,9 +2580,9 @@
"END; " \
""
-#define STMT_STATIC_VERIFY 215
-#define STMT_215_INFO {"STMT_STATIC_VERIFY", NULL}
-#define STMT_215 \
+#define STMT_STATIC_VERIFY 217
+#define STMT_217_INFO {"STMT_STATIC_VERIFY", NULL}
+#define STMT_217 \
"SELECT local_relpath, op_depth, 1, 'Invalid parent relpath set in NODES' " \
"FROM nodes n WHERE local_relpath != '' " \
" AND (parent_relpath IS NULL " \
@@ -2943,6 +2971,8 @@
STMT_213, \
STMT_214, \
STMT_215, \
+ STMT_216, \
+ STMT_217, \
NULL \
}
@@ -3164,5 +3194,7 @@
STMT_213_INFO, \
STMT_214_INFO, \
STMT_215_INFO, \
+ STMT_216_INFO, \
+ STMT_217_INFO, \
{NULL, NULL} \
}
diff --git a/subversion/libsvn_wc/wc-queries.sql b/subversion/libsvn_wc/wc-queries.sql
index 86cf9216a058..962e57dc16c2 100644
--- a/subversion/libsvn_wc/wc-queries.sql
+++ b/subversion/libsvn_wc/wc-queries.sql
@@ -117,6 +117,17 @@ WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth < ?3
ORDER BY op_depth DESC
LIMIT 1
+-- STMT_SELECT_PRESENT_HIGHEST_WORKING_NODES_BY_BASENAME_AND_KIND
+SELECT presence, local_relpath
+FROM nodes n
+WHERE wc_id = ?1 AND local_relpath = RELPATH_JOIN(parent_relpath, ?2)
+ AND kind = ?3
+ AND presence in (MAP_NORMAL, MAP_INCOMPLETE)
+ AND op_depth = (SELECT MAX(op_depth)
+ FROM NODES w
+ WHERE w.wc_id = ?1
+ AND w.local_relpath = n.local_relpath)
+
-- STMT_SELECT_ACTUAL_NODE
SELECT changelist, properties, conflict_data
FROM actual_node
@@ -249,7 +260,7 @@ WHERE wc_id = ?1 AND IS_STRICT_DESCENDANT_OF(local_relpath, ?2)
-- STMT_DELETE_BASE_RECURSIVE
DELETE FROM nodes
-WHERE wc_id = ?1 AND (local_relpath = ?2
+WHERE wc_id = ?1 AND (local_relpath = ?2
OR IS_STRICT_DESCENDANT_OF(local_relpath, ?2))
AND op_depth = 0
@@ -1785,6 +1796,17 @@ WHERE wc_id = ?1
SELECT 1 FROM sqlite_master WHERE name='sqlite_stat1' AND type='table'
LIMIT 1
+-- STMT_SELECT_COPIES_OF_REPOS_RELPATH
+SELECT local_relpath
+FROM nodes n
+WHERE wc_id = ?1 AND repos_path = ?2 AND kind = ?3
+ AND presence = MAP_NORMAL
+ AND op_depth = (SELECT MAX(op_depth)
+ FROM NODES w
+ WHERE w.wc_id = ?1
+ AND w.local_relpath = n.local_relpath)
+ORDER BY local_relpath ASC
+
/* ------------------------------------------------------------------------- */
/* Grab all the statements related to the schema. */
diff --git a/subversion/libsvn_wc/wc.h b/subversion/libsvn_wc/wc.h
index f8bbebd93ade..c8da7a906c21 100644
--- a/subversion/libsvn_wc/wc.h
+++ b/subversion/libsvn_wc/wc.h
@@ -289,6 +289,7 @@ struct svn_wc_traversal_info_t
#define SVN_WC__ADM_TMP "tmp"
#define SVN_WC__ADM_PRISTINE "pristine"
#define SVN_WC__ADM_NONEXISTENT_PATH "nonexistent-path"
+#define SVN_WC__ADM_EXPERIMENTAL "experimental"
/* The basename of the ".prej" file, if a directory ever has property
conflicts. This .prej file will appear *within* the conflicted
diff --git a/subversion/libsvn_wc/wc_db.c b/subversion/libsvn_wc/wc_db.c
index bc87b2f9d8d9..c76a8b1b9447 100644
--- a/subversion/libsvn_wc/wc_db.c
+++ b/subversion/libsvn_wc/wc_db.c
@@ -2374,7 +2374,7 @@ db_base_remove(svn_wc__db_wcroot_t *wcroot,
/* For file externals we only want to place a not present marker
if there is a BASE parent */
-
+
svn_relpath_split(&parent_local_relpath, &name, local_relpath,
scratch_pool);
@@ -6702,7 +6702,7 @@ svn_wc__db_op_mark_resolved_internal(svn_wc__db_wcroot_t *wcroot,
return SVN_NO_ERROR;
conflicts = svn_skel__parse(conflict_data, conflict_len, scratch_pool);
-
+
SVN_ERR(svn_wc__conflict_skel_resolve(&resolved_all, conflicts,
db, wcroot->abspath,
@@ -6839,7 +6839,7 @@ revert_maybe_raise_moved_away(svn_wc__db_wcroot_t * wcroot,
}
SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action,
- NULL,
+ NULL, NULL,
db, wcroot->abspath,
conflict,
scratch_pool,
@@ -7991,7 +7991,7 @@ struct op_delete_baton_t {
* Note that the following sequence results in the same DB state:
* mv A B; mv B/F B/G
* We do not care about the order the moves were performed in.
- * For details, see http://wiki.apache.org/subversion/MultiLayerMoves
+ * For details, see https://cwiki.apache.org/confluence/display/SVN/MultiLayerMoves
*/
struct moved_node_t {
/* The source of the move. */
@@ -8396,7 +8396,7 @@ delete_node(void *baton,
scratch_pool, iterpool));
if (!mn->local_relpath)
- svn_sort__array_delete(moved_nodes, i--, 1);
+ SVN_ERR(svn_sort__array_delete2(moved_nodes, i--, 1));
}
}
@@ -10804,7 +10804,7 @@ db_read_inherited_props(apr_array_header_t **inherited_props,
iprop_elt->prop_hash = node_props;
/* Build the output array in depth-first order. */
- svn_sort__array_insert(iprops, &iprop_elt, 0);
+ SVN_ERR(svn_sort__array_insert2(iprops, &iprop_elt, 0));
}
}
}
@@ -10840,7 +10840,7 @@ db_read_inherited_props(apr_array_header_t **inherited_props,
/* If we didn't filter everything then keep this iprop. */
if (apr_hash_count(cached_iprop->prop_hash))
- svn_sort__array_insert(iprops, &cached_iprop, 0);
+ SVN_ERR(svn_sort__array_insert2(iprops, &cached_iprop, 0));
}
}
@@ -16525,8 +16525,8 @@ db_process_commit_queue(svn_wc__db_t *db,
iterpool),
iterpool, iterpool));
- lock_remove_txn(queue->wcroot, cqi->local_relpath, work_item,
- iterpool);
+ SVN_ERR(lock_remove_txn(queue->wcroot, cqi->local_relpath,
+ work_item, iterpool));
}
if (cqi->remove_changelist)
SVN_ERR(svn_wc__db_op_set_changelist(db,
@@ -16578,12 +16578,12 @@ svn_wc__db_process_commit_queue(svn_wc__db_t *db,
}
svn_error_t *
-svn_wc__find_repos_node_in_wc(apr_array_header_t **local_abspath_list,
- svn_wc__db_t *db,
- const char *wri_abspath,
- const char *repos_relpath,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
+svn_wc__db_find_repos_node_in_wc(apr_array_header_t **local_abspath_list,
+ svn_wc__db_t *db,
+ const char *wri_abspath,
+ const char *repos_relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
{
svn_wc__db_wcroot_t *wcroot;
const char *wri_relpath;
@@ -16616,7 +16616,94 @@ svn_wc__find_repos_node_in_wc(apr_array_header_t **local_abspath_list,
SVN_ERR(svn_sqlite__step(&have_row, stmt));
}
-
+
+ return svn_error_trace(svn_sqlite__reset(stmt));
+}
+
+svn_error_t *
+svn_wc__db_find_working_nodes_with_basename(apr_array_header_t **local_abspaths,
+ svn_wc__db_t *db,
+ const char *wri_abspath,
+ const char *basename,
+ svn_node_kind_t kind,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ svn_wc__db_wcroot_t *wcroot;
+ const char *wri_relpath;
+ svn_sqlite__stmt_t *stmt;
+ svn_boolean_t have_row;
+
+ SVN_ERR_ASSERT(svn_dirent_is_absolute(wri_abspath));
+
+ SVN_ERR(svn_wc__db_wcroot_parse_local_abspath(&wcroot, &wri_relpath, db,
+ wri_abspath, scratch_pool,
+ scratch_pool));
+ VERIFY_USABLE_WCROOT(wcroot);
+
+ SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
+ STMT_SELECT_PRESENT_HIGHEST_WORKING_NODES_BY_BASENAME_AND_KIND));
+ SVN_ERR(svn_sqlite__bindf(stmt, "ist", wcroot->wc_id, basename,
+ kind_map, kind));
+ SVN_ERR(svn_sqlite__step(&have_row, stmt));
+
+ *local_abspaths = apr_array_make(result_pool, 1, sizeof(const char *));
+
+ while (have_row)
+ {
+ const char *local_relpath;
+ const char *local_abspath;
+
+ local_relpath = svn_sqlite__column_text(stmt, 1, NULL);
+ local_abspath = svn_dirent_join(wcroot->abspath, local_relpath,
+ result_pool);
+ APR_ARRAY_PUSH(*local_abspaths, const char *) = local_abspath;
+ SVN_ERR(svn_sqlite__step(&have_row, stmt));
+ }
+
return svn_error_trace(svn_sqlite__reset(stmt));
}
+svn_error_t *
+svn_wc__db_find_copies_of_repos_path(apr_array_header_t **local_abspaths,
+ svn_wc__db_t *db,
+ const char *wri_abspath,
+ const char *repos_relpath,
+ svn_node_kind_t kind,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ svn_wc__db_wcroot_t *wcroot;
+ const char *wri_relpath;
+ svn_sqlite__stmt_t *stmt;
+ svn_boolean_t have_row;
+
+ SVN_ERR_ASSERT(svn_dirent_is_absolute(wri_abspath));
+
+ SVN_ERR(svn_wc__db_wcroot_parse_local_abspath(&wcroot, &wri_relpath, db,
+ wri_abspath, scratch_pool,
+ scratch_pool));
+ VERIFY_USABLE_WCROOT(wcroot);
+
+ SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
+ STMT_SELECT_COPIES_OF_REPOS_RELPATH));
+ SVN_ERR(svn_sqlite__bindf(stmt, "ist", wcroot->wc_id, repos_relpath,
+ kind_map, kind));
+ SVN_ERR(svn_sqlite__step(&have_row, stmt));
+
+ *local_abspaths = apr_array_make(result_pool, 1, sizeof(const char *));
+
+ while (have_row)
+ {
+ const char *local_relpath;
+ const char *local_abspath;
+
+ local_relpath = svn_sqlite__column_text(stmt, 0, NULL);
+ local_abspath = svn_dirent_join(wcroot->abspath, local_relpath,
+ result_pool);
+ APR_ARRAY_PUSH(*local_abspaths, const char *) = local_abspath;
+ SVN_ERR(svn_sqlite__step(&have_row, stmt));
+ }
+
+ return svn_error_trace(svn_sqlite__reset(stmt));
+}
diff --git a/subversion/libsvn_wc/wc_db.h b/subversion/libsvn_wc/wc_db.h
index 0bf6432100fb..a7cc1688aeb9 100644
--- a/subversion/libsvn_wc/wc_db.h
+++ b/subversion/libsvn_wc/wc_db.h
@@ -3496,12 +3496,48 @@ svn_wc__required_lock_for_resolve(const char **required_abspath,
* which has been replaced.
*/
svn_error_t *
-svn_wc__find_repos_node_in_wc(apr_array_header_t **local_abspath_list,
- svn_wc__db_t *db,
- const char *wri_abspath,
- const char *repos_relpath,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
+svn_wc__db_find_repos_node_in_wc(apr_array_header_t **local_abspath_list,
+ svn_wc__db_t *db,
+ const char *wri_abspath,
+ const char *repos_relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/* Return an array of const char * elements, which represent local absolute
+ * paths for nodes, within the working copy indicated by WRI_ABSPATH, which
+ * have a basename matching BASENAME and have node kind KIND.
+ * If no such nodes exist, return an empty array.
+ *
+ * This function returns only paths to nodes which are present in the highest
+ * layer of the WC. In other words, paths to deleted and/or excluded nodes are
+ * never returned.
+ */
+svn_error_t *
+svn_wc__db_find_working_nodes_with_basename(apr_array_header_t **local_abspaths,
+ svn_wc__db_t *db,
+ const char *wri_abspath,
+ const char *basename,
+ svn_node_kind_t kind,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/* Return an array of const char * elements, which represent local absolute
+ * paths for nodes, within the working copy indicated by WRI_ABSPATH, which
+ * are copies of REPOS_RELPATH and have node kind KIND.
+ * If no such nodes exist, return an empty array.
+ *
+ * This function returns only paths to nodes which are present in the highest
+ * layer of the WC. In other words, paths to deleted and/or excluded nodes are
+ * never returned.
+ */
+svn_error_t *
+svn_wc__db_find_copies_of_repos_path(apr_array_header_t **local_abspaths,
+ svn_wc__db_t *db,
+ const char *wri_abspath,
+ const char *repos_relpath,
+ svn_node_kind_t kind,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
/* @} */
typedef svn_error_t * (*svn_wc__db_verify_cb_t)(void *baton,
diff --git a/subversion/libsvn_wc/wc_db_update_move.c b/subversion/libsvn_wc/wc_db_update_move.c
index ba7117581ec1..e420a845ee53 100644
--- a/subversion/libsvn_wc/wc_db_update_move.c
+++ b/subversion/libsvn_wc/wc_db_update_move.c
@@ -95,7 +95,7 @@
* to avoid tree conflicts where the "incoming" and "local" change both
* originated in the working copy, because the resolver code cannot handle
* such tree conflicts at present.
- *
+ *
* The whole drive occurs as one single wc.db transaction. At the end
* of the transaction the destination NODES table should have a WORKING
* layer that is equivalent to the WORKING layer found in the copied victim
@@ -411,6 +411,11 @@ create_tree_conflict(svn_skel_t **conflict_p,
? svn_dirent_join(wcroot->abspath,
move_src_op_root_relpath, scratch_pool)
: NULL;
+ const char *move_dst_op_root_abspath
+ = dst_op_root_relpath
+ ? svn_dirent_join(wcroot->abspath,
+ dst_op_root_relpath, scratch_pool)
+ : NULL;
const char *old_repos_relpath_part
= old_repos_relpath && old_version
? svn_relpath_skip_ancestor(old_version->path_in_repos,
@@ -468,7 +473,7 @@ create_tree_conflict(svn_skel_t **conflict_p,
SVN_ERR(svn_wc__conflict_read_tree_conflict(&existing_reason,
&existing_action,
- &existing_abspath,
+ &existing_abspath, NULL,
db, wcroot->abspath,
conflict,
scratch_pool,
@@ -500,6 +505,7 @@ create_tree_conflict(svn_skel_t **conflict_p,
reason,
action,
move_src_op_root_abspath,
+ move_dst_op_root_abspath,
result_pool,
scratch_pool));
@@ -1050,7 +1056,7 @@ tc_editor_incoming_add_file(node_move_baton_t *nmb,
SVN_ERR(svn_wc__wq_build_file_remove(&work_item, b->db,
b->wcroot->abspath, src_abspath,
scratch_pool, scratch_pool));
-
+
work_items = svn_wc__wq_merge(work_items, work_item, scratch_pool);
}
@@ -2169,11 +2175,12 @@ suitable_for_move(svn_wc__db_wcroot_t *wcroot,
while (have_row)
{
svn_revnum_t node_revision = svn_sqlite__column_revnum(stmt, 2);
- const char *child_relpath = svn_sqlite__column_text(stmt, 0, NULL);
+ const char *child_relpath;
const char *relpath;
svn_pool_clear(iterpool);
+ child_relpath = svn_sqlite__column_text(stmt, 0, iterpool);
relpath = svn_relpath_skip_ancestor(local_relpath, child_relpath);
relpath = svn_relpath_join(repos_relpath, relpath, iterpool);
@@ -2520,7 +2527,7 @@ update_incoming_moved_node(node_move_baton_t *nmb,
SVN_ERR(svn_stream_open_unique(&temp_stream, &temp_abspath,
wctemp_abspath, svn_io_file_del_none,
scratch_pool, scratch_pool));
- err = svn_stream_copy3(working_stream, temp_stream,
+ err = svn_stream_copy3(working_stream, temp_stream,
b->cancel_func, b->cancel_baton,
scratch_pool);
if (err && err->apr_err == SVN_ERR_CANCELLED)
@@ -2685,7 +2692,7 @@ update_incoming_move(svn_revnum_t *old_rev,
* recorded for any tree conflicts created during the editor drive.
* We assume this path contains no local changes, and create local changes
* in DST_RELPATH corresponding to changes contained in the conflict victim.
- *
+ *
* DST_OP_DEPTH is used to infer the "op-root" of the incoming move. This
* "op-root" is virtual because all nodes belonging to the incoming move
* live in the BASE tree. It is used for constructing repository paths
@@ -2981,7 +2988,7 @@ tc_editor_update_add_new_file(added_node_baton_t *nb,
nb->skip = TRUE;
return SVN_NO_ERROR;
}
-
+
/* Check for obstructions. */
local_abspath = svn_dirent_join(nb->b->wcroot->abspath, nb->local_relpath,
scratch_pool);
@@ -3582,7 +3589,7 @@ svn_wc__db_update_local_add(svn_wc__db_t *db,
VERIFY_USABLE_WCROOT(wcroot);
SVN_WC__DB_WITH_TXN(update_local_add(&new_rev, db, wcroot,
- local_relpath,
+ local_relpath,
cancel_func, cancel_baton,
scratch_pool),
wcroot);
@@ -4099,7 +4106,7 @@ fetch_conflict_details(int *src_op_depth,
SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason,
action,
- &move_src_op_root_abspath,
+ &move_src_op_root_abspath, NULL,
db, local_abspath,
conflict_skel, result_pool,
scratch_pool));
@@ -4251,7 +4258,7 @@ svn_wc__db_op_raise_moved_away(svn_wc__db_t *db,
scratch_pool),
wcroot);
- /* These version numbers are valid for update/switch notifications
+ /* These version numbers are valid for update/switch notifications
only! */
SVN_ERR(svn_wc__db_update_move_list_notify(wcroot,
(left_version
diff --git a/subversion/libsvn_wc/wc_db_wcroot.c b/subversion/libsvn_wc/wc_db_wcroot.c
index 1cfca3d1c7c7..c4f8c3bd4706 100644
--- a/subversion/libsvn_wc/wc_db_wcroot.c
+++ b/subversion/libsvn_wc/wc_db_wcroot.c
@@ -528,6 +528,7 @@ svn_wc__db_wcroot_parse_local_abspath(svn_wc__db_wcroot_t **wcroot,
const char *adm_relpath;
/* Non-NULL if WCROOT is found through a symlink: */
const char *symlink_wcroot_abspath = NULL;
+ apr_pool_t *iterpool;
/* ### we need more logic for finding the database (if it is located
### outside of the wcroot) and then managing all of that within DB.
@@ -613,16 +614,20 @@ svn_wc__db_wcroot_parse_local_abspath(svn_wc__db_wcroot_t **wcroot,
database in the right place. If we find it... great! If not, then
peel off some components, and try again. */
+ iterpool = svn_pool_create(scratch_pool);
adm_relpath = svn_wc_get_adm_dir(scratch_pool);
while (TRUE)
{
svn_error_t *err;
svn_node_kind_t adm_subdir_kind;
- const char *adm_subdir = svn_dirent_join(local_abspath, adm_relpath,
- scratch_pool);
+ const char *adm_subdir;
- SVN_ERR(svn_io_check_path(adm_subdir, &adm_subdir_kind, scratch_pool));
+ svn_pool_clear(iterpool);
+
+ adm_subdir = svn_dirent_join(local_abspath, adm_relpath, iterpool);
+
+ SVN_ERR(svn_io_check_path(adm_subdir, &adm_subdir_kind, iterpool));
if (adm_subdir_kind == svn_node_dir)
{
@@ -673,7 +678,7 @@ svn_wc__db_wcroot_parse_local_abspath(svn_wc__db_wcroot_t **wcroot,
if (!moved_upwards || always_check)
{
SVN_ERR(get_old_version(&wc_format, local_abspath,
- scratch_pool));
+ iterpool));
if (wc_format != 0)
break;
}
@@ -697,7 +702,7 @@ svn_wc__db_wcroot_parse_local_abspath(svn_wc__db_wcroot_t **wcroot,
SVN_ERR(svn_io_check_resolved_path(local_abspath,
&resolved_kind,
- scratch_pool));
+ iterpool));
if (resolved_kind == svn_node_dir)
{
/* Is this directory recorded in our hash? */
@@ -973,6 +978,7 @@ try_symlink_as_dir:
}
while (strcmp(scan_abspath, local_abspath) != 0);
+ svn_pool_destroy(iterpool);
return SVN_NO_ERROR;
}
diff --git a/subversion/libsvn_wc/wcroot_anchor.c b/subversion/libsvn_wc/wcroot_anchor.c
index 7400aa5c9948..2e675b6a010f 100644
--- a/subversion/libsvn_wc/wcroot_anchor.c
+++ b/subversion/libsvn_wc/wcroot_anchor.c
@@ -183,18 +183,20 @@ svn_wc__get_wcroot(const char **wcroot_abspath,
svn_error_t *
-svn_wc__get_shelves_dir(char **dir,
- svn_wc_context_t *wc_ctx,
- const char *local_abspath,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
+svn_wc__get_experimental_dir(char **dir,
+ svn_wc_context_t *wc_ctx,
+ const char *local_abspath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
{
const char *wcroot_abspath;
SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, wc_ctx, local_abspath,
scratch_pool, scratch_pool));
- *dir = svn_dirent_join(wcroot_abspath, ".svn/shelves", result_pool);
-
+ *dir = svn_dirent_join(wcroot_abspath,
+ SVN_WC_ADM_DIR_NAME "/" SVN_WC__ADM_EXPERIMENTAL,
+ result_pool);
+
/* Ensure the directory exists. (Other versions of svn don't create it.) */
SVN_ERR(svn_io_make_dir_recursively(*dir, scratch_pool));
diff --git a/subversion/svn/auth-cmd.c b/subversion/svn/auth-cmd.c
index 68ca067e736b..b064b8a4d525 100644
--- a/subversion/svn/auth-cmd.c
+++ b/subversion/svn/auth-cmd.c
@@ -455,12 +455,15 @@ svn_cl__auth(apr_getopt_t *os, void *baton, apr_pool_t *pool)
{
if (b.patterns->nelts == 0)
SVN_ERR(svn_cmdline_printf(pool,
- _("Credentials cache in '%s' contains %d credentials\n"),
+ Q_("Credentials cache in '%s' contains %d credential\n",
+ "Credentials cache in '%s' contains %d credentials\n",
+ b.matches),
svn_dirent_local_style(config_path, pool), b.matches));
else
SVN_ERR(svn_cmdline_printf(pool,
- _("Credentials cache in '%s' contains %d matching "
- "credentials\n"),
+ Q_("Credentials cache in '%s' contains %d matching credential\n",
+ "Credentials cache in '%s' contains %d matching credentials\n",
+ b.matches),
svn_dirent_local_style(config_path, pool), b.matches));
}
@@ -474,9 +477,11 @@ svn_cl__auth(apr_getopt_t *os, void *baton, apr_pool_t *pool)
"no matching credentials"),
svn_dirent_local_style(config_path, pool));
else
- SVN_ERR(svn_cmdline_printf(pool, _("Deleted %d matching credentials "
- "from '%s'\n"), b.matches,
- svn_dirent_local_style(config_path, pool)));
+ SVN_ERR(svn_cmdline_printf(pool,
+ Q_("Deleted %d matching credential from '%s'\n",
+ "Deleted %d matching credentials from '%s'\n",
+ b.matches),
+ b.matches, svn_dirent_local_style(config_path, pool)));
}
return SVN_NO_ERROR;
diff --git a/subversion/svn/blame-cmd.c b/subversion/svn/blame-cmd.c
index 3911a64258f8..8f955766b7c3 100644
--- a/subversion/svn/blame-cmd.c
+++ b/subversion/svn/blame-cmd.c
@@ -44,6 +44,7 @@ typedef struct blame_baton_t
svn_stream_t *out;
svn_stringbuf_t *sbuf;
+ svn_revnum_t start_revnum, end_revnum;
int rev_maxlength;
} blame_baton_t;
@@ -54,15 +55,13 @@ typedef struct blame_baton_t
XML to stdout. */
static svn_error_t *
blame_receiver_xml(void *baton,
- svn_revnum_t start_revnum,
- svn_revnum_t end_revnum,
apr_int64_t line_no,
svn_revnum_t revision,
apr_hash_t *rev_props,
svn_revnum_t merged_revision,
apr_hash_t *merged_rev_props,
const char *merged_path,
- const char *line,
+ const svn_string_t *line,
svn_boolean_t local_change,
apr_pool_t *pool)
{
@@ -170,15 +169,13 @@ print_line_info(svn_stream_t *out,
/* This implements the svn_client_blame_receiver3_t interface. */
static svn_error_t *
blame_receiver(void *baton,
- svn_revnum_t start_revnum,
- svn_revnum_t end_revnum,
apr_int64_t line_no,
svn_revnum_t revision,
apr_hash_t *rev_props,
svn_revnum_t merged_revision,
apr_hash_t *merged_rev_props,
const char *merged_path,
- const char *line,
+ const svn_string_t *line,
svn_boolean_t local_change,
apr_pool_t *pool)
{
@@ -188,19 +185,19 @@ blame_receiver(void *baton,
svn_boolean_t use_merged = FALSE;
if (!bb->rev_maxlength)
- {
- svn_revnum_t max_revnum = MAX(start_revnum, end_revnum);
- /* The standard column width for the revision number is 6 characters.
- If the revision number can potentially be larger (i.e. if the end_revnum
- is larger than 1000000), we increase the column width as needed. */
-
- bb->rev_maxlength = 6;
- while (max_revnum >= 1000000)
- {
- bb->rev_maxlength++;
- max_revnum = max_revnum / 10;
- }
- }
+ {
+ svn_revnum_t max_revnum = MAX(bb->start_revnum, bb->end_revnum);
+ /* The standard column width for the revision number is 6 characters.
+ If the revision number can potentially be larger (i.e. if the end_revnum
+ is larger than 1000000), we increase the column width as needed. */
+
+ bb->rev_maxlength = 6;
+ while (max_revnum >= 1000000)
+ {
+ bb->rev_maxlength++;
+ max_revnum = max_revnum / 10;
+ }
+ }
if (opt_state->use_merge_history)
{
@@ -237,7 +234,7 @@ blame_receiver(void *baton,
bb->rev_maxlength,
pool));
- return svn_stream_printf(out, pool, "%s%s", line, APR_EOL_STR);
+ return svn_stream_printf(out, pool, "%s%s", line->data, APR_EOL_STR);
}
@@ -333,7 +330,7 @@ svn_cl__blame(apr_getopt_t *os,
const char *target = APR_ARRAY_IDX(targets, i, const char *);
const char *truepath;
svn_opt_revision_t peg_revision;
- svn_client_blame_receiver3_t receiver;
+ svn_client_blame_receiver4_t receiver;
svn_pool_clear(subpool);
SVN_ERR(svn_cl__check_cancel(ctx->cancel_baton));
@@ -368,7 +365,8 @@ svn_cl__blame(apr_getopt_t *os,
else
receiver = blame_receiver;
- err = svn_client_blame5(truepath,
+ err = svn_client_blame6(&bl.start_revnum, &bl.end_revnum,
+ truepath,
&peg_revision,
&opt_state->start_revision,
&opt_state->end_revision,
diff --git a/subversion/svn/cl.h b/subversion/svn/cl.h
index a5b1d9b948ae..955e3ea8720c 100644
--- a/subversion/svn/cl.h
+++ b/subversion/svn/cl.h
@@ -32,6 +32,7 @@
#include <apr_tables.h>
#include <apr_getopt.h>
+#include "svn_types.h"
#include "svn_wc.h"
#include "svn_client.h"
#include "svn_string.h"
@@ -126,6 +127,16 @@ typedef enum svn_cl__show_revs_t {
svn_cl__show_revs_t
svn_cl__show_revs_from_word(const char *word);
+
+/* Unit types for file size conversion. */
+typedef enum svn_cl__size_unit_t
+ {
+ SVN_CL__SIZE_UNIT_NONE = 0, /* Default, no conversion. */
+ SVN_CL__SIZE_UNIT_XML = -1, /* Conversion for XML output. */
+ SVN_CL__SIZE_UNIT_BASE_10 = 1000, /* Use base-10 SI units. */
+ SVN_CL__SIZE_UNIT_BASE_2 = 1024 /* Use base-2 SI units. */
+ } svn_cl__size_unit_t;
+
/*** Command dispatch. ***/
@@ -250,13 +261,20 @@ typedef struct svn_cl__opt_state_t
svn_boolean_t mergeinfo_log; /* show log message in mergeinfo command */
svn_boolean_t remove_unversioned;/* remove unversioned items */
svn_boolean_t remove_ignored; /* remove ignored items */
+ svn_boolean_t remove_added; /* reverting added item also removes it */
svn_boolean_t no_newline; /* do not output the trailing newline */
svn_boolean_t show_passwords; /* show cached passwords */
svn_boolean_t pin_externals; /* pin externals to last-changed revisions */
const char *show_item; /* print only the given item */
svn_boolean_t adds_as_modification; /* update 'add vs add' no tree conflict */
svn_boolean_t vacuum_pristines; /* remove unreferenced pristines */
- svn_boolean_t list;
+ svn_boolean_t drop; /* drop shelf after successful unshelve */
+ svn_cl__size_unit_t file_size_unit; /* file size format */
+ enum svn_cl__viewspec_t {
+ svn_cl__viewspec_unspecified = 0 /* default */,
+ svn_cl__viewspec_classic,
+ svn_cl__viewspec_svn11
+ } viewspec; /* value of --x-viewspec */
} svn_cl__opt_state_t;
/* Conflict stats for operations such as update and merge. */
@@ -270,6 +288,103 @@ typedef struct svn_cl__cmd_baton_t
} svn_cl__cmd_baton_t;
+/* Add an identifier here for long options that don't have a short
+ option. Options that have both long and short options should just
+ use the short option letter as identifier. */
+typedef enum svn_cl__longopt_t {
+ opt_auth_password = SVN_OPT_FIRST_LONGOPT_ID,
+ opt_auth_password_from_stdin,
+ opt_auth_username,
+ opt_autoprops,
+ opt_changelist,
+ opt_config_dir,
+ opt_config_options,
+ /* diff options */
+ opt_diff_cmd,
+ opt_internal_diff,
+ opt_no_diff_added,
+ opt_no_diff_deleted,
+ opt_show_copies_as_adds,
+ opt_notice_ancestry,
+ opt_summarize,
+ opt_use_git_diff_format,
+ opt_ignore_properties,
+ opt_properties_only,
+ opt_patch_compatible,
+ /* end of diff options */
+ opt_dry_run,
+ opt_editor_cmd,
+ opt_encoding,
+ opt_force_log,
+ opt_force,
+ opt_keep_changelists,
+ opt_ignore_ancestry,
+ opt_ignore_externals,
+ opt_incremental,
+ opt_merge_cmd,
+ opt_native_eol,
+ opt_new_cmd,
+ opt_no_auth_cache,
+ opt_no_autoprops,
+ opt_no_ignore,
+ opt_no_unlock,
+ opt_non_interactive,
+ opt_force_interactive,
+ opt_old_cmd,
+ opt_record_only,
+ opt_relocate,
+ opt_remove,
+ opt_revprop,
+ opt_stop_on_copy,
+ opt_strict, /* ### DEPRECATED */
+ opt_targets,
+ opt_depth,
+ opt_set_depth,
+ opt_version,
+ opt_xml,
+ opt_keep_local,
+ opt_with_revprop,
+ opt_with_all_revprops,
+ opt_with_no_revprops,
+ opt_parents,
+ opt_accept,
+ opt_show_revs,
+ opt_reintegrate,
+ opt_trust_server_cert,
+ opt_trust_server_cert_failures,
+ opt_strip,
+ opt_ignore_keywords,
+ opt_reverse_diff,
+ opt_ignore_whitespace,
+ opt_diff,
+ opt_allow_mixed_revisions,
+ opt_include_externals,
+ opt_show_inherited_props,
+ opt_search,
+ opt_search_and,
+ opt_mergeinfo_log,
+ opt_remove_unversioned,
+ opt_remove_ignored,
+ opt_remove_added,
+ opt_no_newline,
+ opt_show_passwords,
+ opt_pin_externals,
+ opt_show_item,
+ opt_adds_as_modification,
+ opt_vacuum_pristines,
+ opt_drop,
+ opt_viewspec,
+} svn_cl__longopt_t;
+
+/* Options for giving a log message. (Some of these also have other uses.)
+ */
+#define SVN_CL__LOG_MSG_OPTIONS 'm', 'F', \
+ opt_force_log, \
+ opt_editor_cmd, \
+ opt_encoding, \
+ opt_with_revprop
+
+
/* Declare all the command procedures */
svn_opt_subcommand_t
svn_cl__add,
@@ -304,9 +419,6 @@ svn_opt_subcommand_t
svn_cl__revert,
svn_cl__resolve,
svn_cl__resolved,
- svn_cl__shelve,
- svn_cl__unshelve,
- svn_cl__shelves,
svn_cl__status,
svn_cl__switch,
svn_cl__unlock,
@@ -315,7 +427,7 @@ svn_opt_subcommand_t
/* See definition in svn.c for documentation. */
-extern const svn_opt_subcommand_desc2_t svn_cl__cmd_table[];
+extern const svn_opt_subcommand_desc3_t *svn_cl__cmd_table;
/* See definition in svn.c for documentation. */
extern const int svn_cl__global_options[];
@@ -389,7 +501,7 @@ svn_error_t *
svn_cl__print_conflict_stats(svn_cl__conflict_stats_t *conflict_stats,
apr_pool_t *scratch_pool);
-/*
+/*
* Interactively resolve the conflict a @a CONFLICT.
* TODO: more docs
*/
@@ -406,7 +518,7 @@ svn_cl__resolve_conflict(svn_boolean_t *quit,
svn_client_ctx_t *ctx,
apr_pool_t *scratch_pool);
-/*
+/*
* Interactively resolve conflicts for all TARGETS.
* TODO: more docs
*/
@@ -711,6 +823,24 @@ svn_cl__node_kind_str_xml(svn_node_kind_t kind);
const char *
svn_cl__node_kind_str_human_readable(svn_node_kind_t kind);
+/* Set *RESULT to the size of a file, formatted according to BASE.
+ For base-10 and base-2 units, the size is constrained to at most
+ three significant digits.
+
+ If LONG_UNITS is TRUE, any unit suffixes will be the whole SI symbol,
+ e.g., KiB, MiB, etc; otherwise only the first letters will be used.
+
+ File sizes are never negative, so we don't handle that case other than
+ making sure that the scale adjustment will work.
+
+ The result will be allocated from RESULT_POOL. */
+svn_error_t *
+svn_cl__format_file_size(const char **result,
+ svn_filesize_t size,
+ svn_cl__size_unit_t base,
+ svn_boolean_t long_units,
+ apr_pool_t *result_pool);
+
/** Provides an XML name for a given OPERATION.
* Note: POOL is currently not used.
@@ -915,6 +1045,20 @@ svn_cl__similarity_check(const char *key,
apr_size_t token_count,
apr_pool_t *scratch_pool);
+/* Return in FUNC_P and BATON_P a callback that prints a summary diff,
+ * according to the options XML and IGNORE_PROPERTIES.
+ *
+ * ANCHOR is a URL or local path to be prefixed to the printed paths.
+ */
+svn_error_t *
+svn_cl__get_diff_summary_writer(svn_client_diff_summarize_func_t *func_p,
+ void **baton_p,
+ svn_boolean_t xml,
+ svn_boolean_t ignore_properties,
+ const char *anchor,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/subversion/svn/conflict-callbacks.c b/subversion/svn/conflict-callbacks.c
index 278fffcdb882..1c073e6b1c6a 100644
--- a/subversion/svn/conflict-callbacks.c
+++ b/subversion/svn/conflict-callbacks.c
@@ -234,7 +234,7 @@ merge_prop_conflict(svn_stream_t *output,
my_propval = svn_string_create_empty(pool);
if (their_propval == NULL)
their_propval = svn_string_create_empty(pool);
-
+
options->ignore_eol_style = TRUE;
SVN_ERR(svn_diff_mem_string_diff3(&diff, base_propval,
merged_propval ?
@@ -361,7 +361,7 @@ edit_prop_conflict(const svn_string_t **merged_propval,
svn_stringbuf_t *buf;
SVN_ERR(svn_stringbuf_from_file2(&buf, file_path, scratch_pool));
- *merged_propval = svn_string_create_from_buf(buf, result_pool);
+ *merged_propval = svn_string_create_from_buf(buf, result_pool);
}
return SVN_NO_ERROR;
@@ -440,6 +440,17 @@ static const resolver_option_t builtin_resolver_options[] =
/* Options for local move vs incoming edit. */
{ "m", svn_client_conflict_option_local_move_file_text_merge },
+ { "m", svn_client_conflict_option_local_move_dir_merge },
+
+ /* Options for local missing vs incoming edit. */
+ { "m", svn_client_conflict_option_sibling_move_file_text_merge },
+ { "m", svn_client_conflict_option_sibling_move_dir_merge },
+
+ /* Options for incoming move vs local move. */
+ { "m", svn_client_conflict_option_both_moved_file_merge },
+ { "M", svn_client_conflict_option_both_moved_file_move_merge },
+ { "m", svn_client_conflict_option_both_moved_dir_merge },
+ { "M", svn_client_conflict_option_both_moved_dir_move_merge },
{ NULL }
};
@@ -889,7 +900,7 @@ handle_text_conflict(svn_boolean_t *resolved,
const char *their_abspath;
const char *merged_abspath = svn_client_conflict_get_local_abspath(conflict);
apr_array_header_t *text_conflict_options;
- svn_client_conflict_option_id_t option_id;
+ svn_client_conflict_option_id_t option_id;
option_id = svn_client_conflict_option_unspecified;
@@ -1529,17 +1540,16 @@ build_tree_conflict_options(
id != svn_client_conflict_option_accept_current_wc_state)
*all_options_are_dumb = FALSE;
- if (id == svn_client_conflict_option_incoming_move_file_text_merge ||
- id == svn_client_conflict_option_incoming_move_dir_merge)
- {
- SVN_ERR(
- svn_client_conflict_option_get_moved_to_repos_relpath_candidates(
- possible_moved_to_repos_relpaths, builtin_option,
- result_pool, iterpool));
- SVN_ERR(svn_client_conflict_option_get_moved_to_abspath_candidates(
- possible_moved_to_abspaths, builtin_option,
- result_pool, iterpool));
- }
+ if (*possible_moved_to_repos_relpaths == NULL)
+ SVN_ERR(
+ svn_client_conflict_option_get_moved_to_repos_relpath_candidates2(
+ possible_moved_to_repos_relpaths, builtin_option,
+ result_pool, iterpool));
+
+ if (*possible_moved_to_abspaths == NULL)
+ SVN_ERR(svn_client_conflict_option_get_moved_to_abspath_candidates2(
+ possible_moved_to_abspaths, builtin_option,
+ result_pool, iterpool));
}
svn_pool_destroy(iterpool);
@@ -1549,11 +1559,11 @@ build_tree_conflict_options(
/* Add move target choice options only if there are multiple
* move targets to choose from. */
if (strcmp(o->code, "d") == 0 &&
- (*possible_moved_to_repos_relpaths == NULL ||
+ (*possible_moved_to_repos_relpaths == NULL ||
(*possible_moved_to_repos_relpaths)->nelts <= 1))
continue;
if (strcmp(o->code, "w") == 0 &&
- (*possible_moved_to_abspaths == NULL ||
+ (*possible_moved_to_abspaths == NULL ||
(*possible_moved_to_abspaths)->nelts <= 1))
continue;
@@ -1654,8 +1664,8 @@ prompt_move_target_path(int *preferred_move_target_idx,
{
char buf[1024];
- svn_cmdline_fprintf(stderr, iterpool, "%s\n",
- svn_err_best_message(err, buf, sizeof(buf)));
+ SVN_ERR(svn_cmdline_fprintf(stderr, iterpool, "%s\n",
+ svn_err_best_message(err, buf, sizeof(buf))));
svn_error_clear(err);
continue;
}
@@ -1670,6 +1680,69 @@ prompt_move_target_path(int *preferred_move_target_idx,
return SVN_NO_ERROR;
}
+static svn_error_t *
+find_conflict_option_with_repos_move_targets(
+ svn_client_conflict_option_t **option_with_move_targets,
+ apr_array_header_t *options,
+ apr_pool_t *scratch_pool)
+{
+ apr_pool_t *iterpool = svn_pool_create(scratch_pool);
+ int i;
+ apr_array_header_t *possible_moved_to_repos_relpaths = NULL;
+
+ *option_with_move_targets = NULL;
+
+ for (i = 0; i < options->nelts; i++)
+ {
+ svn_client_conflict_option_t *option;
+
+ svn_pool_clear(iterpool);
+ option = APR_ARRAY_IDX(options, i, svn_client_conflict_option_t *);
+ SVN_ERR(svn_client_conflict_option_get_moved_to_repos_relpath_candidates2(
+ &possible_moved_to_repos_relpaths, option, iterpool, iterpool));
+ if (possible_moved_to_repos_relpaths)
+ {
+ *option_with_move_targets = option;
+ break;
+ }
+ }
+ svn_pool_destroy(iterpool);
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+find_conflict_option_with_working_copy_move_targets(
+ svn_client_conflict_option_t **option_with_move_targets,
+ apr_array_header_t *options,
+ apr_pool_t *scratch_pool)
+{
+ apr_pool_t *iterpool = svn_pool_create(scratch_pool);
+ int i;
+ apr_array_header_t *possible_moved_to_abspaths = NULL;
+
+ *option_with_move_targets = NULL;
+
+ for (i = 0; i < options->nelts; i++)
+ {
+ svn_client_conflict_option_t *option;
+
+ svn_pool_clear(iterpool);
+ option = APR_ARRAY_IDX(options, i, svn_client_conflict_option_t *);
+ SVN_ERR(svn_client_conflict_option_get_moved_to_abspath_candidates2(
+ &possible_moved_to_abspaths, option, scratch_pool,
+ iterpool));
+ if (possible_moved_to_abspaths)
+ {
+ *option_with_move_targets = option;
+ break;
+ }
+ }
+ svn_pool_destroy(iterpool);
+
+ return SVN_NO_ERROR;
+}
+
/* Ask the user what to do about the tree conflict described by CONFLICT
* and either resolve the conflict accordingly or postpone resolution.
* SCRATCH_POOL is used for temporary allocations. */
@@ -1797,7 +1870,7 @@ handle_tree_conflict(svn_boolean_t *resolved,
{
int preferred_move_target_idx;
apr_array_header_t *options;
- svn_client_conflict_option_t *conflict_option;
+ svn_client_conflict_option_t *option;
SVN_ERR(prompt_move_target_path(&preferred_move_target_idx,
possible_moved_to_repos_relpaths,
@@ -1810,22 +1883,12 @@ handle_tree_conflict(svn_boolean_t *resolved,
ctx,
iterpool,
iterpool));
- conflict_option =
- svn_client_conflict_option_find_by_id(
- options,
- svn_client_conflict_option_incoming_move_file_text_merge);
- if (conflict_option == NULL)
+ SVN_ERR(find_conflict_option_with_repos_move_targets(
+ &option, options, iterpool));
+ if (option)
{
- conflict_option =
- svn_client_conflict_option_find_by_id(
- options, svn_client_conflict_option_incoming_move_dir_merge);
- }
-
- if (conflict_option)
- {
- SVN_ERR(svn_client_conflict_option_set_moved_to_repos_relpath(
- conflict_option, preferred_move_target_idx,
- ctx, iterpool));
+ SVN_ERR(svn_client_conflict_option_set_moved_to_repos_relpath2(
+ option, preferred_move_target_idx, ctx, iterpool));
repos_move_target_chosen = TRUE;
wc_move_target_chosen = FALSE;
@@ -1851,7 +1914,7 @@ handle_tree_conflict(svn_boolean_t *resolved,
{
int preferred_move_target_idx;
apr_array_header_t *options;
- svn_client_conflict_option_t *conflict_option;
+ svn_client_conflict_option_t *option;
SVN_ERR(prompt_move_target_path(&preferred_move_target_idx,
possible_moved_to_abspaths, TRUE,
@@ -1863,22 +1926,12 @@ handle_tree_conflict(svn_boolean_t *resolved,
ctx,
iterpool,
iterpool));
- conflict_option =
- svn_client_conflict_option_find_by_id(
- options,
- svn_client_conflict_option_incoming_move_file_text_merge);
- if (conflict_option == NULL)
- {
- conflict_option =
- svn_client_conflict_option_find_by_id(
- options, svn_client_conflict_option_incoming_move_dir_merge);
- }
-
- if (conflict_option)
+ SVN_ERR(find_conflict_option_with_working_copy_move_targets(
+ &option, options, iterpool));
+ if (option)
{
- SVN_ERR(svn_client_conflict_option_set_moved_to_abspath(
- conflict_option, preferred_move_target_idx, ctx,
- iterpool));
+ SVN_ERR(svn_client_conflict_option_set_moved_to_abspath2(
+ option, preferred_move_target_idx, ctx, iterpool));
wc_move_target_chosen = TRUE;
/* Update option description. */
@@ -1930,7 +1983,6 @@ resolve_conflict_interactively(svn_boolean_t *resolved,
svn_cmdline_prompt_baton_t *pb,
svn_cl__conflict_stats_t *conflict_stats,
svn_client_ctx_t *ctx,
- apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
svn_boolean_t text_conflicted;
@@ -1964,7 +2016,7 @@ resolve_conflict_interactively(svn_boolean_t *resolved,
if (props_conflicted->nelts > 0)
SVN_ERR(handle_prop_conflicts(resolved, postponed, quit, &merged_propval,
path_prefix, pb, editor_cmd, config, conflict,
- conflict_stats, ctx, result_pool, scratch_pool));
+ conflict_stats, ctx, scratch_pool, scratch_pool));
if (tree_conflicted)
SVN_ERR(handle_tree_conflict(resolved, postponed, quit, printed_description,
conflict, path_prefix, pb, conflict_stats, ctx,
@@ -2201,11 +2253,14 @@ svn_cl__resolve_conflict(svn_boolean_t *quit,
svn_boolean_t postponed = FALSE;
svn_boolean_t printed_description = FALSE;
svn_error_t *err;
+ apr_pool_t *iterpool;
*quit = FALSE;
+ iterpool = svn_pool_create(scratch_pool);
while (!resolved && !postponed && !*quit)
{
+ svn_pool_clear(iterpool);
err = resolve_conflict_interactively(&resolved, &postponed, quit,
external_failed,
printed_summary,
@@ -2214,7 +2269,7 @@ svn_cl__resolve_conflict(svn_boolean_t *quit,
editor_cmd, ctx->config,
path_prefix, pb,
conflict_stats, ctx,
- scratch_pool, scratch_pool);
+ iterpool);
if (err && err->apr_err == SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE)
{
/* Conflict resolution has failed. Let the user try again.
@@ -2226,6 +2281,7 @@ svn_cl__resolve_conflict(svn_boolean_t *quit,
}
SVN_ERR(err);
}
+ svn_pool_destroy(iterpool);
}
else if (option_id != svn_client_conflict_option_postpone)
SVN_ERR(mark_conflict_resolved(conflict, option_id,
diff --git a/subversion/svn/diff-cmd.c b/subversion/svn/diff-cmd.c
index 9e389ec856a6..b5f3702033f0 100644
--- a/subversion/svn/diff-cmd.c
+++ b/subversion/svn/diff-cmd.c
@@ -181,6 +181,24 @@ summarize_regular(const svn_client_diff_summarize_t *summary,
return svn_cmdline_fflush(stdout);
}
+svn_error_t *
+svn_cl__get_diff_summary_writer(svn_client_diff_summarize_func_t *func_p,
+ void **baton_p,
+ svn_boolean_t xml,
+ svn_boolean_t ignore_properties,
+ const char *anchor,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ struct summarize_baton_t *b = apr_pcalloc(result_pool, sizeof(*b));
+
+ b->anchor = anchor;
+ b->ignore_properties = ignore_properties;
+ *func_p = xml ? summarize_xml : summarize_regular;
+ *baton_p = b;
+ return SVN_NO_ERROR;
+}
+
/* An svn_opt_subcommand_t to handle the 'diff' command.
This implements the `svn_opt_subcommand_t' interface. */
svn_error_t *
@@ -203,9 +221,6 @@ svn_cl__diff(apr_getopt_t *os,
svn_boolean_t ignore_properties =
opt_state->diff.patch_compatible || opt_state->diff.ignore_properties;
int i;
- struct summarize_baton_t summarize_baton;
- const svn_client_diff_summarize_func_t summarize_func =
- (opt_state->xml ? summarize_xml : summarize_regular);
if (opt_state->extensions)
options = svn_cstring_split(opt_state->extensions, " \t\n\r", TRUE, pool);
@@ -448,9 +463,13 @@ svn_cl__diff(apr_getopt_t *os,
if (opt_state->diff.summarize)
{
- summarize_baton.anchor = target1;
- summarize_baton.ignore_properties = ignore_properties;
+ svn_client_diff_summarize_func_t summarize_func;
+ void *summarize_baton;
+ SVN_ERR(svn_cl__get_diff_summary_writer(
+ &summarize_func, &summarize_baton,
+ opt_state->xml, ignore_properties, target1,
+ iterpool, iterpool));
SVN_ERR(svn_client_diff_summarize2(
target1,
&opt_state->start_revision,
@@ -459,11 +478,11 @@ svn_cl__diff(apr_getopt_t *os,
opt_state->depth,
! opt_state->diff.notice_ancestry,
opt_state->changelists,
- summarize_func, &summarize_baton,
+ summarize_func, summarize_baton,
ctx, iterpool));
}
else
- SVN_ERR(svn_client_diff6(
+ SVN_ERR(svn_client_diff7(
options,
target1,
&(opt_state->start_revision),
@@ -479,6 +498,7 @@ svn_cl__diff(apr_getopt_t *os,
ignore_properties,
opt_state->diff.properties_only,
opt_state->diff.use_git_diff_format,
+ TRUE /*pretty_print_mergeinfo*/,
svn_cmdline_output_encoding(pool),
outstream,
errstream,
@@ -501,8 +521,13 @@ svn_cl__diff(apr_getopt_t *os,
if (opt_state->diff.summarize)
{
- summarize_baton.anchor = truepath;
- summarize_baton.ignore_properties = ignore_properties;
+ svn_client_diff_summarize_func_t summarize_func;
+ void *summarize_baton;
+
+ SVN_ERR(svn_cl__get_diff_summary_writer(
+ &summarize_func, &summarize_baton,
+ opt_state->xml, ignore_properties, truepath,
+ iterpool, iterpool));
SVN_ERR(svn_client_diff_summarize_peg2(
truepath,
&peg_revision,
@@ -511,11 +536,11 @@ svn_cl__diff(apr_getopt_t *os,
opt_state->depth,
! opt_state->diff.notice_ancestry,
opt_state->changelists,
- summarize_func, &summarize_baton,
+ summarize_func, summarize_baton,
ctx, iterpool));
}
else
- SVN_ERR(svn_client_diff_peg6(
+ SVN_ERR(svn_client_diff_peg7(
options,
truepath,
&peg_revision,
@@ -531,6 +556,7 @@ svn_cl__diff(apr_getopt_t *os,
ignore_properties,
opt_state->diff.properties_only,
opt_state->diff.use_git_diff_format,
+ TRUE /*pretty_print_mergeinfo*/,
svn_cmdline_output_encoding(pool),
outstream,
errstream,
diff --git a/subversion/svn/filesize.c b/subversion/svn/filesize.c
new file mode 100644
index 000000000000..ba1c35626b61
--- /dev/null
+++ b/subversion/svn/filesize.c
@@ -0,0 +1,221 @@
+/*
+ * filesize.c -- Utilities for displaying file sizes
+ *
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ */
+
+
+/*** Includes. ***/
+
+#include <assert.h>
+#include <math.h>
+#include <stdio.h>
+
+#include <apr_strings.h>
+
+#include "cl.h"
+
+
+/*** Code. ***/
+
+/* The structure that describes the units and their magnitudes. */
+typedef struct filesize_order_t
+{
+ svn_filesize_t mask;
+ const char *suffix;
+ const char *short_suffix;
+} filesize_order_t;
+
+
+/* Get the index of the order of magnitude of the given SIZE.
+ The returned index will be within [0 .. order_size - 1]. */
+static apr_size_t
+get_order_index(svn_filesize_t abs_size,
+ const filesize_order_t *order,
+ apr_size_t order_size)
+{
+ /* It would be sexy to do a binary search here, but with only 7 elements
+ in the arrays ... we should ### FIXME: do the binary search anyway. */
+ apr_size_t index = order_size;
+ while (index > 0)
+ {
+ --index;
+ if (abs_size > order[index].mask)
+ break;
+ }
+ return index;
+}
+
+
+/* Format the adjusted size with the given units. */
+static const char *
+format_size(double human_readable_size,
+ svn_boolean_t long_units,
+ const filesize_order_t *order,
+ apr_size_t index,
+ apr_pool_t *result_pool)
+{
+ /* NOTE: We want to display a locale-specific decimal sepratator, but
+ APR's formatter completely ignores the locale. So we use the
+ good, old, standard, *dangerous* sprintf() to format the size.
+
+ But, on the bright side, we require that the number has no more
+ than 3 non-fractional digits. So the call to sprintf() here
+ should be safe. */
+ const double absolute_human_readable_size = fabs(human_readable_size);
+ const char *const suffix = (long_units ? order[index].suffix
+ : order[index].short_suffix);
+
+ /* 3 digits (or 2 digits and 1 decimal separator)
+ + 1 negative sign (which should not appear under normal circumstances)
+ + 1 nul terminator
+ ---
+ = 5 characters of space needed in the buffer. */
+ char buffer[8];
+
+ assert(absolute_human_readable_size < 1000.0);
+
+ /* When the adjusted size has only one significant digit left of the
+ decimal point, show tenths of a unit, too. */
+ sprintf(buffer, "%.*f",
+ absolute_human_readable_size < 10.0 ? 1 : 0,
+ human_readable_size);
+ return apr_pstrcat(result_pool, buffer, suffix, SVN_VA_NULL);
+}
+
+
+static const char *
+get_base2_unit_file_size(svn_filesize_t size,
+ svn_boolean_t long_units,
+ apr_pool_t *result_pool)
+{
+ static const filesize_order_t order[] =
+ {
+ {APR_INT64_C(0x0000000000000000), " B", "B"}, /* byte */
+ {APR_INT64_C(0x00000000000003FF), " KiB", "K"}, /* kibi */
+ {APR_INT64_C(0x00000000000FFFFF), " MiB", "M"}, /* mibi */
+ {APR_INT64_C(0x000000003FFFFFFF), " GiB", "G"}, /* gibi */
+ {APR_INT64_C(0x000000FFFFFFFFFF), " TiB", "T"}, /* tibi */
+ {APR_INT64_C(0x0003FFFFFFFFFFFF), " EiB", "E"}, /* exbi */
+ {APR_INT64_C(0x0FFFFFFFFFFFFFFF), " PiB", "P"} /* pibi */
+ };
+ static const apr_size_t order_size = sizeof(order) / sizeof(order[0]);
+
+ const svn_filesize_t abs_size = ((size < 0) ? -size : size);
+ apr_size_t index = get_order_index(abs_size, order, order_size);
+ double human_readable_size;
+
+ /* Adjust the size to the given order of magnitude.
+
+ This is division by (order[index].mask + 1), which is the base-2^10
+ magnitude of the size; and that is the same as an arithmetic right
+ shift by (index * 10) bits. But we split it into an integer and a
+ floating-point division, so that we don't overflow the mantissa at
+ very large file sizes. */
+ if ((abs_size >> 10 * index) > 999)
+ {
+ /* This assertion should never fail, because we only have 4 binary
+ digits in the petabyte (all right, "pibibyte") range and so the
+ number of petabytes can't be large enough to cause the program
+ flow to enter this conditional block. */
+ assert(index < order_size - 1);
+ ++index;
+ }
+ human_readable_size = (index == 0 ? (double)size
+ : (size >> 3 * index) / 128.0 / index);
+
+ return format_size(human_readable_size,
+ long_units, order, index, result_pool);
+}
+
+
+static const char *
+get_base10_unit_file_size(svn_filesize_t size,
+ svn_boolean_t long_units,
+ apr_pool_t *result_pool)
+{
+ static const filesize_order_t order[] =
+ {
+ {APR_INT64_C( 0), " B", "B"}, /* byte */
+ {APR_INT64_C( 999), " kB", "k"}, /* kilo */
+ {APR_INT64_C( 999999), " MB", "M"}, /* mega */
+ {APR_INT64_C( 999999999), " GB", "G"}, /* giga */
+ {APR_INT64_C( 999999999999), " TB", "T"}, /* tera */
+ {APR_INT64_C( 999999999999999), " EB", "E"}, /* exa */
+ {APR_INT64_C(999999999999999999), " PB", "P"} /* peta */
+ /* 18446744073709551615 is the maximum value. */
+ };
+ static const apr_size_t order_size = sizeof(order) / sizeof(order[0]);
+
+ const svn_filesize_t abs_size = ((size < 0) ? -size : size);
+ apr_size_t index = get_order_index(abs_size, order, order_size);
+ double human_readable_size;
+
+ /* Adjust the size to the given order of magnitude.
+
+ This is division by (order[index].mask + 1), which is the base-1000
+ magnitude of the size. For large file sizes, we split the operation
+ into an integer and a floating-point division, so that we don't
+ overflow the mantissa. */
+ if (index == 0)
+ human_readable_size = (double)size;
+ else if (index <= 3)
+ human_readable_size = (double)size / (order[index].mask + 1);
+ else
+ {
+ /* [ Keep integer division here! ] */
+ const double divisor = (double)((order[index].mask + 1) / 1000000);
+ human_readable_size = (size / 1000000) / divisor;
+ /* [ And here! ] */
+ }
+
+ return format_size(human_readable_size,
+ long_units, order, index, result_pool);
+}
+
+
+svn_error_t *
+svn_cl__format_file_size(const char **result,
+ svn_filesize_t size,
+ svn_cl__size_unit_t base,
+ svn_boolean_t long_units,
+ apr_pool_t *result_pool)
+{
+ switch (base)
+ {
+ case SVN_CL__SIZE_UNIT_NONE:
+ case SVN_CL__SIZE_UNIT_XML:
+ *result = apr_psprintf(result_pool, "%" SVN_FILESIZE_T_FMT, size);
+ break;
+
+ case SVN_CL__SIZE_UNIT_BASE_2:
+ *result = get_base2_unit_file_size(size, long_units, result_pool);
+ break;
+
+ case SVN_CL__SIZE_UNIT_BASE_10:
+ *result = get_base10_unit_file_size(size, long_units, result_pool);
+ break;
+
+ default:
+ SVN_ERR_MALFUNCTION();
+ }
+
+ return SVN_NO_ERROR;
+}
diff --git a/subversion/svn/help-cmd.c b/subversion/svn/help-cmd.c
index 3d5375c65a3e..f812784e77da 100644
--- a/subversion/svn/help-cmd.c
+++ b/subversion/svn/help-cmd.c
@@ -179,7 +179,7 @@ svn_cl__help(apr_getopt_t *os,
svn_stringbuf_appendcstr(version_footer, "* KWallet (KDE)\n");
#endif
- return svn_opt_print_help4(os,
+ return svn_opt_print_help5(os,
"svn", /* ### erm, derive somehow? */
opt_state ? opt_state->version : FALSE,
opt_state ? opt_state->quiet : FALSE,
diff --git a/subversion/svn/info-cmd.c b/subversion/svn/info-cmd.c
index e0c0041b468a..44f830f34e5d 100644
--- a/subversion/svn/info-cmd.c
+++ b/subversion/svn/info-cmd.c
@@ -21,6 +21,10 @@
* ====================================================================
*/
+/* We define this here to remove any further warnings about the usage of
+ experimental functions in this file. */
+#define SVN_EXPERIMENTAL
+
/* ==================================================================== */
@@ -45,6 +49,254 @@
/*** Code. ***/
+struct layout_list_baton_t
+{
+ svn_boolean_t checkout;
+ const char *target;
+ const char *target_abspath;
+ svn_boolean_t with_revs;
+ int vs_py_format;
+};
+
+/* Output as 'svn' command-line commands.
+ *
+ * Implements svn_client__layout_func_t
+ */
+static svn_error_t *
+output_svn_command_line(void *layout_baton,
+ const char *local_abspath,
+ const char *repos_root_url,
+ svn_boolean_t not_present,
+ svn_boolean_t url_changed,
+ const char *url,
+ svn_boolean_t revision_changed,
+ svn_revnum_t revision,
+ svn_boolean_t depth_changed,
+ svn_depth_t depth,
+ apr_pool_t *scratch_pool)
+{
+ struct layout_list_baton_t *llb = layout_baton;
+ const char *relpath = svn_dirent_skip_ancestor(llb->target_abspath,
+ local_abspath);
+ const char *cmd;
+ const char *depth_str;
+ const char *url_rev_str;
+
+ depth_str = (depth_changed
+ ? apr_psprintf(scratch_pool, " --set-depth=%s",
+ svn_depth_to_word(depth))
+ : "");
+
+ if (llb->checkout)
+ {
+ cmd = "svn checkout";
+ if (depth != svn_depth_infinity)
+ depth_str = apr_psprintf(scratch_pool,
+ " --depth=%s", svn_depth_to_word(depth));
+ url_rev_str = apr_psprintf(scratch_pool, " %s", url);
+ if (llb->with_revs)
+ url_rev_str = apr_psprintf(scratch_pool, "%s@%ld",
+ url_rev_str, revision);
+ llb->checkout = FALSE;
+ }
+ else if (not_present)
+ {
+ /* Easiest way to create a not present node: update to r0 */
+ cmd = "svn update";
+ url_rev_str = " -r0";
+ }
+ else if (url_changed)
+ {
+ cmd = "svn switch";
+ url_rev_str = apr_psprintf(scratch_pool, " ^/%s",
+ svn_uri_skip_ancestor(repos_root_url,
+ url, scratch_pool));
+ if (llb->with_revs)
+ url_rev_str = apr_psprintf(scratch_pool, "%s@%ld",
+ url_rev_str, revision);
+ }
+ else if (llb->with_revs && revision_changed)
+ {
+ cmd = "svn update";
+ url_rev_str = apr_psprintf(scratch_pool, " -r%ld", revision);
+ }
+ else if (depth_changed)
+ {
+ cmd = "svn update";
+ url_rev_str = "";
+ }
+ else
+ return SVN_NO_ERROR;
+
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ "%s%-23s%-10s %s\n",
+ cmd, depth_str, url_rev_str,
+ svn_dirent_local_style(
+ svn_dirent_join(llb->target, relpath,
+ scratch_pool), scratch_pool)));
+
+ return SVN_NO_ERROR;
+}
+
+/* */
+static const char *
+depth_to_viewspec_py(svn_depth_t depth,
+ apr_pool_t *result_pool)
+{
+ switch (depth)
+ {
+ case svn_depth_infinity:
+ return "/**";
+ case svn_depth_immediates:
+ return "/*";
+ case svn_depth_files:
+ return "/~";
+ case svn_depth_empty:
+ return "";
+ case svn_depth_exclude:
+ return "!";
+ default:
+ break;
+ }
+ return NULL;
+}
+
+/* Output in the format used by 'tools/client-side/viewspec.py'
+ *
+ * Implements svn_client__layout_func_t
+ */
+static svn_error_t *
+output_svn_viewspec_py(void *layout_baton,
+ const char *local_abspath,
+ const char *repos_root_url,
+ svn_boolean_t not_present,
+ svn_boolean_t url_changed,
+ const char *url,
+ svn_boolean_t revision_changed,
+ svn_revnum_t revision,
+ svn_boolean_t depth_changed,
+ svn_depth_t depth,
+ apr_pool_t *scratch_pool)
+{
+ struct layout_list_baton_t *llb = layout_baton;
+ const char *relpath = svn_dirent_skip_ancestor(llb->target_abspath,
+ local_abspath);
+ const char *depth_str;
+ const char *rev_str = "";
+ const char *repos_rel_url = "";
+
+ depth_str = ((depth_changed || llb->checkout)
+ ? depth_to_viewspec_py(depth, scratch_pool)
+ : "");
+ if (! llb->with_revs)
+ revision_changed = FALSE;
+ if (revision_changed)
+ rev_str = apr_psprintf(scratch_pool, "@%ld", revision);
+
+ if (llb->checkout)
+ {
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ "Format: %d\n"
+ "Url: %s\n",
+ llb->vs_py_format, url));
+ if (llb->with_revs)
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ "Revision: %ld\n",
+ revision));
+ SVN_ERR(svn_cmdline_printf(scratch_pool, "\n"));
+ llb->checkout = FALSE;
+
+ if (depth == svn_depth_empty)
+ return SVN_NO_ERROR;
+ if (depth_str[0] == '/')
+ depth_str++;
+ }
+ else if (not_present)
+ {
+ /* Easiest way to create a not present node: update to r0 */
+ if (llb->vs_py_format < 2)
+ return svn_error_createf(SVN_ERR_UNSUPPORTED_FEATURE, NULL,
+ _("svn-viewspec.py format 1 does not support "
+ "the 'not-present' state found at '%s'"),
+ relpath);
+ rev_str = "@0";
+ }
+ else if (url_changed)
+ {
+ if (llb->vs_py_format < 2)
+ return svn_error_createf(SVN_ERR_UNSUPPORTED_FEATURE, NULL,
+ _("svn-viewspec.py format 1 does not support "
+ "the 'switched' state found at '%s'"),
+ relpath);
+ repos_rel_url = svn_uri_skip_ancestor(repos_root_url, url,
+ scratch_pool);
+ repos_rel_url = apr_psprintf(scratch_pool, "^/%s", repos_rel_url);
+ }
+ else if (!(revision_changed || depth_changed))
+ return SVN_NO_ERROR;
+
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ "%s%s %s%s\n",
+ relpath, depth_str, repos_rel_url, rev_str));
+
+ return SVN_NO_ERROR;
+}
+
+/*
+ * Call svn_client__layout_list(), using a receiver function decided
+ * by VIEWSPEC.
+ */
+static svn_error_t *
+cl_layout_list(apr_array_header_t *targets,
+ enum svn_cl__viewspec_t viewspec,
+ void *baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ const char *list_path, *list_abspath;
+ struct layout_list_baton_t llb;
+
+ /* Add "." if user passed 0 arguments */
+ svn_opt_push_implicit_dot_target(targets, scratch_pool);
+
+ if (targets->nelts > 1)
+ return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, 0, NULL);
+
+ list_path = APR_ARRAY_IDX(targets, 0, const char *);
+
+ SVN_ERR(svn_cl__check_target_is_local_path(list_path));
+
+ SVN_ERR(svn_dirent_get_absolute(&list_abspath, list_path,
+ scratch_pool));
+
+ llb.checkout = TRUE;
+ llb.target = list_path;
+ llb.target_abspath = list_abspath;
+ llb.with_revs = TRUE;
+
+ switch (viewspec)
+ {
+ case svn_cl__viewspec_classic:
+ /* svn-viewspec.py format */
+ llb.vs_py_format = 2;
+
+ SVN_ERR(svn_client__layout_list(list_abspath,
+ output_svn_viewspec_py, &llb,
+ ctx, scratch_pool));
+ break;
+ case svn_cl__viewspec_svn11:
+ /* svn command-line format */
+ SVN_ERR(svn_client__layout_list(list_abspath,
+ output_svn_command_line, &llb,
+ ctx, scratch_pool));
+ break;
+ default:
+ SVN_ERR_MALFUNCTION();
+ }
+
+ return SVN_NO_ERROR;
+}
+
static svn_error_t *
svn_cl__info_print_time(apr_time_t atime,
const char *desc,
@@ -100,6 +352,7 @@ typedef enum
info_item_relative_url,
info_item_repos_root_url,
info_item_repos_uuid,
+ info_item_repos_size,
/* Working copy revision or repository HEAD revision */
info_item_revision,
@@ -110,7 +363,10 @@ typedef enum
info_item_last_changed_author,
/* Working copy information */
- info_item_wc_root
+ info_item_wc_root,
+ info_item_schedule,
+ info_item_depth,
+ info_item_changelist
} info_item_t;
/* Mapping between option keywords and info_item_t. */
@@ -128,12 +384,16 @@ static const info_item_map_t info_item_map[] =
{ MAKE_STRING("relative-url"), info_item_relative_url },
{ MAKE_STRING("repos-root-url"), info_item_repos_root_url },
{ MAKE_STRING("repos-uuid"), info_item_repos_uuid },
+ { MAKE_STRING("repos-size"), info_item_repos_size },
{ MAKE_STRING("revision"), info_item_revision },
{ MAKE_STRING("last-changed-revision"),
info_item_last_changed_rev },
{ MAKE_STRING("last-changed-date"), info_item_last_changed_date },
{ MAKE_STRING("last-changed-author"), info_item_last_changed_author },
- { MAKE_STRING("wc-root"), info_item_wc_root }
+ { MAKE_STRING("wc-root"), info_item_wc_root },
+ { MAKE_STRING("schedule"), info_item_schedule },
+ { MAKE_STRING("depth"), info_item_depth },
+ { MAKE_STRING("changelist"), info_item_changelist },
};
#undef MAKE_STRING
@@ -163,6 +423,9 @@ typedef struct print_info_baton_t
/* Did we already print a line of output? */
svn_boolean_t start_new_line;
+ /* Format for file sizes */
+ svn_cl__size_unit_t file_size_unit;
+
/* The client context. */
svn_client_ctx_t *ctx;
} print_info_baton_t;
@@ -251,21 +514,40 @@ print_info_xml(void *baton,
apr_pool_t *pool)
{
svn_stringbuf_t *sb = svn_stringbuf_create_empty(pool);
- const char *rev_str;
print_info_baton_t *const receiver_baton = baton;
- if (SVN_IS_VALID_REVNUM(info->rev))
- rev_str = apr_psprintf(pool, "%ld", info->rev);
- else
- rev_str = apr_pstrdup(pool, _("Resource is not under version control."));
+ const char *const path_str =
+ svn_cl__local_style_skip_ancestor(
+ receiver_baton->path_prefix, target, pool);
+ const char *const kind_str = svn_cl__node_kind_str_xml(info->kind);
+ const char *const rev_str =
+ (SVN_IS_VALID_REVNUM(info->rev)
+ ? apr_psprintf(pool, "%ld", info->rev)
+ : apr_pstrdup(pool, _("Resource is not under version control.")));
/* "<entry ...>" */
- svn_xml_make_open_tag(&sb, pool, svn_xml_normal, "entry",
- "path", svn_cl__local_style_skip_ancestor(
- receiver_baton->path_prefix, target, pool),
- "kind", svn_cl__node_kind_str_xml(info->kind),
- "revision", rev_str,
- SVN_VA_NULL);
+ if (info->kind == svn_node_file && info->size != SVN_INVALID_FILESIZE)
+ {
+ const char *size_str;
+ SVN_ERR(svn_cl__format_file_size(&size_str, info->size,
+ SVN_CL__SIZE_UNIT_XML,
+ FALSE, pool));
+
+ svn_xml_make_open_tag(&sb, pool, svn_xml_normal, "entry",
+ "path", path_str,
+ "kind", kind_str,
+ "revision", rev_str,
+ "size", size_str,
+ SVN_VA_NULL);
+ }
+ else
+ {
+ svn_xml_make_open_tag(&sb, pool, svn_xml_normal, "entry",
+ "path", path_str,
+ "kind", kind_str,
+ "revision", rev_str,
+ SVN_VA_NULL);
+ }
/* "<url> xx </url>" */
svn_cl__xml_tagged_cdata(&sb, pool, "url", info->URL);
@@ -487,6 +769,16 @@ print_info(void *baton,
break;
}
+ if (info->kind == svn_node_file && info->size != SVN_INVALID_FILESIZE)
+ {
+ const char *sizestr;
+ SVN_ERR(svn_cl__format_file_size(&sizestr, info->size,
+ receiver_baton->file_size_unit,
+ TRUE, pool));
+ SVN_ERR(svn_cmdline_printf(pool, _("Size in Repository: %s\n"),
+ sizestr));
+ }
+
if (info->wc_info)
{
switch (info->wc_info->schedule)
@@ -827,11 +1119,12 @@ print_info_item(void *baton,
apr_pool_t *pool)
{
print_info_baton_t *const receiver_baton = baton;
+ const char *const actual_target_path =
+ (!receiver_baton->target_is_path ? info->URL
+ : svn_cl__local_style_skip_ancestor(
+ receiver_baton->path_prefix, target, pool));
const char *const target_path =
- (!receiver_baton->multiple_targets ? NULL
- : (!receiver_baton->target_is_path ? info->URL
- : svn_cl__local_style_skip_ancestor(
- receiver_baton->path_prefix, target, pool)));
+ (receiver_baton->multiple_targets ? actual_target_path : NULL);
if (receiver_baton->start_new_line)
SVN_ERR(svn_cmdline_fputs("\n", stdout, pool));
@@ -860,6 +1153,36 @@ print_info_item(void *baton,
SVN_ERR(print_info_item_string(info->repos_UUID, target_path, pool));
break;
+ case info_item_repos_size:
+ if (info->kind != svn_node_file)
+ {
+ receiver_baton->start_new_line = FALSE;
+ return SVN_NO_ERROR;
+ }
+
+ if (info->size == SVN_INVALID_FILESIZE)
+ {
+ if (receiver_baton->multiple_targets)
+ {
+ receiver_baton->start_new_line = FALSE;
+ return SVN_NO_ERROR;
+ }
+
+ return svn_error_createf(
+ SVN_ERR_UNSUPPORTED_FEATURE, NULL,
+ _("can't show in-repository size of working copy file '%s'"),
+ actual_target_path);
+ }
+
+ {
+ const char *sizestr;
+ SVN_ERR(svn_cl__format_file_size(&sizestr, info->size,
+ receiver_baton->file_size_unit,
+ TRUE, pool));
+ SVN_ERR(print_info_item_string(sizestr, target_path, pool));
+ }
+ break;
+
case info_item_revision:
SVN_ERR(print_info_item_revision(info->rev, target_path, pool));
break;
@@ -888,6 +1211,27 @@ print_info_item(void *baton,
target_path, pool));
break;
+ case info_item_schedule:
+ SVN_ERR(print_info_item_string(
+ (info->wc_info
+ ? schedule_str(info->wc_info->schedule) : NULL),
+ target_path, pool));
+ break;
+
+ case info_item_depth:
+ SVN_ERR(print_info_item_string(
+ ((info->wc_info && info->kind == svn_node_dir)
+ ? svn_depth_to_word(info->wc_info->depth) : NULL),
+ target_path, pool));
+ break;
+
+ case info_item_changelist:
+ SVN_ERR(print_info_item_string(
+ ((info->wc_info && info->wc_info->changelist)
+ ? info->wc_info->changelist : NULL),
+ target_path, pool));
+ break;
+
default:
SVN_ERR_MALFUNCTION();
}
@@ -918,10 +1262,17 @@ svn_cl__info(apr_getopt_t *os,
opt_state->targets,
ctx, FALSE, pool));
+ if (opt_state->viewspec)
+ {
+ SVN_ERR(cl_layout_list(targets, opt_state->viewspec, baton, ctx, pool));
+ return SVN_NO_ERROR;
+ }
+
/* Add "." if user passed 0 arguments. */
svn_opt_push_implicit_dot_target(targets, pool);
receiver_baton.ctx = ctx;
+ receiver_baton.file_size_unit = opt_state->file_size_unit;
if (opt_state->xml)
{
@@ -935,6 +1286,10 @@ svn_cl__info(apr_getopt_t *os,
return svn_error_create(
SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
_("--no-newline is not valid in --xml mode"));
+ if (opt_state->file_size_unit != SVN_CL__SIZE_UNIT_NONE)
+ return svn_error_create(
+ SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
+ _("--human-readable is not valid in --xml mode"));
/* If output is not incremental, output the XML header and wrap
everything in a top-level element. This makes the output in
diff --git a/subversion/svn/list-cmd.c b/subversion/svn/list-cmd.c
index da18252243d9..121b08f94b6f 100644
--- a/subversion/svn/list-cmd.c
+++ b/subversion/svn/list-cmd.c
@@ -40,8 +40,13 @@
/* Baton used when printing directory entries. */
struct print_baton {
- svn_boolean_t verbose;
svn_client_ctx_t *ctx;
+ svn_boolean_t verbose;
+ svn_cl__size_unit_t file_size_unit;
+
+ /* Keep track of the width of the author field. */
+ int author_width;
+ int max_author_width;
/* To keep track of last seen external information. */
const char *last_external_parent_url;
@@ -49,12 +54,23 @@ struct print_baton {
svn_boolean_t in_external;
};
+/* Starting and maximum width of the author field */
+static const int initial_author_width = 8;
+static const int initial_human_readable_author_width = 14;
+static const int maximum_author_width = 16;
+static const int maximum_human_readable_author_width = 22;
+
+/* Width of the size field */
+static const int normal_size_width = 10;
+static const int human_readable_size_width = 4;
+
/* Field flags required for this function */
static const apr_uint32_t print_dirent_fields = SVN_DIRENT_KIND;
static const apr_uint32_t print_dirent_fields_verbose = (
SVN_DIRENT_KIND | SVN_DIRENT_SIZE | SVN_DIRENT_TIME |
SVN_DIRENT_CREATED_REV | SVN_DIRENT_LAST_AUTHOR);
+
/* This implements the svn_client_list_func2_t API, printing a single
directory entry in text format. */
static svn_error_t *
@@ -121,7 +137,11 @@ print_dirent(void *baton,
apr_status_t apr_err;
apr_size_t size;
char timestr[20];
- const char *sizestr, *utf8_timestr;
+ const int sizewidth = (pb->file_size_unit == SVN_CL__SIZE_UNIT_NONE
+ ? normal_size_width
+ : human_readable_size_width);
+ const char *sizestr = "";
+ const char *utf8_timestr;
/* svn_time_to_human_cstring gives us something *way* too long
to use for this, so we have to roll our own. We include
@@ -146,15 +166,33 @@ print_dirent(void *baton,
/* we need it in UTF-8. */
SVN_ERR(svn_utf_cstring_to_utf8(&utf8_timestr, timestr, scratch_pool));
- sizestr = apr_psprintf(scratch_pool, "%" SVN_FILESIZE_T_FMT,
- dirent->size);
+ /* We may have to adjust the width of th 'author' field. */
+ if (dirent->last_author)
+ {
+ const int author_width = (int)strlen(dirent->last_author);
+ if (author_width > pb->author_width)
+ {
+ if (author_width < pb->max_author_width)
+ pb->author_width = author_width;
+ else
+ pb->author_width = pb->max_author_width;
+ }
+ }
+
+ if (dirent->kind == svn_node_file)
+ {
+ SVN_ERR(svn_cl__format_file_size(&sizestr, dirent->size,
+ pb->file_size_unit,
+ FALSE, scratch_pool));
+ }
return svn_cmdline_printf
- (scratch_pool, "%7ld %-8.8s %c %10s %12s %s%s\n",
+ (scratch_pool, "%7ld %-*.*s %c %*s %12s %s%s\n",
dirent->created_rev,
+ pb->author_width, pb->author_width,
dirent->last_author ? dirent->last_author : " ? ",
lock ? 'O' : ' ',
- (dirent->kind == svn_node_file) ? sizestr : "",
+ sizewidth, sizestr,
utf8_timestr,
entryname,
(dirent->kind == svn_node_dir) ? "/" : "");
@@ -238,9 +276,11 @@ print_dirent_xml(void *baton,
if (dirent->kind == svn_node_file)
{
- svn_cl__xml_tagged_cdata
- (&sb, scratch_pool, "size",
- apr_psprintf(scratch_pool, "%" SVN_FILESIZE_T_FMT, dirent->size));
+ const char *sizestr;
+ SVN_ERR(svn_cl__format_file_size(&sizestr, dirent->size,
+ SVN_CL__SIZE_UNIT_XML,
+ FALSE, scratch_pool));
+ svn_cl__xml_tagged_cdata(&sb, scratch_pool, "size", sizestr);
}
svn_xml_make_open_tag(&sb, scratch_pool, svn_xml_normal, "commit",
@@ -303,11 +343,17 @@ svn_cl__list(apr_getopt_t *os,
if (opt_state->xml)
{
- /* The XML output contains all the information, so "--verbose"
- does not apply. */
+ /* The XML output contains all the information, so "--verbose" does
+ not apply, and using "--human-readable" with machine-readable
+ output does not make sense. */
if (opt_state->verbose)
- return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
- _("'verbose' option invalid in XML mode"));
+ return svn_error_create(
+ SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
+ _("--verbose is not valid in --xml mode"));
+ if (opt_state->file_size_unit != SVN_CL__SIZE_UNIT_NONE)
+ return svn_error_create(
+ SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
+ _("--human-readable is not valid in --xml mode"));
/* If output is not incremental, output the XML header and wrap
everything in a top-level element. This makes the output in
@@ -318,9 +364,9 @@ svn_cl__list(apr_getopt_t *os,
else
{
if (opt_state->incremental)
- return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
- _("'incremental' option only valid in XML "
- "mode"));
+ return svn_error_create(
+ SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
+ _("--incremental is only valid in --xml mode"));
}
if (opt_state->xml)
@@ -332,6 +378,17 @@ svn_cl__list(apr_getopt_t *os,
pb.ctx = ctx;
pb.verbose = opt_state->verbose;
+ pb.file_size_unit = opt_state->file_size_unit;
+ if (pb.file_size_unit == SVN_CL__SIZE_UNIT_NONE)
+ {
+ pb.author_width = initial_author_width;
+ pb.max_author_width = maximum_author_width;
+ }
+ else
+ {
+ pb.author_width = initial_human_readable_author_width;
+ pb.max_author_width = maximum_human_readable_author_width;
+ }
if (opt_state->depth == svn_depth_unknown)
opt_state->depth = svn_depth_immediates;
diff --git a/subversion/svn/log-cmd.c b/subversion/svn/log-cmd.c
index 57f841506914..87c372846f17 100644
--- a/subversion/svn/log-cmd.c
+++ b/subversion/svn/log-cmd.c
@@ -88,7 +88,7 @@ display_diff(const svn_log_entry_t *log_entry,
end_revision.value.number = log_entry->revision;
SVN_ERR(svn_stream_puts(outstream, "\n"));
- SVN_ERR(svn_client_diff_peg6(diff_options,
+ SVN_ERR(svn_client_diff_peg7(diff_options,
target_path_or_url,
target_peg_revision,
&start_revision, &end_revision,
@@ -102,6 +102,7 @@ display_diff(const svn_log_entry_t *log_entry,
FALSE /* ignore prop diff */,
FALSE /* properties only */,
FALSE /* use git diff format */,
+ TRUE /* pretty_print_mergeinfo */,
svn_cmdline_output_encoding(pool),
outstream,
errstream,
@@ -333,7 +334,7 @@ svn_cl__log_entry_receiver(void *baton,
return SVN_NO_ERROR;
}
- /* ### See http://subversion.tigris.org/issues/show_bug.cgi?id=807
+ /* ### See https://issues.apache.org/jira/browse/SVN-807
for more on the fallback fuzzy conversions below. */
if (author == NULL)
@@ -732,10 +733,6 @@ svn_cl__log(apr_getopt_t *os,
"XML mode"));
}
- if (opt_state->quiet && opt_state->show_diff)
- return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
- _("'quiet' and 'diff' options are "
- "mutually exclusive"));
if (opt_state->diff.diff_cmd && (! opt_state->show_diff))
return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
_("'diff-cmd' option requires 'diff' "
diff --git a/subversion/svn/merge-cmd.c b/subversion/svn/merge-cmd.c
index f5c19198a5b2..140a39fad73f 100644
--- a/subversion/svn/merge-cmd.c
+++ b/subversion/svn/merge-cmd.c
@@ -545,27 +545,31 @@ retry:
"fix invalid mergeinfo in target with 'svn propset'"));
}
- /* Run the interactive resolver if conflicts were raised. */
- SVN_ERR(svn_cl__conflict_stats_get_paths(&conflicted_paths, conflict_stats,
- pool, pool));
- if (conflicted_paths)
+ if (! opt_state->dry_run)
{
- SVN_ERR(svn_cl__walk_conflicts(conflicted_paths, conflict_stats,
- opt_state, ctx, pool));
- if (merge_err &&
- svn_error_root_cause(merge_err)->apr_err == SVN_ERR_WC_FOUND_CONFLICT)
+ /* Run the interactive resolver if conflicts were raised. */
+ SVN_ERR(svn_cl__conflict_stats_get_paths(&conflicted_paths,
+ conflict_stats, pool, pool));
+ if (conflicted_paths)
{
- svn_error_t *err;
-
- /* Check if all conflicts were resolved just now. */
- err = svn_cl__conflict_stats_get_paths(&conflicted_paths,
- conflict_stats, pool, pool);
- if (err)
- merge_err = svn_error_compose_create(merge_err, err);
- else if (conflicted_paths == NULL)
+ SVN_ERR(svn_cl__walk_conflicts(conflicted_paths, conflict_stats,
+ opt_state, ctx, pool));
+ if (merge_err && svn_error_root_cause(merge_err)->apr_err ==
+ SVN_ERR_WC_FOUND_CONFLICT)
{
- svn_error_clear(merge_err);
- goto retry; /* ### conflicts resolved; continue merging */
+ svn_error_t *err;
+
+ /* Check if all conflicts were resolved just now. */
+ err = svn_cl__conflict_stats_get_paths(&conflicted_paths,
+ conflict_stats,
+ pool, pool);
+ if (err)
+ merge_err = svn_error_compose_create(merge_err, err);
+ else if (conflicted_paths == NULL)
+ {
+ svn_error_clear(merge_err);
+ goto retry; /* ### conflicts resolved; continue merging */
+ }
}
}
}
diff --git a/subversion/svn/notify.c b/subversion/svn/notify.c
index c15301e32b8b..ea0cc15945b1 100644
--- a/subversion/svn/notify.c
+++ b/subversion/svn/notify.c
@@ -210,7 +210,7 @@ svn_cl__conflict_stats_get_paths(apr_array_header_t **conflicted_paths,
}
}
- svn_hash_keys(conflicted_paths, all_conflicts, result_pool);
+ SVN_ERR(svn_hash_keys(conflicted_paths, all_conflicts, result_pool));
svn_sort__array(*conflicted_paths, svn_sort_compare_paths);
return SVN_NO_ERROR;
diff --git a/subversion/svn/propset-cmd.c b/subversion/svn/propset-cmd.c
index 05087069005a..e7a818386be7 100644
--- a/subversion/svn/propset-cmd.c
+++ b/subversion/svn/propset-cmd.c
@@ -151,7 +151,7 @@ svn_cl__propset(apr_getopt_t *os,
* must always be explicitly provided when setting a versioned
* property. See
*
- * http://subversion.tigris.org/issues/show_bug.cgi?id=924
+ * https://issues.apache.org/jira/browse/SVN-924
*
* for more details.
*/
diff --git a/subversion/svn/resolve-cmd.c b/subversion/svn/resolve-cmd.c
index bbf9ff548ef5..efd176dc7cdd 100644
--- a/subversion/svn/resolve-cmd.c
+++ b/subversion/svn/resolve-cmd.c
@@ -109,7 +109,7 @@ svn_cl__walk_conflicts(apr_array_header_t *targets,
svn_client_conflict_t *conflict;
svn_pool_clear(iterpool);
-
+
SVN_ERR(svn_cl__check_cancel(ctx->cancel_baton));
SVN_ERR(svn_dirent_get_absolute(&local_abspath, target, iterpool));
diff --git a/subversion/svn/revert-cmd.c b/subversion/svn/revert-cmd.c
index 74d7ff185635..2ff35560e500 100644
--- a/subversion/svn/revert-cmd.c
+++ b/subversion/svn/revert-cmd.c
@@ -67,10 +67,11 @@ svn_cl__revert(apr_getopt_t *os,
SVN_ERR(svn_cl__check_targets_are_local_paths(targets));
- err = svn_client_revert3(targets, opt_state->depth,
+ err = svn_client_revert4(targets, opt_state->depth,
opt_state->changelists,
FALSE /* clear_changelists */,
FALSE /* metadata_only */,
+ !opt_state->remove_added /*added_keep_local*/,
ctx, scratch_pool);
if (err
&& (err->apr_err == SVN_ERR_WC_INVALID_OPERATION_DEPTH)
diff --git a/subversion/svn/shelf-cmd.c b/subversion/svn/shelf-cmd.c
new file mode 100644
index 000000000000..db0675b68077
--- /dev/null
+++ b/subversion/svn/shelf-cmd.c
@@ -0,0 +1,1405 @@
+/*
+ * shelf-cmd.c -- Shelving commands.
+ *
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ */
+
+/* We define this here to remove any further warnings about the usage of
+ experimental functions in this file. */
+#define SVN_EXPERIMENTAL
+
+#include "svn_client.h"
+#include "svn_error_codes.h"
+#include "svn_error.h"
+#include "svn_hash.h"
+#include "svn_path.h"
+#include "svn_props.h"
+#include "svn_pools.h"
+#include "svn_utf.h"
+
+#include "shelf-cmd.h"
+#include "cl.h"
+
+#include "svn_private_config.h"
+#include "private/svn_sorts_private.h"
+#include "private/svn_client_private.h"
+#include "private/svn_client_shelf.h"
+
+
+/* Open the newest version of SHELF; error if no versions found. */
+static svn_error_t *
+get_newest_version_existing(svn_client__shelf_version_t **shelf_version_p,
+ svn_client__shelf_t *shelf,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ SVN_ERR(svn_client__shelf_get_newest_version(shelf_version_p, shelf,
+ result_pool, scratch_pool));
+ if (!*shelf_version_p)
+ {
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("Shelf '%s': no versions found"),
+ shelf->name);
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Fetch the next argument. */
+static svn_error_t *
+get_next_argument(const char **arg,
+ apr_getopt_t *os,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ apr_array_header_t *args;
+
+ SVN_ERR(svn_opt_parse_num_args(&args, os, 1, scratch_pool));
+ SVN_ERR(svn_utf_cstring_to_utf8(arg,
+ APR_ARRAY_IDX(args, 0, const char *),
+ result_pool));
+ return SVN_NO_ERROR;
+}
+
+/* Parse the remaining arguments as paths relative to a WC.
+ *
+ * TARGETS are relative to current working directory.
+ *
+ * Set *targets_by_wcroot to a hash mapping (char *)wcroot_abspath to
+ * (apr_array_header_t *)array of relpaths relative to that WC root.
+ */
+static svn_error_t *
+targets_relative_to_wcs(apr_hash_t **targets_by_wcroot_p,
+ apr_array_header_t *targets,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ apr_hash_t *targets_by_wcroot = apr_hash_make(result_pool);
+ int i;
+
+ /* Make each target relative to the WC root. */
+ for (i = 0; i < targets->nelts; i++)
+ {
+ const char *target = APR_ARRAY_IDX(targets, i, const char *);
+ const char *wcroot_abspath;
+ apr_array_header_t *paths;
+
+ SVN_ERR(svn_dirent_get_absolute(&target, target, result_pool));
+ SVN_ERR(svn_client_get_wc_root(&wcroot_abspath, target,
+ ctx, result_pool, scratch_pool));
+ paths = svn_hash_gets(targets_by_wcroot, wcroot_abspath);
+ if (! paths)
+ {
+ paths = apr_array_make(result_pool, 0, sizeof(char *));
+ svn_hash_sets(targets_by_wcroot, wcroot_abspath, paths);
+ }
+ target = svn_dirent_skip_ancestor(wcroot_abspath, target);
+
+ if (target)
+ APR_ARRAY_PUSH(paths, const char *) = target;
+ }
+ *targets_by_wcroot_p = targets_by_wcroot;
+ return SVN_NO_ERROR;
+}
+
+/* Return targets relative to a WC. Error if they refer to more than one WC. */
+static svn_error_t *
+targets_relative_to_a_wc(const char **wc_root_abspath_p,
+ apr_array_header_t **paths_p,
+ apr_getopt_t *os,
+ const apr_array_header_t *known_targets,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ apr_array_header_t *targets;
+ apr_hash_t *targets_by_wcroot;
+ apr_hash_index_t *hi;
+
+ SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
+ known_targets,
+ ctx, FALSE, result_pool));
+ svn_opt_push_implicit_dot_target(targets, result_pool);
+
+ SVN_ERR(targets_relative_to_wcs(&targets_by_wcroot, targets,
+ ctx, result_pool, scratch_pool));
+ if (apr_hash_count(targets_by_wcroot) != 1)
+ return svn_error_create(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("All targets must be in the same WC"));
+
+ hi = apr_hash_first(scratch_pool, targets_by_wcroot);
+ *wc_root_abspath_p = apr_hash_this_key(hi);
+ *paths_p = apr_hash_this_val(hi);
+ return SVN_NO_ERROR;
+}
+
+/* Return a human-friendly description of DURATION.
+ */
+static char *
+friendly_age_str(apr_time_t mtime,
+ apr_time_t time_now,
+ apr_pool_t *result_pool)
+{
+ int minutes = (int)((time_now - mtime) / 1000000 / 60);
+ char *s;
+
+ if (minutes >= 60 * 24)
+ s = apr_psprintf(result_pool,
+ Q_("%d day ago", "%d days ago",
+ minutes / 60 / 24),
+ minutes / 60 / 24);
+ else if (minutes >= 60)
+ s = apr_psprintf(result_pool,
+ Q_("%d hour ago", "%d hours ago",
+ minutes / 60),
+ minutes / 60);
+ else
+ s = apr_psprintf(result_pool,
+ Q_("%d minute ago", "%d minutes ago",
+ minutes),
+ minutes);
+ return s;
+}
+
+/* A comparison function for svn_sort__hash(), comparing the mtime of two
+ svn_client_shelf_info_t's. */
+static int
+compare_shelf_infos_by_mtime(const svn_sort__item_t *a,
+ const svn_sort__item_t *b)
+{
+ svn_client__shelf_info_t *a_val = a->value;
+ svn_client__shelf_info_t *b_val = b->value;
+
+ return (a_val->mtime < b_val->mtime)
+ ? -1 : (a_val->mtime > b_val->mtime) ? 1 : 0;
+}
+
+/* Return a list of shelves sorted by their mtime, oldest first.
+ */
+static svn_error_t *
+list_sorted_by_date(apr_array_header_t **list,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ apr_hash_t *shelf_infos;
+
+ SVN_ERR(svn_client__shelf_list(&shelf_infos, local_abspath,
+ ctx, scratch_pool, scratch_pool));
+ *list = svn_sort__hash(shelf_infos,
+ compare_shelf_infos_by_mtime,
+ scratch_pool);
+ return SVN_NO_ERROR;
+}
+
+/* */
+static svn_error_t *
+stats(svn_client__shelf_t *shelf,
+ int version,
+ svn_client__shelf_version_t *shelf_version,
+ apr_time_t time_now,
+ svn_boolean_t with_logmsg,
+ apr_pool_t *scratch_pool)
+{
+ char *age_str;
+ char *version_str;
+ apr_hash_t *paths;
+ const char *paths_str = "";
+
+ if (! shelf_version)
+ {
+ return SVN_NO_ERROR;
+ }
+
+ age_str = friendly_age_str(shelf_version->mtime, time_now, scratch_pool);
+ if (version == shelf->max_version)
+ version_str = apr_psprintf(scratch_pool,
+ _("version %d"), version);
+ else
+ version_str = apr_psprintf(scratch_pool,
+ Q_("version %d of %d", "version %d of %d",
+ shelf->max_version),
+ version, shelf->max_version);
+ SVN_ERR(svn_client__shelf_paths_changed(&paths, shelf_version,
+ scratch_pool, scratch_pool));
+ paths_str = apr_psprintf(scratch_pool,
+ Q_("%d path changed", "%d paths changed",
+ apr_hash_count(paths)),
+ apr_hash_count(paths));
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ "%-30s %s, %s, %s\n",
+ shelf->name, version_str, age_str, paths_str));
+
+ if (with_logmsg)
+ {
+ char *log_message;
+
+ SVN_ERR(svn_client__shelf_get_log_message(&log_message, shelf,
+ scratch_pool));
+ if (log_message)
+ {
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ _(" %.50s\n"),
+ log_message));
+ }
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Display a list of shelves */
+static svn_error_t *
+shelves_list(const char *local_abspath,
+ svn_boolean_t quiet,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ apr_time_t time_now = apr_time_now();
+ apr_array_header_t *list;
+ int i;
+
+ SVN_ERR(list_sorted_by_date(&list,
+ local_abspath, ctx, scratch_pool));
+
+ for (i = 0; i < list->nelts; i++)
+ {
+ const svn_sort__item_t *item = &APR_ARRAY_IDX(list, i, svn_sort__item_t);
+ const char *name = item->key;
+ svn_client__shelf_t *shelf;
+ svn_client__shelf_version_t *shelf_version;
+
+ SVN_ERR(svn_client__shelf_open_existing(&shelf, name, local_abspath,
+ ctx, scratch_pool));
+ SVN_ERR(svn_client__shelf_get_newest_version(&shelf_version, shelf,
+ scratch_pool, scratch_pool));
+ if (quiet)
+ SVN_ERR(svn_cmdline_printf(scratch_pool, "%s\n", shelf->name));
+ else if (!shelf_version)
+ SVN_ERR(svn_cmdline_printf(scratch_pool, "%-30s no versions\n",
+ shelf->name));
+ else
+ SVN_ERR(stats(shelf, shelf->max_version, shelf_version, time_now,
+ TRUE /*with_logmsg*/, scratch_pool));
+ SVN_ERR(svn_client__shelf_close(shelf, scratch_pool));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Print info about each checkpoint of the shelf named NAME.
+ */
+static svn_error_t *
+shelf_log(const char *name,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ apr_time_t time_now = apr_time_now();
+ svn_client__shelf_t *shelf;
+ apr_array_header_t *versions;
+ int i;
+
+ SVN_ERR(svn_client__shelf_open_existing(&shelf, name, local_abspath,
+ ctx, scratch_pool));
+ SVN_ERR(svn_client__shelf_get_all_versions(&versions, shelf,
+ scratch_pool, scratch_pool));
+ for (i = 0; i < versions->nelts; i++)
+ {
+ svn_client__shelf_version_t *shelf_version
+ = APR_ARRAY_IDX(versions, i, void *);
+
+ SVN_ERR(stats(shelf, i + 1, shelf_version, time_now,
+ FALSE /*with_logmsg*/, scratch_pool));
+ }
+
+ SVN_ERR(svn_client__shelf_close(shelf, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* Find the name of the youngest shelf.
+ */
+static svn_error_t *
+name_of_youngest(const char **name_p,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ apr_array_header_t *list;
+ const svn_sort__item_t *youngest_item;
+
+ SVN_ERR(list_sorted_by_date(&list,
+ local_abspath, ctx, scratch_pool));
+ if (list->nelts == 0)
+ return svn_error_create(SVN_ERR_CL_INSUFFICIENT_ARGS, NULL,
+ _("No shelves found"));
+
+ youngest_item = &APR_ARRAY_IDX(list, list->nelts - 1, svn_sort__item_t);
+ *name_p = apr_pstrdup(result_pool, youngest_item->key);
+ return SVN_NO_ERROR;
+}
+
+struct status_baton
+{
+ /* These fields correspond to the ones in the
+ svn_cl__print_status() interface. */
+ const char *target_abspath;
+ const char *target_path;
+
+ svn_boolean_t quiet; /* don't display statuses while shelving them */
+ int num_paths_shelved;
+ int num_paths_not_shelved;
+ svn_client_ctx_t *ctx;
+};
+
+/* A status callback function for printing STATUS for PATH. */
+static svn_error_t *
+print_status(void *baton,
+ const char *path,
+ const svn_client_status_t *status,
+ apr_pool_t *scratch_pool)
+{
+ struct status_baton *sb = baton;
+ unsigned int conflicts;
+
+ return svn_cl__print_status(sb->target_abspath, sb->target_path,
+ path, status,
+ TRUE /*suppress_externals_placeholders*/,
+ FALSE /*detailed*/,
+ FALSE /*show_last_committed*/,
+ TRUE /*skip_unrecognized*/,
+ FALSE /*repos_locks*/,
+ &conflicts, &conflicts, &conflicts,
+ sb->ctx,
+ scratch_pool);
+}
+
+/* A callback function for shelved paths. */
+static svn_error_t *
+was_shelved(void *baton,
+ const char *path,
+ const svn_client_status_t *status,
+ apr_pool_t *scratch_pool)
+{
+ struct status_baton *sb = baton;
+
+ if (!sb->quiet)
+ {
+ SVN_ERR(print_status(baton, path, status, scratch_pool));
+ }
+
+ ++sb->num_paths_shelved;
+ return SVN_NO_ERROR;
+}
+
+/* A callback function for not-shelved paths. */
+static svn_error_t *
+was_not_shelved(void *baton,
+ const char *path,
+ const svn_client_status_t *status,
+ apr_pool_t *scratch_pool)
+{
+ struct status_baton *sb = baton;
+
+ SVN_ERR(print_status(baton, path, status, scratch_pool));
+ SVN_ERR(svn_cmdline_printf(scratch_pool, " > not shelved\n"));
+ ++sb->num_paths_not_shelved;
+ return SVN_NO_ERROR;
+}
+
+/** Shelve/save a new version of changes.
+ *
+ * Shelve in shelf @a name the local modifications found by @a paths,
+ * @a depth, @a changelists. Revert the shelved changes from the WC
+ * unless @a keep_local is true.
+ *
+ * If no local modifications are found, throw an error.
+ *
+ * If @a dry_run is true, don't actually do it.
+ *
+ * Report in @a *new_version_p the new version number (or, with dry run,
+ * what it would be).
+ */
+static svn_error_t *
+shelve(int *new_version_p,
+ const char *name,
+ const apr_array_header_t *paths,
+ svn_depth_t depth,
+ const apr_array_header_t *changelists,
+ apr_hash_t *revprop_table,
+ svn_boolean_t keep_local,
+ svn_boolean_t dry_run,
+ svn_boolean_t quiet,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ svn_client__shelf_t *shelf;
+ svn_client__shelf_version_t *previous_version;
+ svn_client__shelf_version_t *new_version;
+ struct status_baton sb;
+
+ SVN_ERR(svn_client__shelf_open_or_create(&shelf,
+ name, local_abspath,
+ ctx, scratch_pool));
+ SVN_ERR(svn_client__shelf_get_newest_version(&previous_version, shelf,
+ scratch_pool, scratch_pool));
+
+ if (! quiet)
+ {
+ SVN_ERR(svn_cmdline_printf(scratch_pool, keep_local
+ ? _("--- Save a new version of '%s' in WC root '%s'\n")
+ : _("--- Shelve '%s' in WC root '%s'\n"),
+ shelf->name, shelf->wc_root_abspath));
+ SVN_ERR(stats(shelf, shelf->max_version, previous_version, apr_time_now(),
+ TRUE /*with_logmsg*/, scratch_pool));
+ }
+
+ sb.target_abspath = shelf->wc_root_abspath;
+ sb.target_path = "";
+ sb.quiet = quiet;
+ sb.num_paths_shelved = 0;
+ sb.num_paths_not_shelved = 0;
+ sb.ctx = ctx;
+
+ if (! quiet)
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ keep_local ? _("--- Saving...\n")
+ : _("--- Shelving...\n")));
+ SVN_ERR(svn_client__shelf_save_new_version3(&new_version, shelf,
+ paths, depth, changelists,
+ was_shelved, &sb,
+ was_not_shelved, &sb,
+ scratch_pool));
+ if (sb.num_paths_not_shelved > 0)
+ {
+ SVN_ERR(svn_client__shelf_delete_newer_versions(shelf, previous_version,
+ scratch_pool));
+ SVN_ERR(svn_client__shelf_close(shelf, scratch_pool));
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ Q_("%d path could not be shelved",
+ "%d paths could not be shelved",
+ sb.num_paths_not_shelved),
+ sb.num_paths_not_shelved);
+ }
+ if (sb.num_paths_shelved == 0
+ || ! new_version)
+ {
+ SVN_ERR(svn_client__shelf_close(shelf, scratch_pool));
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ keep_local ? _("No local modifications could be saved")
+ : _("No local modifications could be shelved"));
+ }
+
+ /* Un-apply the changes, if required. */
+ if (!keep_local)
+ {
+ SVN_ERR(svn_client__shelf_unapply(new_version,
+ dry_run, scratch_pool));
+ }
+
+ /* Fetch the log message and any other revprops */
+ if (ctx->log_msg_func3)
+ {
+ const char *tmp_file;
+ apr_array_header_t *commit_items
+ = apr_array_make(scratch_pool, 1, sizeof(void *));
+ const char *message = "";
+
+ SVN_ERR(ctx->log_msg_func3(&message, &tmp_file, commit_items,
+ ctx->log_msg_baton3, scratch_pool));
+ /* Abort the shelving if the log message callback requested so. */
+ if (! message)
+ return SVN_NO_ERROR;
+
+ if (message && !dry_run)
+ {
+ svn_string_t *propval = svn_string_create(message, scratch_pool);
+
+ if (! revprop_table)
+ revprop_table = apr_hash_make(scratch_pool);
+ svn_hash_sets(revprop_table, SVN_PROP_REVISION_LOG, propval);
+ }
+ }
+
+ SVN_ERR(svn_client__shelf_revprop_set_all(shelf, revprop_table, scratch_pool));
+
+ if (new_version_p)
+ *new_version_p = shelf->max_version;
+
+ if (dry_run)
+ {
+ SVN_ERR(svn_client__shelf_delete_newer_versions(shelf, previous_version,
+ scratch_pool));
+ }
+
+ SVN_ERR(svn_client__shelf_close(shelf, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* Return the single character representation of STATUS.
+ * (Similar to subversion/svn/status.c:generate_status_code()
+ * and subversion/tests/libsvn_client/client-test.c:status_to_char().) */
+static char
+status_to_char(enum svn_wc_status_kind status)
+{
+ switch (status)
+ {
+ case svn_wc_status_none: return '.';
+ case svn_wc_status_unversioned: return '?';
+ case svn_wc_status_normal: return ' ';
+ case svn_wc_status_added: return 'A';
+ case svn_wc_status_missing: return '!';
+ case svn_wc_status_deleted: return 'D';
+ case svn_wc_status_replaced: return 'R';
+ case svn_wc_status_modified: return 'M';
+ case svn_wc_status_merged: return 'G';
+ case svn_wc_status_conflicted: return 'C';
+ case svn_wc_status_ignored: return 'I';
+ case svn_wc_status_obstructed: return '~';
+ case svn_wc_status_external: return 'X';
+ case svn_wc_status_incomplete: return ':';
+ default: return '*';
+ }
+}
+
+/* Throw an error if any path affected by SHELF_VERSION gives a conflict
+ * when applied (as a dry-run) to the WC. */
+static svn_error_t *
+test_apply(svn_client__shelf_version_t *shelf_version,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ apr_hash_t *paths;
+ apr_hash_index_t *hi;
+
+ SVN_ERR(svn_client__shelf_paths_changed(&paths, shelf_version,
+ scratch_pool, scratch_pool));
+ for (hi = apr_hash_first(scratch_pool, paths); hi; hi = apr_hash_next(hi))
+ {
+ const char *path = apr_hash_this_key(hi);
+ svn_boolean_t conflict;
+
+ SVN_ERR(svn_client__shelf_test_apply_file(&conflict, shelf_version, path,
+ scratch_pool));
+ if (conflict)
+ {
+ char *to_wc_abspath
+ = svn_dirent_join(shelf_version->shelf->wc_root_abspath, path,
+ scratch_pool);
+ svn_wc_status3_t *status;
+
+ SVN_ERR(svn_wc_status3(&status, ctx->wc_ctx, to_wc_abspath,
+ scratch_pool, scratch_pool));
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("Shelved path '%s' already has "
+ "status '%c' in the working copy"),
+ path, status_to_char(status->node_status));
+ }
+ }
+ return SVN_NO_ERROR;
+}
+
+/** Restore/unshelve a given or newest version of changes.
+ *
+ * Restore local modifications from shelf @a name version @a arg,
+ * or the newest version is @a arg is null.
+ *
+ * If @a dry_run is true, don't actually do it.
+ *
+ * Error if any path would have a conflict, unless @a force_if_conflict.
+ */
+static svn_error_t *
+shelf_restore(const char *name,
+ const char *arg,
+ svn_boolean_t dry_run,
+ svn_boolean_t quiet,
+ svn_boolean_t force_if_conflict,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ int version, old_version;
+ apr_time_t time_now = apr_time_now();
+ svn_client__shelf_t *shelf;
+ svn_client__shelf_version_t *shelf_version;
+
+ SVN_ERR(svn_client__shelf_open_existing(&shelf, name, local_abspath,
+ ctx, scratch_pool));
+
+ old_version = shelf->max_version;
+ if (arg)
+ {
+ SVN_ERR(svn_cstring_atoi(&version, arg));
+ SVN_ERR(svn_client__shelf_version_open(&shelf_version,
+ shelf, version,
+ scratch_pool, scratch_pool));
+ }
+ else
+ {
+ version = shelf->max_version;
+ SVN_ERR(get_newest_version_existing(&shelf_version, shelf,
+ scratch_pool, scratch_pool));
+ }
+
+ if (! quiet)
+ {
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ _("--- Unshelve '%s' in WC root '%s'\n"),
+ shelf->name, shelf->wc_root_abspath));
+ SVN_ERR(stats(shelf, version, shelf_version, time_now,
+ TRUE /*with_logmsg*/, scratch_pool));
+ }
+ if (! force_if_conflict)
+ {
+ SVN_ERR_W(test_apply(shelf_version, ctx, scratch_pool),
+ _("Cannot unshelve/restore, as at least one shelved "
+ "path would conflict with a local modification "
+ "or other status in the working copy"));
+ }
+
+ SVN_ERR(svn_client__shelf_apply(shelf_version,
+ dry_run, scratch_pool));
+
+ if (! dry_run)
+ {
+ SVN_ERR(svn_client__shelf_delete_newer_versions(shelf, shelf_version,
+ scratch_pool));
+ }
+
+ if (!quiet)
+ {
+ if (version < old_version)
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ Q_("restored '%s' version %d and deleted %d newer version\n",
+ "restored '%s' version %d and deleted %d newer versions\n",
+ old_version - version),
+ name, version, old_version - version));
+ else
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ _("restored '%s' version %d (the newest version)\n"),
+ name, version));
+ }
+
+ SVN_ERR(svn_client__shelf_close(shelf, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+shelf_diff(const char *name,
+ const char *arg,
+ const char *local_abspath,
+ svn_boolean_t summarize,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ svn_client__shelf_t *shelf;
+ svn_client__shelf_version_t *shelf_version;
+ svn_stream_t *stream, *errstream;
+ svn_diff_tree_processor_t *diff_processor;
+
+ SVN_ERR(svn_client__shelf_open_existing(&shelf, name, local_abspath,
+ ctx, scratch_pool));
+
+ if (arg)
+ {
+ int version;
+
+ SVN_ERR(svn_cstring_atoi(&version, arg));
+ SVN_ERR(svn_client__shelf_version_open(&shelf_version,
+ shelf, version,
+ scratch_pool, scratch_pool));
+ }
+ else
+ {
+ SVN_ERR(get_newest_version_existing(&shelf_version, shelf,
+ scratch_pool, scratch_pool));
+ }
+
+ SVN_ERR(svn_stream_for_stdout(&stream, scratch_pool));
+ errstream = svn_stream_empty(scratch_pool);
+
+ if (summarize)
+ {
+ svn_client_diff_summarize_func_t func;
+ void *baton;
+
+ SVN_ERR(svn_cl__get_diff_summary_writer(&func, &baton,
+ FALSE /*xml*/,
+ FALSE /*ignore_properties*/,
+ "" /*anchor/prefix*/,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_client__get_diff_summarize_callbacks(&diff_processor,
+ func, baton,
+ scratch_pool,
+ scratch_pool));
+ }
+ else
+ {
+ SVN_ERR(svn_client__get_diff_writer_svn(
+ &diff_processor,
+ NULL /*anchor*/,
+ "", "", /*orig_path_1, orig_path_2,*/
+ NULL /*options*/,
+ "" /*relative_to_dir*/,
+ FALSE /*no_diff_added*/,
+ FALSE /*no_diff_deleted*/,
+ FALSE /*show_copies_as_adds*/,
+ FALSE /*ignore_content_type*/,
+ FALSE /*ignore_properties*/,
+ FALSE /*properties_only*/,
+ TRUE /*pretty_print_mergeinfo*/,
+ svn_cmdline_output_encoding(scratch_pool),
+ stream, errstream,
+ ctx, scratch_pool));
+ }
+
+ SVN_ERR(svn_client__shelf_diff(shelf_version, "",
+ depth, ignore_ancestry,
+ diff_processor, scratch_pool));
+ SVN_ERR(svn_stream_close(stream));
+
+ SVN_ERR(svn_client__shelf_close(shelf, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+static svn_error_t *
+shelf_drop(const char *name,
+ const char *local_abspath,
+ svn_boolean_t dry_run,
+ svn_boolean_t quiet,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ SVN_ERR(svn_client__shelf_delete(name, local_abspath, dry_run,
+ ctx, scratch_pool));
+ if (! quiet)
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ _("deleted '%s'\n"),
+ name));
+ return SVN_NO_ERROR;
+}
+
+/* */
+static svn_error_t *
+shelf_shelve(int *new_version,
+ const char *name,
+ apr_array_header_t *targets,
+ svn_depth_t depth,
+ apr_array_header_t *changelists,
+ apr_hash_t *revprop_table,
+ svn_boolean_t keep_local,
+ svn_boolean_t dry_run,
+ svn_boolean_t quiet,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ const char *local_abspath;
+
+ if (depth == svn_depth_unknown)
+ depth = svn_depth_infinity;
+
+ SVN_ERR(svn_cl__check_targets_are_local_paths(targets));
+
+ SVN_ERR(svn_cl__eat_peg_revisions(&targets, targets, scratch_pool));
+
+ svn_opt_push_implicit_dot_target(targets, scratch_pool);
+
+ /* ### TODO: check all paths are in same WC; for now use first path */
+ SVN_ERR(svn_dirent_get_absolute(&local_abspath,
+ APR_ARRAY_IDX(targets, 0, char *),
+ scratch_pool));
+
+ SVN_ERR(shelve(new_version, name,
+ targets, depth, changelists,
+ revprop_table,
+ keep_local, dry_run, quiet,
+ local_abspath, ctx, scratch_pool));
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+svn_cl__shelf_shelve(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool);
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+static svn_error_t *
+svn_cl__shelf_save(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+
+ opt_state->keep_local = TRUE;
+ SVN_ERR(svn_cl__shelf_shelve(os, baton, pool));
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+static svn_error_t *
+svn_cl__shelf_shelve(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+ svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
+ const char *name;
+ apr_array_header_t *targets;
+
+ if (opt_state->quiet)
+ ctx->notify_func2 = NULL; /* Easy out: avoid unneeded work */
+
+ SVN_ERR(get_next_argument(&name, os, pool, pool));
+
+ /* Parse the remaining arguments as paths. */
+ SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
+ opt_state->targets,
+ ctx, FALSE, pool));
+ {
+ int new_version;
+ svn_error_t *err;
+
+ if (ctx->log_msg_func3)
+ SVN_ERR(svn_cl__make_log_msg_baton(&ctx->log_msg_baton3,
+ opt_state, NULL, ctx->config,
+ pool));
+ err = shelf_shelve(&new_version, name,
+ targets, opt_state->depth, opt_state->changelists,
+ opt_state->revprop_table,
+ opt_state->keep_local, opt_state->dry_run,
+ opt_state->quiet, ctx, pool);
+ if (ctx->log_msg_func3)
+ SVN_ERR(svn_cl__cleanup_log_msg(ctx->log_msg_baton3,
+ err, pool));
+ else
+ SVN_ERR(err);
+
+ if (! opt_state->quiet)
+ {
+ if (opt_state->keep_local)
+ SVN_ERR(svn_cmdline_printf(pool,
+ _("saved '%s' version %d\n"),
+ name, new_version));
+ else
+ SVN_ERR(svn_cmdline_printf(pool,
+ _("shelved '%s' version %d\n"),
+ name, new_version));
+ }
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+static svn_error_t *
+svn_cl__shelf_unshelve(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *scratch_pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+ svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
+ const char *local_abspath;
+ const char *name;
+ const char *arg = NULL;
+
+ SVN_ERR(svn_dirent_get_absolute(&local_abspath, "", scratch_pool));
+
+ if (os->ind < os->argc)
+ {
+ SVN_ERR(get_next_argument(&name, os, scratch_pool, scratch_pool));
+ }
+ else
+ {
+ SVN_ERR(name_of_youngest(&name,
+ local_abspath, ctx, scratch_pool, scratch_pool));
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ _("unshelving the youngest shelf, '%s'\n"),
+ name));
+ }
+
+ /* Which checkpoint number? */
+ if (os->ind < os->argc)
+ SVN_ERR(get_next_argument(&arg, os, scratch_pool, scratch_pool));
+
+ if (os->ind < os->argc)
+ return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
+ _("Too many arguments"));
+
+ if (opt_state->quiet)
+ ctx->notify_func2 = NULL; /* Easy out: avoid unneeded work */
+
+ SVN_ERR(shelf_restore(name, arg,
+ opt_state->dry_run, opt_state->quiet,
+ opt_state->force /*force_already_modified*/,
+ local_abspath, ctx, scratch_pool));
+
+ if (opt_state->drop)
+ {
+ SVN_ERR(shelf_drop(name, local_abspath,
+ opt_state->dry_run, opt_state->quiet,
+ ctx, scratch_pool));
+ }
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+static svn_error_t *
+svn_cl__shelf_list(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+ svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
+ apr_array_header_t *targets = NULL;
+ apr_pool_t *iterpool = svn_pool_create(pool);
+ int i;
+
+ SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
+ opt_state->targets,
+ ctx, FALSE, pool));
+ /* Add "." if user passed 0 arguments */
+ svn_opt_push_implicit_dot_target(targets, pool);
+
+ for (i = 0; i < targets->nelts; ++i)
+ {
+ const char *local_abspath;
+ const char *target = APR_ARRAY_IDX(targets, i, const char *);
+
+ svn_pool_clear(iterpool);
+
+ SVN_ERR(svn_dirent_get_absolute(&local_abspath, target, iterpool));
+
+ SVN_ERR(shelves_list(local_abspath,
+ opt_state->quiet,
+ ctx, iterpool));
+ }
+
+ svn_pool_destroy(iterpool);
+
+ return SVN_NO_ERROR;
+}
+
+/* "svn shelf-list-by-paths [PATH...]"
+ *
+ * TARGET_RELPATHS are all within the same WC, relative to WC_ROOT_ABSPATH.
+ */
+static svn_error_t *
+shelf_list_by_paths(apr_array_header_t *target_relpaths,
+ const char *wc_root_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ apr_array_header_t *shelves;
+ apr_hash_t *paths_to_shelf_name = apr_hash_make(scratch_pool);
+ apr_array_header_t *array;
+ int i;
+
+ SVN_ERR(list_sorted_by_date(&shelves,
+ wc_root_abspath, ctx, scratch_pool));
+
+ /* Check paths are valid */
+ for (i = 0; i < target_relpaths->nelts; i++)
+ {
+ char *target_relpath = APR_ARRAY_IDX(target_relpaths, i, char *);
+
+ if (svn_path_is_url(target_relpath))
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("'%s' is not a local path"), target_relpath);
+ SVN_ERR_ASSERT(svn_relpath_is_canonical(target_relpath));
+ }
+
+ /* Find the most recent shelf for each affected path */
+ for (i = 0; i < shelves->nelts; i++)
+ {
+ svn_sort__item_t *item = &APR_ARRAY_IDX(shelves, i, svn_sort__item_t);
+ const char *name = item->key;
+ svn_client__shelf_t *shelf;
+ svn_client__shelf_version_t *shelf_version;
+ apr_hash_t *shelf_paths;
+ int j;
+
+ SVN_ERR(svn_client__shelf_open_existing(&shelf,
+ name, wc_root_abspath,
+ ctx, scratch_pool));
+ SVN_ERR(svn_client__shelf_get_newest_version(&shelf_version, shelf,
+ scratch_pool, scratch_pool));
+ if (!shelf_version)
+ continue;
+ SVN_ERR(svn_client__shelf_paths_changed(&shelf_paths,
+ shelf_version,
+ scratch_pool, scratch_pool));
+ for (j = 0; j < target_relpaths->nelts; j++)
+ {
+ char *target_relpath = APR_ARRAY_IDX(target_relpaths, j, char *);
+ apr_hash_index_t *hi;
+
+ for (hi = apr_hash_first(scratch_pool, shelf_paths);
+ hi; hi = apr_hash_next(hi))
+ {
+ const char *shelf_path = apr_hash_this_key(hi);
+
+ if (svn_relpath_skip_ancestor(target_relpath, shelf_path))
+ {
+ if (! svn_hash_gets(paths_to_shelf_name, shelf_path))
+ {
+ svn_hash_sets(paths_to_shelf_name, shelf_path, shelf->name);
+ }
+ }
+ }
+ }
+ }
+
+ /* Print the results. */
+ array = svn_sort__hash(paths_to_shelf_name,
+ svn_sort_compare_items_as_paths,
+ scratch_pool);
+ for (i = 0; i < array->nelts; i++)
+ {
+ svn_sort__item_t *item = &APR_ARRAY_IDX(array, i, svn_sort__item_t);
+ const char *path = item->key;
+ const char *name = item->value;
+
+ SVN_ERR(svn_cmdline_printf(scratch_pool, "%-20.20s %s\n",
+ name,
+ svn_dirent_local_style(path, scratch_pool)));
+ }
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+static svn_error_t *
+svn_cl__shelf_list_by_paths(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+ svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
+ const char *wc_root_abspath;
+ apr_array_header_t *targets;
+
+ /* Parse the remaining arguments as paths. */
+ SVN_ERR(targets_relative_to_a_wc(&wc_root_abspath, &targets,
+ os, opt_state->targets,
+ ctx, pool, pool));
+
+ SVN_ERR(shelf_list_by_paths(targets, wc_root_abspath, ctx, pool));
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+static svn_error_t *
+svn_cl__shelf_diff(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+ svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
+ const char *local_abspath;
+ const char *name;
+ const char *arg = NULL;
+
+ SVN_ERR(svn_dirent_get_absolute(&local_abspath, "", pool));
+
+ SVN_ERR(get_next_argument(&name, os, pool, pool));
+
+ /* Which checkpoint number? */
+ if (os->ind < os->argc)
+ SVN_ERR(get_next_argument(&arg, os, pool, pool));
+
+ if (os->ind < os->argc)
+ return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
+ _("Too many arguments"));
+
+ SVN_ERR(shelf_diff(name, arg, local_abspath,
+ opt_state->diff.summarize,
+ opt_state->depth, opt_state->ignore_ancestry,
+ ctx, pool));
+
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+static svn_error_t *
+svn_cl__shelf_drop(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+ svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
+ const char *name;
+ apr_array_header_t *targets = NULL;
+ apr_pool_t *iterpool = svn_pool_create(pool);
+ int i;
+
+ SVN_ERR(get_next_argument(&name, os, pool, pool));
+
+ SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
+ opt_state->targets,
+ ctx, FALSE, pool));
+ svn_opt_push_implicit_dot_target(targets, pool);
+
+ for (i = 0; i < targets->nelts; ++i)
+ {
+ const char *local_abspath;
+ const char *target = APR_ARRAY_IDX(targets, i, const char *);
+
+ svn_pool_clear(iterpool);
+
+ SVN_ERR(svn_dirent_get_absolute(&local_abspath, target, iterpool));
+ SVN_ERR(shelf_drop(name, local_abspath,
+ opt_state->dry_run, opt_state->quiet,
+ ctx, iterpool));
+ }
+
+ svn_pool_destroy(iterpool);
+
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+static svn_error_t *
+svn_cl__shelf_log(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+ svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
+ const char *name;
+ apr_array_header_t *targets = NULL;
+ apr_pool_t *iterpool = svn_pool_create(pool);
+ int i;
+
+ SVN_ERR(get_next_argument(&name, os, pool, pool));
+
+ SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
+ opt_state->targets,
+ ctx, FALSE, pool));
+ svn_opt_push_implicit_dot_target(targets, pool);
+
+ for (i = 0; i < targets->nelts; ++i)
+ {
+ const char *local_abspath;
+ const char *target = APR_ARRAY_IDX(targets, i, const char *);
+
+ svn_pool_clear(iterpool);
+
+ SVN_ERR(svn_dirent_get_absolute(&local_abspath, target, iterpool));
+ SVN_ERR(shelf_log(name, local_abspath, ctx, iterpool));
+ }
+
+ svn_pool_destroy(iterpool);
+
+ return SVN_NO_ERROR;
+}
+
+/**************************************************************************/
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+static svn_error_t *
+svn_cl__wc_copy_mods(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
+{
+ svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
+ const char *src_wc_abspath, *dst_wc_abspath;
+
+ SVN_ERR(get_next_argument(&src_wc_abspath, os, pool, pool));
+ SVN_ERR(svn_dirent_get_absolute(&src_wc_abspath, src_wc_abspath, pool));
+
+ SVN_ERR(get_next_argument(&dst_wc_abspath, os, pool, pool));
+ SVN_ERR(svn_dirent_get_absolute(&dst_wc_abspath, dst_wc_abspath, pool));
+
+ SVN_ERR(svn_client__wc_copy_mods(src_wc_abspath, dst_wc_abspath,
+ ctx->notify_func2, ctx->notify_baton2,
+ ctx, pool));
+
+ return SVN_NO_ERROR;
+}
+
+const svn_opt_subcommand_desc3_t
+svn_cl__cmd_table_shelf3[] =
+{
+ { "x-shelf-diff", svn_cl__shelf_diff, {0}, {N_(
+ "Show shelved changes as a diff.\n"
+ "usage: x-shelf-diff SHELF [VERSION]\n"
+ "\n"), N_(
+ " Show the changes in SHELF:VERSION (default: latest) as a diff.\n"
+ "\n"), N_(
+ " See also: 'svn diff --cl=svn:shelf:SHELF' which supports most options of\n"
+ " 'svn diff'.\n"
+ "\n"), N_(
+ " The shelving feature is EXPERIMENTAL. This command is likely to change\n"
+ " in the next release, and there is no promise of backward compatibility.\n"
+ )},
+ {opt_summarize},
+ },
+
+ { "x-shelf-drop", svn_cl__shelf_drop, {0}, {N_(
+ "Delete a shelf.\n"
+ "usage: x-shelf-drop SHELF [PATH ...]\n"
+ "\n"), N_(
+ " Delete the shelves named SHELF from the working copies containing PATH\n"
+ " (default PATH is '.')\n"
+ "\n"), N_(
+ " The shelving feature is EXPERIMENTAL. This command is likely to change\n"
+ " in the next release, and there is no promise of backward compatibility.\n"
+ )},
+ },
+
+ { "x-shelf-list", svn_cl__shelf_list, {"x-shelves"}, {N_(
+ "List shelves.\n"
+ "usage: x-shelf-list [PATH ...]\n"
+ "\n"), N_(
+ " List shelves for each working copy containing PATH (default is '.')\n"
+ " Include the first line of any log message and some details about the\n"
+ " contents of the shelf, unless '-q' is given.\n"
+ "\n"), N_(
+ " The shelving feature is EXPERIMENTAL. This command is likely to change\n"
+ " in the next release, and there is no promise of backward compatibility.\n"
+ )},
+ {'q', 'v'}
+ },
+
+ { "x-shelf-list-by-paths", svn_cl__shelf_list_by_paths, {0}, {N_(
+ "List which shelf affects each path.\n"
+ "usage: x-shelf-list-by-paths [PATH...]\n"
+ "\n"), N_(
+ " List which shelf most recently affects each path below the given PATHs.\n"
+ "\n"), N_(
+ " The shelving feature is EXPERIMENTAL. This command is likely to change\n"
+ " in the next release, and there is no promise of backward compatibility.\n"
+ )},
+ },
+
+ { "x-shelf-log", svn_cl__shelf_log, {0}, {N_(
+ "Show the versions of a shelf.\n"
+ "usage: x-shelf-log SHELF [PATH...]\n"
+ "\n"), N_(
+ " Show all versions of SHELF for each working copy containing PATH (the\n"
+ " default PATH is '.').\n"
+ "\n"), N_(
+ " The shelving feature is EXPERIMENTAL. This command is likely to change\n"
+ " in the next release, and there is no promise of backward compatibility.\n"
+ )},
+ {'q', 'v'}
+ },
+
+ { "x-shelf-save", svn_cl__shelf_save, {0}, {N_(
+ "Copy local changes onto a new version of a shelf.\n"
+ "usage: x-shelf-save SHELF [PATH...]\n"
+ "\n"), N_(
+ " Save local changes in the given PATHs as a new version of SHELF.\n"
+ " The shelf's log message can be set with -m, -F, etc.\n"
+ "\n"), N_(
+ " The same as 'svn shelve --keep-local'.\n"
+ "\n"), N_(
+ " The shelving feature is EXPERIMENTAL. This command is likely to change\n"
+ " in the next release, and there is no promise of backward compatibility.\n"
+ )},
+ {'q', opt_dry_run,
+ opt_depth, opt_targets, opt_changelist,
+ SVN_CL__LOG_MSG_OPTIONS,
+ }
+ },
+
+ { "x-shelve", svn_cl__shelf_shelve, {0}, {N_(
+ "Move local changes onto a shelf.\n"
+ "usage: x-shelve [--keep-local] SHELF [PATH...]\n"
+ "\n"), N_(
+ " Save the local changes in the given PATHs to a new or existing SHELF.\n"
+ " Revert those changes from the WC unless '--keep-local' is given.\n"
+ " The shelf's log message can be set with -m, -F, etc.\n"
+ "\n"), N_(
+ " 'svn shelve --keep-local' is the same as 'svn shelf-save'.\n"
+ "\n"), N_(
+ " The kinds of change you can shelve are committable changes to files and\n"
+ " properties, except the following kinds which are not yet supported:\n"
+ " * copies and moves\n"
+ " * mkdir and rmdir\n"
+ " Uncommittable states such as conflicts, unversioned and missing cannot\n"
+ " be shelved.\n"
+ "\n"), N_(
+ " To bring back shelved changes, use 'svn unshelve SHELF'.\n"
+ "\n"), N_(
+ " Shelves are currently stored under <WC>/.svn/experimental/shelves/ .\n"
+ " (In Subversion 1.10, shelves were stored under <WC>/.svn/shelves/ as\n"
+ " patch files. To recover a shelf created by 1.10, either use a 1.10\n"
+ " client to find and unshelve it, or find the patch file and use any\n"
+ " 1.10 or later 'svn patch' to apply it.)\n"
+ "\n"), N_(
+ " The shelving feature is EXPERIMENTAL. This command is likely to change\n"
+ " in the next release, and there is no promise of backward compatibility.\n"
+ )},
+ {'q', opt_dry_run, opt_keep_local,
+ opt_depth, opt_targets, opt_changelist,
+ SVN_CL__LOG_MSG_OPTIONS,
+ } },
+
+ { "x-unshelve", svn_cl__shelf_unshelve, {0}, {N_(
+ "Copy shelved changes back into the WC.\n"
+ "usage: x-unshelve [--drop] [SHELF [VERSION]]\n"
+ "\n"), N_(
+ " Apply the changes stored in SHELF to the working copy.\n"
+ " SHELF defaults to the newest shelf.\n"
+ "\n"), N_(
+ " Apply the newest version of the shelf, by default. If VERSION is\n"
+ " specified, apply that version and discard all versions newer than that.\n"
+ " In any case, retain the unshelved version and versions older than that\n"
+ " (unless --drop is specified).\n"
+ "\n"), N_(
+ " With --drop, delete the entire shelf (like 'svn shelf-drop') after\n"
+ " successfully unshelving with no conflicts.\n"
+ "\n"), N_(
+ " The working files involved should be in a clean, unmodified state\n"
+ " before using this command. To roll back to an older version of the\n"
+ " shelf, first ensure any current working changes are removed, such as\n"
+ " by shelving or reverting them, and then unshelve the desired version.\n"
+ "\n"), N_(
+ " Unshelve normally refuses to apply any changes if any path involved is\n"
+ " already modified (or has any other abnormal status) in the WC. With\n"
+ " --force, it does not check and may error out and/or produce partial or\n"
+ " unexpected results.\n"
+ "\n"), N_(
+ " The shelving feature is EXPERIMENTAL. This command is likely to change\n"
+ " in the next release, and there is no promise of backward compatibility.\n"
+ )},
+ {opt_drop, 'q', opt_dry_run, opt_force} },
+
+ { "x-wc-copy-mods", svn_cl__wc_copy_mods, {0}, {N_(
+ "Copy local modifications from one WC to another.\n"
+ "usage: x-wc-copy-mods SRC_WC_PATH DST_WC_PATH\n"
+ "\n"), N_(
+ " The source and destination WC paths may be in the same WC or in different"
+ " WCs.\n"
+ "\n"), N_(
+ " This feature is EXPERIMENTAL. This command is likely to change\n"
+ " in the next release, and there is no promise of backward compatibility.\n"
+ )},
+ },
+
+ { NULL, NULL, {0}, {NULL}, {0} }
+};
+
diff --git a/subversion/svn/shelf-cmd.h b/subversion/svn/shelf-cmd.h
new file mode 100644
index 000000000000..c5f3cabe60de
--- /dev/null
+++ b/subversion/svn/shelf-cmd.h
@@ -0,0 +1,49 @@
+/*
+ * shelf-cmd.h: experimental shelving v3
+ *
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ */
+
+/* ==================================================================== */
+
+
+
+#ifndef SVN_SHELF_CMD_H
+#define SVN_SHELF_CMD_H
+
+/*** Includes. ***/
+#include <apr_getopt.h>
+
+#include "svn_opt.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+extern const svn_opt_subcommand_desc3_t svn_cl__cmd_table_shelf3[];
+/*extern const apr_getopt_option_t svn_cl__options_shelving3[];*/
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* SVN_SHELF_CMD_H */
diff --git a/subversion/svn/shelf2-cmd.c b/subversion/svn/shelf2-cmd.c
new file mode 100644
index 000000000000..8305ce30938e
--- /dev/null
+++ b/subversion/svn/shelf2-cmd.c
@@ -0,0 +1,1369 @@
+/*
+ * shelf2-cmd.c -- Shelving commands.
+ *
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ */
+
+/* We define this here to remove any further warnings about the usage of
+ experimental functions in this file. */
+#define SVN_EXPERIMENTAL
+
+#include "svn_client.h"
+#include "svn_error_codes.h"
+#include "svn_error.h"
+#include "svn_hash.h"
+#include "svn_path.h"
+#include "svn_props.h"
+#include "svn_pools.h"
+#include "svn_utf.h"
+
+#include "shelf2-cmd.h"
+#include "cl.h"
+
+#include "svn_private_config.h"
+#include "private/svn_sorts_private.h"
+#include "private/svn_client_private.h"
+#include "private/svn_client_shelf2.h"
+
+
+/* Open the newest version of SHELF; error if no versions found. */
+static svn_error_t *
+get_newest_version_existing(svn_client__shelf2_version_t **shelf_version_p,
+ svn_client__shelf2_t *shelf,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ SVN_ERR(svn_client__shelf2_get_newest_version(shelf_version_p, shelf,
+ result_pool, scratch_pool));
+ if (!*shelf_version_p)
+ {
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("Shelf '%s': no versions found"),
+ shelf->name);
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Fetch the next argument. */
+static svn_error_t *
+get_next_argument(const char **arg,
+ apr_getopt_t *os,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ apr_array_header_t *args;
+
+ SVN_ERR(svn_opt_parse_num_args(&args, os, 1, scratch_pool));
+ SVN_ERR(svn_utf_cstring_to_utf8(arg,
+ APR_ARRAY_IDX(args, 0, const char *),
+ result_pool));
+ return SVN_NO_ERROR;
+}
+
+/* Parse the remaining arguments as paths relative to a WC.
+ *
+ * TARGETS are relative to current working directory.
+ *
+ * Set *targets_by_wcroot to a hash mapping (char *)wcroot_abspath to
+ * (apr_array_header_t *)array of relpaths relative to that WC root.
+ */
+static svn_error_t *
+targets_relative_to_wcs(apr_hash_t **targets_by_wcroot_p,
+ apr_array_header_t *targets,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ apr_hash_t *targets_by_wcroot = apr_hash_make(result_pool);
+ int i;
+
+ /* Make each target relative to the WC root. */
+ for (i = 0; i < targets->nelts; i++)
+ {
+ const char *target = APR_ARRAY_IDX(targets, i, const char *);
+ const char *wcroot_abspath;
+ apr_array_header_t *paths;
+
+ SVN_ERR(svn_dirent_get_absolute(&target, target, result_pool));
+ SVN_ERR(svn_client_get_wc_root(&wcroot_abspath, target,
+ ctx, result_pool, scratch_pool));
+ paths = svn_hash_gets(targets_by_wcroot, wcroot_abspath);
+ if (! paths)
+ {
+ paths = apr_array_make(result_pool, 0, sizeof(char *));
+ svn_hash_sets(targets_by_wcroot, wcroot_abspath, paths);
+ }
+ target = svn_dirent_skip_ancestor(wcroot_abspath, target);
+
+ if (target)
+ APR_ARRAY_PUSH(paths, const char *) = target;
+ }
+ *targets_by_wcroot_p = targets_by_wcroot;
+ return SVN_NO_ERROR;
+}
+
+/* Return targets relative to a WC. Error if they refer to more than one WC. */
+static svn_error_t *
+targets_relative_to_a_wc(const char **wc_root_abspath_p,
+ apr_array_header_t **paths_p,
+ apr_getopt_t *os,
+ const apr_array_header_t *known_targets,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ apr_array_header_t *targets;
+ apr_hash_t *targets_by_wcroot;
+ apr_hash_index_t *hi;
+
+ SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
+ known_targets,
+ ctx, FALSE, result_pool));
+ svn_opt_push_implicit_dot_target(targets, result_pool);
+
+ SVN_ERR(targets_relative_to_wcs(&targets_by_wcroot, targets,
+ ctx, result_pool, scratch_pool));
+ if (apr_hash_count(targets_by_wcroot) != 1)
+ return svn_error_create(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("All targets must be in the same WC"));
+
+ hi = apr_hash_first(scratch_pool, targets_by_wcroot);
+ *wc_root_abspath_p = apr_hash_this_key(hi);
+ *paths_p = apr_hash_this_val(hi);
+ return SVN_NO_ERROR;
+}
+
+/* Return a human-friendly description of DURATION.
+ */
+static char *
+friendly_age_str(apr_time_t mtime,
+ apr_time_t time_now,
+ apr_pool_t *result_pool)
+{
+ int minutes = (int)((time_now - mtime) / 1000000 / 60);
+ char *s;
+
+ if (minutes >= 60 * 24)
+ s = apr_psprintf(result_pool,
+ Q_("%d day ago", "%d days ago",
+ minutes / 60 / 24),
+ minutes / 60 / 24);
+ else if (minutes >= 60)
+ s = apr_psprintf(result_pool,
+ Q_("%d hour ago", "%d hours ago",
+ minutes / 60),
+ minutes / 60);
+ else
+ s = apr_psprintf(result_pool,
+ Q_("%d minute ago", "%d minutes ago",
+ minutes),
+ minutes);
+ return s;
+}
+
+/* A comparison function for svn_sort__hash(), comparing the mtime of two
+ svn_client_shelf_info_t's. */
+static int
+compare_shelf_infos_by_mtime(const svn_sort__item_t *a,
+ const svn_sort__item_t *b)
+{
+ svn_client__shelf2_info_t *a_val = a->value;
+ svn_client__shelf2_info_t *b_val = b->value;
+
+ return (a_val->mtime < b_val->mtime)
+ ? -1 : (a_val->mtime > b_val->mtime) ? 1 : 0;
+}
+
+/* Return a list of shelves sorted by their mtime, oldest first.
+ */
+static svn_error_t *
+list_sorted_by_date(apr_array_header_t **list,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ apr_hash_t *shelf_infos;
+
+ SVN_ERR(svn_client__shelf2_list(&shelf_infos, local_abspath,
+ ctx, scratch_pool, scratch_pool));
+ *list = svn_sort__hash(shelf_infos,
+ compare_shelf_infos_by_mtime,
+ scratch_pool);
+ return SVN_NO_ERROR;
+}
+
+/* */
+static svn_error_t *
+stats(svn_client__shelf2_t *shelf,
+ int version,
+ svn_client__shelf2_version_t *shelf_version,
+ apr_time_t time_now,
+ svn_boolean_t with_logmsg,
+ apr_pool_t *scratch_pool)
+{
+ char *age_str;
+ char *version_str;
+ apr_hash_t *paths;
+ const char *paths_str = "";
+
+ if (! shelf_version)
+ {
+ return SVN_NO_ERROR;
+ }
+
+ age_str = friendly_age_str(shelf_version->mtime, time_now, scratch_pool);
+ if (version == shelf->max_version)
+ version_str = apr_psprintf(scratch_pool,
+ _("version %d"), version);
+ else
+ version_str = apr_psprintf(scratch_pool,
+ Q_("version %d of %d", "version %d of %d",
+ shelf->max_version),
+ version, shelf->max_version);
+ SVN_ERR(svn_client__shelf2_paths_changed(&paths, shelf_version,
+ scratch_pool, scratch_pool));
+ paths_str = apr_psprintf(scratch_pool,
+ Q_("%d path changed", "%d paths changed",
+ apr_hash_count(paths)),
+ apr_hash_count(paths));
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ "%-30s %s, %s, %s\n",
+ shelf->name, version_str, age_str, paths_str));
+
+ if (with_logmsg)
+ {
+ char *log_message;
+
+ SVN_ERR(svn_client__shelf2_get_log_message(&log_message, shelf,
+ scratch_pool));
+ if (log_message)
+ {
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ _(" %.50s\n"),
+ log_message));
+ }
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Display a list of shelves */
+static svn_error_t *
+shelves_list(const char *local_abspath,
+ svn_boolean_t quiet,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ apr_time_t time_now = apr_time_now();
+ apr_array_header_t *list;
+ int i;
+
+ SVN_ERR(list_sorted_by_date(&list,
+ local_abspath, ctx, scratch_pool));
+
+ for (i = 0; i < list->nelts; i++)
+ {
+ const svn_sort__item_t *item = &APR_ARRAY_IDX(list, i, svn_sort__item_t);
+ const char *name = item->key;
+ svn_client__shelf2_t *shelf;
+ svn_client__shelf2_version_t *shelf_version;
+
+ SVN_ERR(svn_client__shelf2_open_existing(&shelf, name, local_abspath,
+ ctx, scratch_pool));
+ SVN_ERR(svn_client__shelf2_get_newest_version(&shelf_version, shelf,
+ scratch_pool, scratch_pool));
+ if (quiet)
+ SVN_ERR(svn_cmdline_printf(scratch_pool, "%s\n", shelf->name));
+ else if (!shelf_version)
+ SVN_ERR(svn_cmdline_printf(scratch_pool, "%-30s no versions\n",
+ shelf->name));
+ else
+ SVN_ERR(stats(shelf, shelf->max_version, shelf_version, time_now,
+ TRUE /*with_logmsg*/, scratch_pool));
+ SVN_ERR(svn_client__shelf2_close(shelf, scratch_pool));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Print info about each checkpoint of the shelf named NAME.
+ */
+static svn_error_t *
+shelf_log(const char *name,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ apr_time_t time_now = apr_time_now();
+ svn_client__shelf2_t *shelf;
+ apr_array_header_t *versions;
+ int i;
+
+ SVN_ERR(svn_client__shelf2_open_existing(&shelf, name, local_abspath,
+ ctx, scratch_pool));
+ SVN_ERR(svn_client__shelf2_get_all_versions(&versions, shelf,
+ scratch_pool, scratch_pool));
+ for (i = 0; i < versions->nelts; i++)
+ {
+ svn_client__shelf2_version_t *shelf_version
+ = APR_ARRAY_IDX(versions, i, void *);
+
+ SVN_ERR(stats(shelf, i + 1, shelf_version, time_now,
+ FALSE /*with_logmsg*/, scratch_pool));
+ }
+
+ SVN_ERR(svn_client__shelf2_close(shelf, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* Find the name of the youngest shelf.
+ */
+static svn_error_t *
+name_of_youngest(const char **name_p,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ apr_array_header_t *list;
+ const svn_sort__item_t *youngest_item;
+
+ SVN_ERR(list_sorted_by_date(&list,
+ local_abspath, ctx, scratch_pool));
+ if (list->nelts == 0)
+ return svn_error_create(SVN_ERR_CL_INSUFFICIENT_ARGS, NULL,
+ _("No shelves found"));
+
+ youngest_item = &APR_ARRAY_IDX(list, list->nelts - 1, svn_sort__item_t);
+ *name_p = apr_pstrdup(result_pool, youngest_item->key);
+ return SVN_NO_ERROR;
+}
+
+struct status_baton
+{
+ /* These fields correspond to the ones in the
+ svn_cl__print_status() interface. */
+ const char *target_abspath;
+ const char *target_path;
+
+ svn_boolean_t quiet; /* don't display statuses while shelving them */
+ int num_paths_shelved;
+ int num_paths_not_shelved;
+ svn_client_ctx_t *ctx;
+};
+
+/* A status callback function for printing STATUS for PATH. */
+static svn_error_t *
+print_status(void *baton,
+ const char *path,
+ const svn_client_status_t *status,
+ apr_pool_t *scratch_pool)
+{
+ struct status_baton *sb = baton;
+ unsigned int conflicts;
+
+ return svn_cl__print_status(sb->target_abspath, sb->target_path,
+ path, status,
+ TRUE /*suppress_externals_placeholders*/,
+ FALSE /*detailed*/,
+ FALSE /*show_last_committed*/,
+ TRUE /*skip_unrecognized*/,
+ FALSE /*repos_locks*/,
+ &conflicts, &conflicts, &conflicts,
+ sb->ctx,
+ scratch_pool);
+}
+
+/* A callback function for shelved paths. */
+static svn_error_t *
+was_shelved(void *baton,
+ const char *path,
+ const svn_client_status_t *status,
+ apr_pool_t *scratch_pool)
+{
+ struct status_baton *sb = baton;
+
+ if (!sb->quiet)
+ {
+ SVN_ERR(print_status(baton, path, status, scratch_pool));
+ }
+
+ ++sb->num_paths_shelved;
+ return SVN_NO_ERROR;
+}
+
+/* A callback function for not-shelved paths. */
+static svn_error_t *
+was_not_shelved(void *baton,
+ const char *path,
+ const svn_client_status_t *status,
+ apr_pool_t *scratch_pool)
+{
+ struct status_baton *sb = baton;
+
+ SVN_ERR(print_status(baton, path, status, scratch_pool));
+ SVN_ERR(svn_cmdline_printf(scratch_pool, " > not shelved\n"));
+ ++sb->num_paths_not_shelved;
+ return SVN_NO_ERROR;
+}
+
+/** Shelve/save a new version of changes.
+ *
+ * Shelve in shelf @a name the local modifications found by @a paths,
+ * @a depth, @a changelists. Revert the shelved changes from the WC
+ * unless @a keep_local is true.
+ *
+ * If no local modifications are found, throw an error.
+ *
+ * If @a dry_run is true, don't actually do it.
+ *
+ * Report in @a *new_version_p the new version number (or, with dry run,
+ * what it would be).
+ */
+static svn_error_t *
+shelve(int *new_version_p,
+ const char *name,
+ const apr_array_header_t *paths,
+ svn_depth_t depth,
+ const apr_array_header_t *changelists,
+ apr_hash_t *revprop_table,
+ svn_boolean_t keep_local,
+ svn_boolean_t dry_run,
+ svn_boolean_t quiet,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ svn_client__shelf2_t *shelf;
+ svn_client__shelf2_version_t *previous_version;
+ svn_client__shelf2_version_t *new_version;
+ struct status_baton sb;
+
+ SVN_ERR(svn_client__shelf2_open_or_create(&shelf,
+ name, local_abspath,
+ ctx, scratch_pool));
+ SVN_ERR(svn_client__shelf2_get_newest_version(&previous_version, shelf,
+ scratch_pool, scratch_pool));
+
+ if (! quiet)
+ {
+ SVN_ERR(svn_cmdline_printf(scratch_pool, keep_local
+ ? _("--- Save a new version of '%s' in WC root '%s'\n")
+ : _("--- Shelve '%s' in WC root '%s'\n"),
+ shelf->name, shelf->wc_root_abspath));
+ SVN_ERR(stats(shelf, shelf->max_version, previous_version, apr_time_now(),
+ TRUE /*with_logmsg*/, scratch_pool));
+ }
+
+ sb.target_abspath = shelf->wc_root_abspath;
+ sb.target_path = "";
+ sb.quiet = quiet;
+ sb.num_paths_shelved = 0;
+ sb.num_paths_not_shelved = 0;
+ sb.ctx = ctx;
+
+ if (! quiet)
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ keep_local ? _("--- Saving...\n")
+ : _("--- Shelving...\n")));
+ SVN_ERR(svn_client__shelf2_save_new_version3(&new_version, shelf,
+ paths, depth, changelists,
+ was_shelved, &sb,
+ was_not_shelved, &sb,
+ scratch_pool));
+ if (sb.num_paths_not_shelved > 0)
+ {
+ SVN_ERR(svn_client__shelf2_delete_newer_versions(shelf, previous_version,
+ scratch_pool));
+ SVN_ERR(svn_client__shelf2_close(shelf, scratch_pool));
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ Q_("%d path could not be shelved",
+ "%d paths could not be shelved",
+ sb.num_paths_not_shelved),
+ sb.num_paths_not_shelved);
+ }
+ if (sb.num_paths_shelved == 0
+ || ! new_version)
+ {
+ SVN_ERR(svn_client__shelf2_close(shelf, scratch_pool));
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ keep_local ? _("No local modifications could be saved")
+ : _("No local modifications could be shelved"));
+ }
+
+ /* Un-apply the changes, if required. */
+ if (!keep_local)
+ {
+ SVN_ERR(svn_client__shelf2_unapply(new_version,
+ dry_run, scratch_pool));
+ }
+
+ /* Fetch the log message and any other revprops */
+ if (ctx->log_msg_func3)
+ {
+ const char *tmp_file;
+ apr_array_header_t *commit_items
+ = apr_array_make(scratch_pool, 1, sizeof(void *));
+ const char *message = "";
+
+ SVN_ERR(ctx->log_msg_func3(&message, &tmp_file, commit_items,
+ ctx->log_msg_baton3, scratch_pool));
+ /* Abort the shelving if the log message callback requested so. */
+ if (! message)
+ return SVN_NO_ERROR;
+
+ if (message && !dry_run)
+ {
+ svn_string_t *propval = svn_string_create(message, scratch_pool);
+
+ if (! revprop_table)
+ revprop_table = apr_hash_make(scratch_pool);
+ svn_hash_sets(revprop_table, SVN_PROP_REVISION_LOG, propval);
+ }
+ }
+
+ SVN_ERR(svn_client__shelf2_revprop_set_all(shelf, revprop_table, scratch_pool));
+
+ if (new_version_p)
+ *new_version_p = shelf->max_version;
+
+ if (dry_run)
+ {
+ SVN_ERR(svn_client__shelf2_delete_newer_versions(shelf, previous_version,
+ scratch_pool));
+ }
+
+ SVN_ERR(svn_client__shelf2_close(shelf, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* Return the single character representation of STATUS.
+ * (Similar to subversion/svn/status.c:generate_status_code()
+ * and subversion/tests/libsvn_client/client-test.c:status_to_char().) */
+static char
+status_to_char(enum svn_wc_status_kind status)
+{
+ switch (status)
+ {
+ case svn_wc_status_none: return '.';
+ case svn_wc_status_unversioned: return '?';
+ case svn_wc_status_normal: return ' ';
+ case svn_wc_status_added: return 'A';
+ case svn_wc_status_missing: return '!';
+ case svn_wc_status_deleted: return 'D';
+ case svn_wc_status_replaced: return 'R';
+ case svn_wc_status_modified: return 'M';
+ case svn_wc_status_merged: return 'G';
+ case svn_wc_status_conflicted: return 'C';
+ case svn_wc_status_ignored: return 'I';
+ case svn_wc_status_obstructed: return '~';
+ case svn_wc_status_external: return 'X';
+ case svn_wc_status_incomplete: return ':';
+ default: return '*';
+ }
+}
+
+/* Throw an error if any path affected by SHELF_VERSION gives a conflict
+ * when applied (as a dry-run) to the WC. */
+static svn_error_t *
+test_apply(svn_client__shelf2_version_t *shelf_version,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ apr_hash_t *paths;
+ apr_hash_index_t *hi;
+
+ SVN_ERR(svn_client__shelf2_paths_changed(&paths, shelf_version,
+ scratch_pool, scratch_pool));
+ for (hi = apr_hash_first(scratch_pool, paths); hi; hi = apr_hash_next(hi))
+ {
+ const char *path = apr_hash_this_key(hi);
+ svn_boolean_t conflict;
+
+ SVN_ERR(svn_client__shelf2_test_apply_file(&conflict, shelf_version, path,
+ scratch_pool));
+ if (conflict)
+ {
+ char *to_wc_abspath
+ = svn_dirent_join(shelf_version->shelf->wc_root_abspath, path,
+ scratch_pool);
+ svn_wc_status3_t *status;
+
+ SVN_ERR(svn_wc_status3(&status, ctx->wc_ctx, to_wc_abspath,
+ scratch_pool, scratch_pool));
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("Shelved path '%s' already has "
+ "status '%c' in the working copy"),
+ path, status_to_char(status->node_status));
+ }
+ }
+ return SVN_NO_ERROR;
+}
+
+/** Restore/unshelve a given or newest version of changes.
+ *
+ * Restore local modifications from shelf @a name version @a arg,
+ * or the newest version is @a arg is null.
+ *
+ * If @a dry_run is true, don't actually do it.
+ *
+ * Error if any path would have a conflict, unless @a force_if_conflict.
+ */
+static svn_error_t *
+shelf_restore(const char *name,
+ const char *arg,
+ svn_boolean_t dry_run,
+ svn_boolean_t quiet,
+ svn_boolean_t force_if_conflict,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ int version, old_version;
+ apr_time_t time_now = apr_time_now();
+ svn_client__shelf2_t *shelf;
+ svn_client__shelf2_version_t *shelf_version;
+
+ SVN_ERR(svn_client__shelf2_open_existing(&shelf, name, local_abspath,
+ ctx, scratch_pool));
+
+ old_version = shelf->max_version;
+ if (arg)
+ {
+ SVN_ERR(svn_cstring_atoi(&version, arg));
+ SVN_ERR(svn_client__shelf2_version_open(&shelf_version,
+ shelf, version,
+ scratch_pool, scratch_pool));
+ }
+ else
+ {
+ version = shelf->max_version;
+ SVN_ERR(get_newest_version_existing(&shelf_version, shelf,
+ scratch_pool, scratch_pool));
+ }
+
+ if (! quiet)
+ {
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ _("--- Unshelve '%s' in WC root '%s'\n"),
+ shelf->name, shelf->wc_root_abspath));
+ SVN_ERR(stats(shelf, version, shelf_version, time_now,
+ TRUE /*with_logmsg*/, scratch_pool));
+ }
+ if (! force_if_conflict)
+ {
+ SVN_ERR_W(test_apply(shelf_version, ctx, scratch_pool),
+ _("Cannot unshelve/restore, as at least one shelved "
+ "path would conflict with a local modification "
+ "or other status in the working copy"));
+ }
+
+ SVN_ERR(svn_client__shelf2_apply(shelf_version,
+ dry_run, scratch_pool));
+
+ if (! dry_run)
+ {
+ SVN_ERR(svn_client__shelf2_delete_newer_versions(shelf, shelf_version,
+ scratch_pool));
+ }
+
+ if (!quiet)
+ {
+ if (version < old_version)
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ Q_("restored '%s' version %d and deleted %d newer version\n",
+ "restored '%s' version %d and deleted %d newer versions\n",
+ old_version - version),
+ name, version, old_version - version));
+ else
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ _("restored '%s' version %d (the newest version)\n"),
+ name, version));
+ }
+
+ SVN_ERR(svn_client__shelf2_close(shelf, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+shelf_diff(const char *name,
+ const char *arg,
+ const char *local_abspath,
+ svn_boolean_t summarize,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ svn_client__shelf2_t *shelf;
+ svn_client__shelf2_version_t *shelf_version;
+ svn_stream_t *stream, *errstream;
+ svn_diff_tree_processor_t *diff_processor;
+
+ SVN_ERR(svn_client__shelf2_open_existing(&shelf, name, local_abspath,
+ ctx, scratch_pool));
+
+ if (arg)
+ {
+ int version;
+
+ SVN_ERR(svn_cstring_atoi(&version, arg));
+ SVN_ERR(svn_client__shelf2_version_open(&shelf_version,
+ shelf, version,
+ scratch_pool, scratch_pool));
+ }
+ else
+ {
+ SVN_ERR(get_newest_version_existing(&shelf_version, shelf,
+ scratch_pool, scratch_pool));
+ }
+
+ SVN_ERR(svn_stream_for_stdout(&stream, scratch_pool));
+ errstream = svn_stream_empty(scratch_pool);
+
+ if (summarize)
+ {
+ svn_client_diff_summarize_func_t func;
+ void *baton;
+
+ SVN_ERR(svn_cl__get_diff_summary_writer(&func, &baton,
+ FALSE /*xml*/,
+ FALSE /*ignore_properties*/,
+ "" /*anchor/prefix*/,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_client__get_diff_summarize_callbacks(&diff_processor,
+ func, baton,
+ scratch_pool,
+ scratch_pool));
+ }
+ else
+ {
+ SVN_ERR(svn_client__get_diff_writer_svn(
+ &diff_processor,
+ NULL /*anchor*/,
+ "", "", /*orig_path_1, orig_path_2,*/
+ NULL /*options*/,
+ "" /*relative_to_dir*/,
+ FALSE /*no_diff_added*/,
+ FALSE /*no_diff_deleted*/,
+ FALSE /*show_copies_as_adds*/,
+ FALSE /*ignore_content_type*/,
+ FALSE /*ignore_properties*/,
+ FALSE /*properties_only*/,
+ TRUE /*pretty_print_mergeinfo*/,
+ svn_cmdline_output_encoding(scratch_pool),
+ stream, errstream,
+ ctx, scratch_pool));
+ }
+
+ SVN_ERR(svn_client__shelf2_diff(shelf_version, "",
+ depth, ignore_ancestry,
+ diff_processor, scratch_pool));
+ SVN_ERR(svn_stream_close(stream));
+
+ SVN_ERR(svn_client__shelf2_close(shelf, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+static svn_error_t *
+shelf_drop(const char *name,
+ const char *local_abspath,
+ svn_boolean_t dry_run,
+ svn_boolean_t quiet,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ SVN_ERR(svn_client__shelf2_delete(name, local_abspath, dry_run,
+ ctx, scratch_pool));
+ if (! quiet)
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ _("deleted '%s'\n"),
+ name));
+ return SVN_NO_ERROR;
+}
+
+/* */
+static svn_error_t *
+shelf_shelve(int *new_version,
+ const char *name,
+ apr_array_header_t *targets,
+ svn_depth_t depth,
+ apr_array_header_t *changelists,
+ apr_hash_t *revprop_table,
+ svn_boolean_t keep_local,
+ svn_boolean_t dry_run,
+ svn_boolean_t quiet,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ const char *local_abspath;
+
+ if (depth == svn_depth_unknown)
+ depth = svn_depth_infinity;
+
+ SVN_ERR(svn_cl__check_targets_are_local_paths(targets));
+
+ SVN_ERR(svn_cl__eat_peg_revisions(&targets, targets, scratch_pool));
+
+ svn_opt_push_implicit_dot_target(targets, scratch_pool);
+
+ /* ### TODO: check all paths are in same WC; for now use first path */
+ SVN_ERR(svn_dirent_get_absolute(&local_abspath,
+ APR_ARRAY_IDX(targets, 0, char *),
+ scratch_pool));
+
+ SVN_ERR(shelve(new_version, name,
+ targets, depth, changelists,
+ revprop_table,
+ keep_local, dry_run, quiet,
+ local_abspath, ctx, scratch_pool));
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+svn_cl__shelf_shelve(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool);
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+static svn_error_t *
+svn_cl__shelf_save(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+
+ opt_state->keep_local = TRUE;
+ SVN_ERR(svn_cl__shelf_shelve(os, baton, pool));
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+static svn_error_t *
+svn_cl__shelf_shelve(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+ svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
+ const char *name;
+ apr_array_header_t *targets;
+
+ if (opt_state->quiet)
+ ctx->notify_func2 = NULL; /* Easy out: avoid unneeded work */
+
+ SVN_ERR(get_next_argument(&name, os, pool, pool));
+
+ /* Parse the remaining arguments as paths. */
+ SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
+ opt_state->targets,
+ ctx, FALSE, pool));
+ {
+ int new_version;
+ svn_error_t *err;
+
+ if (ctx->log_msg_func3)
+ SVN_ERR(svn_cl__make_log_msg_baton(&ctx->log_msg_baton3,
+ opt_state, NULL, ctx->config,
+ pool));
+ err = shelf_shelve(&new_version, name,
+ targets, opt_state->depth, opt_state->changelists,
+ opt_state->revprop_table,
+ opt_state->keep_local, opt_state->dry_run,
+ opt_state->quiet, ctx, pool);
+ if (ctx->log_msg_func3)
+ SVN_ERR(svn_cl__cleanup_log_msg(ctx->log_msg_baton3,
+ err, pool));
+ else
+ SVN_ERR(err);
+
+ if (! opt_state->quiet)
+ {
+ if (opt_state->keep_local)
+ SVN_ERR(svn_cmdline_printf(pool,
+ _("saved '%s' version %d\n"),
+ name, new_version));
+ else
+ SVN_ERR(svn_cmdline_printf(pool,
+ _("shelved '%s' version %d\n"),
+ name, new_version));
+ }
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+static svn_error_t *
+svn_cl__shelf_unshelve(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *scratch_pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+ svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
+ const char *local_abspath;
+ const char *name;
+ const char *arg = NULL;
+
+ SVN_ERR(svn_dirent_get_absolute(&local_abspath, "", scratch_pool));
+
+ if (os->ind < os->argc)
+ {
+ SVN_ERR(get_next_argument(&name, os, scratch_pool, scratch_pool));
+ }
+ else
+ {
+ SVN_ERR(name_of_youngest(&name,
+ local_abspath, ctx, scratch_pool, scratch_pool));
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ _("unshelving the youngest shelf, '%s'\n"),
+ name));
+ }
+
+ /* Which checkpoint number? */
+ if (os->ind < os->argc)
+ SVN_ERR(get_next_argument(&arg, os, scratch_pool, scratch_pool));
+
+ if (os->ind < os->argc)
+ return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
+ _("Too many arguments"));
+
+ if (opt_state->quiet)
+ ctx->notify_func2 = NULL; /* Easy out: avoid unneeded work */
+
+ SVN_ERR(shelf_restore(name, arg,
+ opt_state->dry_run, opt_state->quiet,
+ opt_state->force /*force_already_modified*/,
+ local_abspath, ctx, scratch_pool));
+
+ if (opt_state->drop)
+ {
+ SVN_ERR(shelf_drop(name, local_abspath,
+ opt_state->dry_run, opt_state->quiet,
+ ctx, scratch_pool));
+ }
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+static svn_error_t *
+svn_cl__shelf_list(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+ svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
+ apr_array_header_t *targets = NULL;
+ apr_pool_t *iterpool = svn_pool_create(pool);
+ int i;
+
+ SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
+ opt_state->targets,
+ ctx, FALSE, pool));
+ /* Add "." if user passed 0 arguments */
+ svn_opt_push_implicit_dot_target(targets, pool);
+
+ for (i = 0; i < targets->nelts; ++i)
+ {
+ const char *local_abspath;
+ const char *target = APR_ARRAY_IDX(targets, i, const char *);
+
+ svn_pool_clear(iterpool);
+
+ SVN_ERR(svn_dirent_get_absolute(&local_abspath, target, iterpool));
+
+ SVN_ERR(shelves_list(local_abspath,
+ opt_state->quiet,
+ ctx, iterpool));
+ }
+
+ svn_pool_destroy(iterpool);
+
+ return SVN_NO_ERROR;
+}
+
+/* "svn shelf-list-by-paths [PATH...]"
+ *
+ * TARGET_RELPATHS are all within the same WC, relative to WC_ROOT_ABSPATH.
+ */
+static svn_error_t *
+shelf_list_by_paths(apr_array_header_t *target_relpaths,
+ const char *wc_root_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ apr_array_header_t *shelves;
+ apr_hash_t *paths_to_shelf_name = apr_hash_make(scratch_pool);
+ apr_array_header_t *array;
+ int i;
+
+ SVN_ERR(list_sorted_by_date(&shelves,
+ wc_root_abspath, ctx, scratch_pool));
+
+ /* Check paths are valid */
+ for (i = 0; i < target_relpaths->nelts; i++)
+ {
+ char *target_relpath = APR_ARRAY_IDX(target_relpaths, i, char *);
+
+ if (svn_path_is_url(target_relpath))
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("'%s' is not a local path"), target_relpath);
+ SVN_ERR_ASSERT(svn_relpath_is_canonical(target_relpath));
+ }
+
+ /* Find the most recent shelf for each affected path */
+ for (i = 0; i < shelves->nelts; i++)
+ {
+ svn_sort__item_t *item = &APR_ARRAY_IDX(shelves, i, svn_sort__item_t);
+ const char *name = item->key;
+ svn_client__shelf2_t *shelf;
+ svn_client__shelf2_version_t *shelf_version;
+ apr_hash_t *shelf_paths;
+ int j;
+
+ SVN_ERR(svn_client__shelf2_open_existing(&shelf,
+ name, wc_root_abspath,
+ ctx, scratch_pool));
+ SVN_ERR(svn_client__shelf2_get_newest_version(&shelf_version, shelf,
+ scratch_pool, scratch_pool));
+ if (!shelf_version)
+ continue;
+ SVN_ERR(svn_client__shelf2_paths_changed(&shelf_paths,
+ shelf_version,
+ scratch_pool, scratch_pool));
+ for (j = 0; j < target_relpaths->nelts; j++)
+ {
+ char *target_relpath = APR_ARRAY_IDX(target_relpaths, j, char *);
+ apr_hash_index_t *hi;
+
+ for (hi = apr_hash_first(scratch_pool, shelf_paths);
+ hi; hi = apr_hash_next(hi))
+ {
+ const char *shelf_path = apr_hash_this_key(hi);
+
+ if (svn_relpath_skip_ancestor(target_relpath, shelf_path))
+ {
+ if (! svn_hash_gets(paths_to_shelf_name, shelf_path))
+ {
+ svn_hash_sets(paths_to_shelf_name, shelf_path, shelf->name);
+ }
+ }
+ }
+ }
+ }
+
+ /* Print the results. */
+ array = svn_sort__hash(paths_to_shelf_name,
+ svn_sort_compare_items_as_paths,
+ scratch_pool);
+ for (i = 0; i < array->nelts; i++)
+ {
+ svn_sort__item_t *item = &APR_ARRAY_IDX(array, i, svn_sort__item_t);
+ const char *path = item->key;
+ const char *name = item->value;
+
+ SVN_ERR(svn_cmdline_printf(scratch_pool, "%-20.20s %s\n",
+ name,
+ svn_dirent_local_style(path, scratch_pool)));
+ }
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+static svn_error_t *
+svn_cl__shelf_list_by_paths(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+ svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
+ const char *wc_root_abspath;
+ apr_array_header_t *targets;
+
+ /* Parse the remaining arguments as paths. */
+ SVN_ERR(targets_relative_to_a_wc(&wc_root_abspath, &targets,
+ os, opt_state->targets,
+ ctx, pool, pool));
+
+ SVN_ERR(shelf_list_by_paths(targets, wc_root_abspath, ctx, pool));
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+static svn_error_t *
+svn_cl__shelf_diff(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+ svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
+ const char *local_abspath;
+ const char *name;
+ const char *arg = NULL;
+
+ SVN_ERR(svn_dirent_get_absolute(&local_abspath, "", pool));
+
+ SVN_ERR(get_next_argument(&name, os, pool, pool));
+
+ /* Which checkpoint number? */
+ if (os->ind < os->argc)
+ SVN_ERR(get_next_argument(&arg, os, pool, pool));
+
+ if (os->ind < os->argc)
+ return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
+ _("Too many arguments"));
+
+ SVN_ERR(shelf_diff(name, arg, local_abspath,
+ opt_state->diff.summarize,
+ opt_state->depth, opt_state->ignore_ancestry,
+ ctx, pool));
+
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+static svn_error_t *
+svn_cl__shelf_drop(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+ svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
+ const char *name;
+ apr_array_header_t *targets = NULL;
+ apr_pool_t *iterpool = svn_pool_create(pool);
+ int i;
+
+ SVN_ERR(get_next_argument(&name, os, pool, pool));
+
+ SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
+ opt_state->targets,
+ ctx, FALSE, pool));
+ svn_opt_push_implicit_dot_target(targets, pool);
+
+ for (i = 0; i < targets->nelts; ++i)
+ {
+ const char *local_abspath;
+ const char *target = APR_ARRAY_IDX(targets, i, const char *);
+
+ svn_pool_clear(iterpool);
+
+ SVN_ERR(svn_dirent_get_absolute(&local_abspath, target, iterpool));
+ SVN_ERR(shelf_drop(name, local_abspath,
+ opt_state->dry_run, opt_state->quiet,
+ ctx, iterpool));
+ }
+
+ svn_pool_destroy(iterpool);
+
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+static svn_error_t *
+svn_cl__shelf_log(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+ svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
+ const char *name;
+ apr_array_header_t *targets = NULL;
+ apr_pool_t *iterpool = svn_pool_create(pool);
+ int i;
+
+ SVN_ERR(get_next_argument(&name, os, pool, pool));
+
+ SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
+ opt_state->targets,
+ ctx, FALSE, pool));
+ svn_opt_push_implicit_dot_target(targets, pool);
+
+ for (i = 0; i < targets->nelts; ++i)
+ {
+ const char *local_abspath;
+ const char *target = APR_ARRAY_IDX(targets, i, const char *);
+
+ svn_pool_clear(iterpool);
+
+ SVN_ERR(svn_dirent_get_absolute(&local_abspath, target, iterpool));
+ SVN_ERR(shelf_log(name, local_abspath, ctx, iterpool));
+ }
+
+ svn_pool_destroy(iterpool);
+
+ return SVN_NO_ERROR;
+}
+
+const svn_opt_subcommand_desc3_t
+svn_cl__cmd_table_shelf2[] =
+{
+ { "x-shelf-diff", svn_cl__shelf_diff, {0}, {N_(
+ "Show shelved changes as a diff.\n"
+ "usage: x-shelf-diff SHELF [VERSION]\n"
+ "\n"), N_(
+ " Show the changes in SHELF:VERSION (default: latest) as a diff.\n"
+ "\n"), N_(
+ " See also: 'svn diff --cl=svn:shelf:SHELF' which supports most options of\n"
+ " 'svn diff'.\n"
+ "\n"), N_(
+ " The shelving feature is EXPERIMENTAL. This command is likely to change\n"
+ " in the next release, and there is no promise of backward compatibility.\n"
+ )},
+ {opt_summarize},
+ },
+
+ { "x-shelf-drop", svn_cl__shelf_drop, {0}, {N_(
+ "Delete a shelf.\n"
+ "usage: x-shelf-drop SHELF [PATH ...]\n"
+ "\n"), N_(
+ " Delete the shelves named SHELF from the working copies containing PATH\n"
+ " (default PATH is '.')\n"
+ "\n"), N_(
+ " The shelving feature is EXPERIMENTAL. This command is likely to change\n"
+ " in the next release, and there is no promise of backward compatibility.\n"
+ )},
+ },
+
+ { "x-shelf-list", svn_cl__shelf_list, {"x-shelves"}, {N_(
+ "List shelves.\n"
+ "usage: x-shelf-list [PATH ...]\n"
+ "\n"), N_(
+ " List shelves for each working copy containing PATH (default is '.')\n"
+ " Include the first line of any log message and some details about the\n"
+ " contents of the shelf, unless '-q' is given.\n"
+ "\n"), N_(
+ " The shelving feature is EXPERIMENTAL. This command is likely to change\n"
+ " in the next release, and there is no promise of backward compatibility.\n"
+ )},
+ {'q', 'v'}
+ },
+
+ { "x-shelf-list-by-paths", svn_cl__shelf_list_by_paths, {0}, {N_(
+ "List which shelf affects each path.\n"
+ "usage: x-shelf-list-by-paths [PATH...]\n"
+ "\n"), N_(
+ " List which shelf most recently affects each path below the given PATHs.\n"
+ "\n"), N_(
+ " The shelving feature is EXPERIMENTAL. This command is likely to change\n"
+ " in the next release, and there is no promise of backward compatibility.\n"
+ )},
+ },
+
+ { "x-shelf-log", svn_cl__shelf_log, {0}, {N_(
+ "Show the versions of a shelf.\n"
+ "usage: x-shelf-log SHELF [PATH...]\n"
+ "\n"), N_(
+ " Show all versions of SHELF for each working copy containing PATH (the\n"
+ " default PATH is '.').\n"
+ "\n"), N_(
+ " The shelving feature is EXPERIMENTAL. This command is likely to change\n"
+ " in the next release, and there is no promise of backward compatibility.\n"
+ )},
+ {'q', 'v'}
+ },
+
+ { "x-shelf-save", svn_cl__shelf_save, {0}, {N_(
+ "Copy local changes onto a new version of a shelf.\n"
+ "usage: x-shelf-save SHELF [PATH...]\n"
+ "\n"), N_(
+ " Save local changes in the given PATHs as a new version of SHELF.\n"
+ " The shelf's log message can be set with -m, -F, etc.\n"
+ "\n"), N_(
+ " The same as 'svn shelve --keep-local'.\n"
+ "\n"), N_(
+ " The shelving feature is EXPERIMENTAL. This command is likely to change\n"
+ " in the next release, and there is no promise of backward compatibility.\n"
+ )},
+ {'q', opt_dry_run,
+ opt_depth, opt_targets, opt_changelist,
+ SVN_CL__LOG_MSG_OPTIONS,
+ }
+ },
+
+ { "x-shelve", svn_cl__shelf_shelve, {0}, {N_(
+ "Move local changes onto a shelf.\n"
+ "usage: x-shelve [--keep-local] SHELF [PATH...]\n"
+ "\n"), N_(
+ " Save the local changes in the given PATHs to a new or existing SHELF.\n"
+ " Revert those changes from the WC unless '--keep-local' is given.\n"
+ " The shelf's log message can be set with -m, -F, etc.\n"
+ "\n"), N_(
+ " 'svn shelve --keep-local' is the same as 'svn shelf-save'.\n"
+ "\n"), N_(
+ " The kinds of change you can shelve are committable changes to files and\n"
+ " properties, except the following kinds which are not yet supported:\n"
+ " * copies and moves\n"
+ " * mkdir and rmdir\n"
+ " Uncommittable states such as conflicts, unversioned and missing cannot\n"
+ " be shelved.\n"
+ "\n"), N_(
+ " To bring back shelved changes, use 'svn unshelve SHELF'.\n"
+ "\n"), N_(
+ " Shelves are currently stored under <WC>/.svn/experimental/shelves/ .\n"
+ " (In Subversion 1.10, shelves were stored under <WC>/.svn/shelves/ as\n"
+ " patch files. To recover a shelf created by 1.10, either use a 1.10\n"
+ " client to find and unshelve it, or find the patch file and use any\n"
+ " 1.10 or later 'svn patch' to apply it.)\n"
+ "\n"), N_(
+ " The shelving feature is EXPERIMENTAL. This command is likely to change\n"
+ " in the next release, and there is no promise of backward compatibility.\n"
+ )},
+ {'q', opt_dry_run, opt_keep_local,
+ opt_depth, opt_targets, opt_changelist,
+ SVN_CL__LOG_MSG_OPTIONS,
+ } },
+
+ { "x-unshelve", svn_cl__shelf_unshelve, {0}, {N_(
+ "Copy shelved changes back into the WC.\n"
+ "usage: x-unshelve [--drop] [SHELF [VERSION]]\n"
+ "\n"), N_(
+ " Apply the changes stored in SHELF to the working copy.\n"
+ " SHELF defaults to the newest shelf.\n"
+ "\n"), N_(
+ " Apply the newest version of the shelf, by default. If VERSION is\n"
+ " specified, apply that version and discard all versions newer than that.\n"
+ " In any case, retain the unshelved version and versions older than that\n"
+ " (unless --drop is specified).\n"
+ "\n"), N_(
+ " With --drop, delete the entire shelf (like 'svn shelf-drop') after\n"
+ " successfully unshelving with no conflicts.\n"
+ "\n"), N_(
+ " The working files involved should be in a clean, unmodified state\n"
+ " before using this command. To roll back to an older version of the\n"
+ " shelf, first ensure any current working changes are removed, such as\n"
+ " by shelving or reverting them, and then unshelve the desired version.\n"
+ "\n"), N_(
+ " Unshelve normally refuses to apply any changes if any path involved is\n"
+ " already modified (or has any other abnormal status) in the WC. With\n"
+ " --force, it does not check and may error out and/or produce partial or\n"
+ " unexpected results.\n"
+ "\n"), N_(
+ " The shelving feature is EXPERIMENTAL. This command is likely to change\n"
+ " in the next release, and there is no promise of backward compatibility.\n"
+ )},
+ {opt_drop, 'q', opt_dry_run, opt_force} },
+
+ { NULL, NULL, {0}, {NULL}, {0} }
+};
+
diff --git a/subversion/svn/shelf2-cmd.h b/subversion/svn/shelf2-cmd.h
new file mode 100644
index 000000000000..b058073cce7b
--- /dev/null
+++ b/subversion/svn/shelf2-cmd.h
@@ -0,0 +1,49 @@
+/*
+ * shelf2-cmd.h: experimental shelving v2
+ *
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ */
+
+/* ==================================================================== */
+
+
+
+#ifndef SVN_SHELF2_CMD_H
+#define SVN_SHELF2_CMD_H
+
+/*** Includes. ***/
+#include <apr_getopt.h>
+
+#include "svn_opt.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+extern const svn_opt_subcommand_desc3_t svn_cl__cmd_table_shelf2[];
+/*extern const apr_getopt_option_t svn_cl__options_shelving2[];*/
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* SVN_SHELF2_CMD_H */
diff --git a/subversion/svn/shelve-cmd.c b/subversion/svn/shelve-cmd.c
deleted file mode 100644
index df88a651d9c2..000000000000
--- a/subversion/svn/shelve-cmd.c
+++ /dev/null
@@ -1,369 +0,0 @@
-/*
- * shelve-cmd.c -- Shelve commands.
- *
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- */
-
-/* We define this here to remove any further warnings about the usage of
- experimental functions in this file. */
-#define SVN_EXPERIMENTAL
-
-#include "svn_client.h"
-#include "svn_error_codes.h"
-#include "svn_error.h"
-#include "svn_path.h"
-#include "svn_utf.h"
-
-#include "cl.h"
-
-#include "svn_private_config.h"
-#include "private/svn_sorts_private.h"
-
-
-/* First argument should be the name of a shelved change. */
-static svn_error_t *
-get_name(const char **name,
- apr_getopt_t *os,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
-{
- apr_array_header_t *args;
-
- SVN_ERR(svn_opt_parse_num_args(&args, os, 1, scratch_pool));
- SVN_ERR(svn_utf_cstring_to_utf8(name,
- APR_ARRAY_IDX(args, 0, const char *),
- result_pool));
- return SVN_NO_ERROR;
-}
-
-/* A comparison function for svn_sort__hash(), comparing the mtime of two
- svn_client_shelved_patch_info_t's. */
-static int
-compare_shelved_patch_infos_by_mtime(const svn_sort__item_t *a,
- const svn_sort__item_t *b)
-{
- svn_client_shelved_patch_info_t *a_val = a->value;
- svn_client_shelved_patch_info_t *b_val = b->value;
-
- return (a_val->dirent->mtime < b_val->dirent->mtime)
- ? -1 : (a_val->dirent->mtime > b_val->dirent->mtime) ? 1 : 0;
-}
-
-/* Return a list of shelved changes sorted by patch file mtime, oldest first.
- */
-static svn_error_t *
-list_sorted_by_date(apr_array_header_t **list,
- const char *local_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *scratch_pool)
-{
- apr_hash_t *shelved_patch_infos;
-
- SVN_ERR(svn_client_shelves_list(&shelved_patch_infos, local_abspath,
- ctx, scratch_pool, scratch_pool));
- *list = svn_sort__hash(shelved_patch_infos,
- compare_shelved_patch_infos_by_mtime,
- scratch_pool);
- return SVN_NO_ERROR;
-}
-
-#ifndef WIN32
-/* Run CMD with ARGS.
- * Send its stdout to the parent's stdout. Disconnect its stdin and stderr.
- */
-static svn_error_t *
-run_cmd(const char *cmd,
- const char *const *args,
- apr_pool_t *scratch_pool)
-{
- apr_status_t apr_err;
- apr_file_t *outfile;
- svn_error_t *err;
- int exitcode;
-
- apr_err = apr_file_open_stdout(&outfile, scratch_pool);
- if (apr_err)
- return svn_error_wrap_apr(apr_err, "Can't open stdout");
-
- err = svn_io_run_cmd(NULL /*path*/, cmd, args,
- &exitcode, NULL /*exitwhy*/,
- TRUE /*inherit*/,
- NULL /*infile*/, outfile, NULL /*errfile*/,
- scratch_pool);
- if (err || exitcode)
- return svn_error_createf(SVN_ERR_EXTERNAL_PROGRAM, err,
- _("Could not run external command '%s'"), cmd);
- return SVN_NO_ERROR;
-}
-#endif
-
-/* Display a list of shelved changes */
-static svn_error_t *
-shelves_list(const char *local_abspath,
- svn_boolean_t diffstat,
- svn_client_ctx_t *ctx,
- apr_pool_t *scratch_pool)
-{
- apr_array_header_t *list;
- int i;
-
- SVN_ERR(list_sorted_by_date(&list,
- local_abspath, ctx, scratch_pool));
-
- for (i = 0; i < list->nelts; i++)
- {
- const svn_sort__item_t *item = &APR_ARRAY_IDX(list, i, svn_sort__item_t);
- const char *name = item->key;
- svn_client_shelved_patch_info_t *info = item->value;
- int age = (int)((apr_time_now() - info->mtime) / 1000000 / 60);
- apr_hash_t *paths;
-
- SVN_ERR(svn_client_shelf_get_paths(&paths,
- name, local_abspath, ctx,
- scratch_pool, scratch_pool));
-
- SVN_ERR(svn_cmdline_printf(scratch_pool,
- _("%-30s %6d mins old %10ld bytes %4d paths changed\n"),
- name, age, (long)info->dirent->filesize,
- apr_hash_count(paths)));
- SVN_ERR(svn_cmdline_printf(scratch_pool,
- _(" %.50s\n"),
- info->message));
-
- if (diffstat)
- {
-#ifndef WIN32
- const char *args[4];
- svn_error_t *err;
-
- args[0] = "diffstat";
- args[1] = "-p0";
- args[2] = info->patch_path;
- args[3] = NULL;
- err = run_cmd("diffstat", args, scratch_pool);
- if (err)
- svn_error_clear(err);
- else
- SVN_ERR(svn_cmdline_printf(scratch_pool,
- "\n"));
-#endif
- }
- }
-
- return SVN_NO_ERROR;
-}
-
-/* Find the name of the youngest shelved change.
- */
-static svn_error_t *
-name_of_youngest(const char **name_p,
- const char *local_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
-{
- apr_array_header_t *list;
- const svn_sort__item_t *youngest_item;
-
- SVN_ERR(list_sorted_by_date(&list,
- local_abspath, ctx, scratch_pool));
- if (list->nelts == 0)
- return svn_error_create(SVN_ERR_CL_INSUFFICIENT_ARGS, NULL,
- _("No shelved changes found"));
-
- youngest_item = &APR_ARRAY_IDX(list, list->nelts - 1, svn_sort__item_t);
- *name_p = youngest_item->key;
- return SVN_NO_ERROR;
-}
-
-/* This implements the `svn_opt_subcommand_t' interface. */
-svn_error_t *
-svn_cl__shelve(apr_getopt_t *os,
- void *baton,
- apr_pool_t *pool)
-{
- svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
- svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
- const char *local_abspath;
- const char *name;
- apr_array_header_t *targets;
- svn_boolean_t has_changes;
-
- if (opt_state->quiet)
- ctx->notify_func2 = NULL; /* Easy out: avoid unneeded work */
-
- SVN_ERR(svn_dirent_get_absolute(&local_abspath, "", pool));
-
- if (opt_state->list)
- {
- if (os->ind < os->argc)
- return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, 0, NULL);
-
- SVN_ERR(shelves_list(local_abspath,
- ! opt_state->quiet /*diffstat*/,
- ctx, pool));
- return SVN_NO_ERROR;
- }
-
- SVN_ERR(get_name(&name, os, pool, pool));
-
- if (opt_state->remove)
- {
- if (os->ind < os->argc)
- return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, 0, NULL);
-
- SVN_ERR(svn_client_shelves_delete(name, local_abspath,
- opt_state->dry_run,
- ctx, pool));
- if (! opt_state->quiet)
- SVN_ERR(svn_cmdline_printf(pool, "deleted '%s'\n", name));
- return SVN_NO_ERROR;
- }
-
- /* Parse the remaining arguments as paths. */
- SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
- opt_state->targets,
- ctx, FALSE, pool));
- svn_opt_push_implicit_dot_target(targets, pool);
-
- {
- svn_depth_t depth = opt_state->depth;
- svn_error_t *err;
-
- /* shelve has no implicit dot-target `.', so don't you put that
- code here! */
- if (!targets->nelts)
- return svn_error_create(SVN_ERR_CL_INSUFFICIENT_ARGS, 0, NULL);
-
- SVN_ERR(svn_cl__check_targets_are_local_paths(targets));
-
- if (depth == svn_depth_unknown)
- depth = svn_depth_infinity;
-
- SVN_ERR(svn_cl__eat_peg_revisions(&targets, targets, pool));
-
- if (ctx->log_msg_func3)
- SVN_ERR(svn_cl__make_log_msg_baton(&ctx->log_msg_baton3,
- opt_state, NULL, ctx->config,
- pool));
- err = svn_client_shelve(name,
- targets, depth, opt_state->changelists,
- opt_state->keep_local, opt_state->dry_run,
- ctx, pool);
- if (ctx->log_msg_func3)
- SVN_ERR(svn_cl__cleanup_log_msg(ctx->log_msg_baton3,
- err, pool));
- else
- SVN_ERR(err);
- }
-
- /* If no modifications were shelved, throw an error. */
- SVN_ERR(svn_client_shelf_has_changes(&has_changes,
- name, local_abspath, ctx, pool));
- if (! has_changes)
- {
- SVN_ERR(svn_client_shelves_delete(name, local_abspath,
- opt_state->dry_run, ctx, pool));
- return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
- _("No changes were shelved"));
- }
-
- if (! opt_state->quiet)
- SVN_ERR(svn_cmdline_printf(pool, "shelved '%s'\n", name));
-
- return SVN_NO_ERROR;
-}
-
-/* This implements the `svn_opt_subcommand_t' interface. */
-svn_error_t *
-svn_cl__unshelve(apr_getopt_t *os,
- void *baton,
- apr_pool_t *pool)
-{
- svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
- svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
- const char *local_abspath;
- const char *name;
- apr_array_header_t *targets;
-
- SVN_ERR(svn_dirent_get_absolute(&local_abspath, "", pool));
-
- if (opt_state->list)
- {
- if (os->ind < os->argc)
- return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, 0, NULL);
-
- SVN_ERR(shelves_list(local_abspath,
- ! opt_state->quiet /*diffstat*/,
- ctx, pool));
- return SVN_NO_ERROR;
- }
-
- if (os->ind < os->argc)
- {
- SVN_ERR(get_name(&name, os, pool, pool));
- }
- else
- {
- SVN_ERR(name_of_youngest(&name, local_abspath, ctx, pool, pool));
- SVN_ERR(svn_cmdline_printf(pool,
- _("unshelving the youngest change, '%s'\n"),
- name));
- }
-
- /* There should be no remaining arguments. */
- SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
- opt_state->targets,
- ctx, FALSE, pool));
- if (targets->nelts)
- return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, 0, NULL);
-
- if (opt_state->quiet)
- ctx->notify_func2 = NULL; /* Easy out: avoid unneeded work */
-
- SVN_ERR(svn_client_unshelve(name, local_abspath,
- opt_state->keep_local, opt_state->dry_run,
- ctx, pool));
- if (! opt_state->quiet)
- SVN_ERR(svn_cmdline_printf(pool, "unshelved '%s'\n", name));
-
- return SVN_NO_ERROR;
-}
-
-/* This implements the `svn_opt_subcommand_t' interface. */
-svn_error_t *
-svn_cl__shelves(apr_getopt_t *os,
- void *baton,
- apr_pool_t *pool)
-{
- svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
- svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
- const char *local_abspath;
-
- /* There should be no remaining arguments. */
- if (os->ind < os->argc)
- return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, 0, NULL);
-
- SVN_ERR(svn_dirent_get_absolute(&local_abspath, "", pool));
- SVN_ERR(shelves_list(local_abspath, ! opt_state->quiet /*diffstat*/,
- ctx, pool));
-
- return SVN_NO_ERROR;
-}
diff --git a/subversion/svn/svn.c b/subversion/svn/svn.c
index 48b894f49983..3c3ac6d5068e 100644
--- a/subversion/svn/svn.c
+++ b/subversion/svn/svn.c
@@ -52,6 +52,8 @@
#include "svn_hash.h"
#include "svn_version.h"
#include "cl.h"
+#include "shelf2-cmd.h"
+#include "shelf-cmd.h"
#include "private/svn_opt_private.h"
#include "private/svn_cmdline_private.h"
@@ -63,95 +65,6 @@
/*** Option Processing ***/
-/* Add an identifier here for long options that don't have a short
- option. Options that have both long and short options should just
- use the short option letter as identifier. */
-typedef enum svn_cl__longopt_t {
- opt_auth_password = SVN_OPT_FIRST_LONGOPT_ID,
- opt_auth_password_from_stdin,
- opt_auth_username,
- opt_autoprops,
- opt_changelist,
- opt_config_dir,
- opt_config_options,
- /* diff options */
- opt_diff_cmd,
- opt_internal_diff,
- opt_no_diff_added,
- opt_no_diff_deleted,
- opt_show_copies_as_adds,
- opt_notice_ancestry,
- opt_summarize,
- opt_use_git_diff_format,
- opt_ignore_properties,
- opt_properties_only,
- opt_patch_compatible,
- /* end of diff options */
- opt_dry_run,
- opt_editor_cmd,
- opt_encoding,
- opt_force_log,
- opt_force,
- opt_keep_changelists,
- opt_ignore_ancestry,
- opt_ignore_externals,
- opt_incremental,
- opt_merge_cmd,
- opt_native_eol,
- opt_new_cmd,
- opt_no_auth_cache,
- opt_no_autoprops,
- opt_no_ignore,
- opt_no_unlock,
- opt_non_interactive,
- opt_force_interactive,
- opt_old_cmd,
- opt_record_only,
- opt_relocate,
- opt_remove,
- opt_revprop,
- opt_stop_on_copy,
- opt_strict, /* ### DEPRECATED */
- opt_targets,
- opt_depth,
- opt_set_depth,
- opt_version,
- opt_xml,
- opt_keep_local,
- opt_with_revprop,
- opt_with_all_revprops,
- opt_with_no_revprops,
- opt_parents,
- opt_accept,
- opt_show_revs,
- opt_reintegrate,
- opt_trust_server_cert,
- opt_trust_server_cert_failures,
- opt_strip,
- opt_ignore_keywords,
- opt_reverse_diff,
- opt_ignore_whitespace,
- opt_diff,
- opt_allow_mixed_revisions,
- opt_include_externals,
- opt_show_inherited_props,
- opt_search,
- opt_search_and,
- opt_mergeinfo_log,
- opt_remove_unversioned,
- opt_remove_ignored,
- opt_no_newline,
- opt_show_passwords,
- opt_pin_externals,
- opt_show_item,
- opt_adds_as_modification,
- opt_vacuum_pristines,
- opt_delete,
- opt_keep_shelved,
- opt_list
-} svn_cl__longopt_t;
-
-
/* Option codes and descriptions for the command line client.
*
* The entire list must be terminated with an entry of nulls.
@@ -166,7 +79,8 @@ const apr_getopt_option_t svn_cl__options[] =
{"message", 'm', 1, N_("specify log message ARG")},
{"quiet", 'q', 0, N_("print nothing, or only summary information")},
{"recursive", 'R', 0, N_("descend recursively, same as --depth=infinity")},
- {"non-recursive", 'N', 0, N_("obsolete; try --depth=files or --depth=immediates")},
+ {"non-recursive", 'N', 0, N_("obsolete")},
+ {"human-readable",'H', 0, N_("show human-readable output")},
{"change", 'c', 1,
N_("the change made by revision ARG (like -r ARG-1:ARG)\n"
" "
@@ -421,6 +335,8 @@ const apr_getopt_option_t svn_cl__options[] =
{"remove-unversioned", opt_remove_unversioned, 0,
N_("remove unversioned items")},
{"remove-ignored", opt_remove_ignored, 0, N_("remove ignored items")},
+ {"remove-added", opt_remove_added, 0,
+ N_("reverting an added item will remove it from disk")},
{"no-newline", opt_no_newline, 0, N_("do not output the trailing newline")},
{"show-passwords", opt_show_passwords, 0, N_("show cached passwords")},
{"pin-externals", opt_pin_externals, 0,
@@ -444,6 +360,10 @@ const apr_getopt_option_t svn_cl__options[] =
" "
" 'repos-uuid' UUID of repository\n"
" "
+ " 'repos-size' for files, the size of TARGET\n"
+ " "
+ " in the repository\n"
+ " "
" 'revision' specified or implied revision\n"
" "
" 'last-changed-revision'\n"
@@ -460,7 +380,13 @@ const apr_getopt_option_t svn_cl__options[] =
" "
" author of 'last-changed-revision'\n"
" "
- " 'wc-root' root of TARGET's working copy")},
+ " 'wc-root' root of TARGET's working copy\n"
+ " "
+ " 'schedule' 'normal','add','delete','replace'\n"
+ " "
+ " 'depth' checkout depth of TARGET in WC\n"
+ " "
+ " 'changelist' changelist of TARGET in WC")},
{"adds-as-modification", opt_adds_as_modification, 0,
N_("Local additions are merged with incoming additions\n"
@@ -474,9 +400,13 @@ const apr_getopt_option_t svn_cl__options[] =
{"vacuum-pristines", opt_vacuum_pristines, 0,
N_("remove unreferenced pristines from .svn directory")},
- {"list", opt_list, 0, N_("list shelved patches")},
- {"keep-shelved", opt_keep_shelved, 0, N_("do not delete the shelved patch")},
- {"delete", opt_delete, 0, N_("delete the shelved patch")},
+ {"drop", opt_drop, 0,
+ N_("drop shelf after successful unshelve")},
+
+ {"x-viewspec", opt_viewspec, 1,
+ N_("print the working copy layout, formatted according\n"
+ " "
+ "to ARG: 'classic' or 'svn11'")},
/* Long-opt Aliases
*
@@ -515,100 +445,120 @@ const int svn_cl__global_options[] =
opt_config_dir, opt_config_options, 0
};
-/* Options for giving a log message. (Some of these also have other uses.)
- */
-#define SVN_CL__LOG_MSG_OPTIONS 'm', 'F', \
- opt_force_log, \
- opt_editor_cmd, \
- opt_encoding, \
- opt_with_revprop
-
-const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
+static const svn_opt_subcommand_desc3_t
+svn_cl__cmd_table_main[] =
{
- { "add", svn_cl__add, {0}, N_
- ("Put files and directories under version control, scheduling\n"
- "them for addition to repository. They will be added in next commit.\n"
- "usage: add PATH...\n"),
+ { "add", svn_cl__add, {0}, {N_(
+ "Put new files and directories under version control.\n"
+ "usage: add PATH...\n"
+ "\n"), N_(
+ " Schedule unversioned PATHs for addition, so they will become versioned and\n"
+ " be added to the repository in the next commit. Recurse into directories by\n"
+ " default (see the --depth option).\n"
+ "\n"), N_(
+ " The 'svn add' command is only necessary for files and directories that are\n"
+ " not yet under version control. Unversioned files and directories can be\n"
+ " identified with 'svn status' (see 'svn help status').\n"
+ "\n"), N_(
+ " The effects of 'svn add' can be undone with 'svn revert' before the addition\n"
+ " has been committed. Once committed, a path can be removed from version\n"
+ " control with 'svn delete', and in some circumstances by running a reverse-\n"
+ " merge (see 'svn help merge' for details).\n"
+ "\n"), N_(
+ " With --force, add all the unversioned paths found in PATHs and ignore the\n"
+ " rest; otherwise, error out if any specified paths are already versioned.\n"
+ "\n"), N_(
+ " The selection of items to add may be influenced by the 'ignores' feature.\n"
+ " Properties may be attached to the items as configured by the 'auto-props'\n"
+ " feature.\n"
+ )},
{opt_targets, 'N', opt_depth, 'q', opt_force, opt_no_ignore, opt_autoprops,
opt_no_autoprops, opt_parents },
- {{opt_parents, N_("add intermediate parents")}} },
-
- { "auth", svn_cl__auth, {0}, N_
- ("Manage cached authentication credentials.\n"
- "usage: 1. svn auth [PATTERN ...]\n"
- "usage: 2. svn auth --remove PATTERN [PATTERN ...]\n"
- "\n"
- " With no arguments, list all cached authentication credentials.\n"
- " Authentication credentials include usernames, passwords,\n"
- " SSL certificates, and SSL client-certificate passphrases.\n"
- " If PATTERN is specified, only list credentials with attributes matching one\n"
- " or more patterns. With the --remove option, remove cached authentication\n"
- " credentials matching one or more patterns.\n"
- "\n"
- " If more than one pattern is specified credentials are considered only if they\n"
- " match all specified patterns. Patterns are matched case-sensitively and may\n"
- " contain glob wildcards:\n"
- " ? matches any single character\n"
- " * matches a sequence of arbitrary characters\n"
- " [abc] matches any of the characters listed inside the brackets\n"
- " Note that wildcards will usually need to be quoted or escaped on the\n"
- " command line because many command shells will interfere by trying to\n"
- " expand them.\n"),
+ {{opt_parents, N_("add intermediate parents")},
+ {'N', N_("obsolete; same as --depth=empty")},
+ {opt_force, N_("ignore already versioned paths")}} },
+
+ { "auth", svn_cl__auth, {0}, {N_(
+ "Manage cached authentication credentials.\n"
+ "usage: 1. svn auth [PATTERN ...]\n"
+ " 2. svn auth --remove PATTERN [PATTERN ...]\n"
+ "\n"), N_(
+ " With no arguments, list all cached authentication credentials.\n"
+ " Authentication credentials include usernames, passwords,\n"
+ " SSL certificates, and SSL client-certificate passphrases.\n"
+ " If PATTERN is specified, only list credentials with attributes matching one\n"
+ " or more patterns. With the --remove option, remove cached authentication\n"
+ " credentials matching one or more patterns.\n"
+ "\n"), N_(
+ " If more than one pattern is specified credentials are considered only if they\n"
+ " match all specified patterns. Patterns are matched case-sensitively and may\n"
+ " contain glob wildcards:\n"
+ " ? matches any single character\n"
+ " * matches a sequence of arbitrary characters\n"
+ " [abc] matches any of the characters listed inside the brackets\n"
+ " Note that wildcards will usually need to be quoted or escaped on the\n"
+ " command line because many command shells will interfere by trying to\n"
+ " expand them.\n"
+ )},
{ opt_remove, opt_show_passwords },
{ {opt_remove, N_("remove matching authentication credentials")} }
},
- { "blame", svn_cl__blame, {"praise", "annotate", "ann"}, N_
- ("Show when each line of a file was last (or\n"
+ { "blame", svn_cl__blame, {"praise", "annotate", "ann"}, {N_(
+ "Show when each line of a file was last (or\n"
"next) changed.\n"
"usage: blame [-rM:N] TARGET[@REV]...\n"
- "\n"
+ "\n"), N_(
" Annotate each line of a file with the revision number and author of the\n"
" last change (or optionally the next change) to that line.\n"
- "\n"
+ "\n"), N_(
" With no revision range (same as -r0:REV), or with '-r M:N' where M < N,\n"
" annotate each line that is present in revision N of the file, with\n"
" the last revision at or before rN that changed or added the line,\n"
" looking back no further than rM.\n"
- "\n"
+ "\n"), N_(
" With a reverse revision range '-r M:N' where M > N,\n"
" annotate each line that is present in revision N of the file, with\n"
" the next revision after rN that changed or deleted the line,\n"
" looking forward no further than rM.\n"
- "\n"
+ "\n"), N_(
" If specified, REV determines in which revision the target is first\n"
" looked up.\n"
- "\n"
- " Write the annotated result to standard output.\n"),
+ "\n"), N_(
+ " Write the annotated result to standard output.\n"
+ )},
{'r', 'v', 'g', opt_incremental, opt_xml, 'x', opt_force} },
- { "cat", svn_cl__cat, {0}, N_
- ("Output the content of specified files or URLs.\n"
+ { "cat", svn_cl__cat, {0}, {N_(
+ "Output the content of specified files or URLs.\n"
"usage: cat TARGET[@REV]...\n"
- "\n"
+ "\n"), N_(
" If specified, REV determines in which revision the target is first\n"
- " looked up.\n"),
+ " looked up.\n"
+ )},
{'r', opt_ignore_keywords} },
- { "changelist", svn_cl__changelist, {"cl"}, N_
- ("Associate (or dissociate) changelist CLNAME with the named files.\n"
+ { "changelist", svn_cl__changelist, {"cl"}, {N_(
+ "Associate (or dissociate) changelist CLNAME with the named\n"
+ "files.\n"
"usage: 1. changelist CLNAME PATH...\n"
- " 2. changelist --remove PATH...\n"),
+ " 2. changelist --remove PATH...\n"
+ )},
{ 'q', 'R', opt_depth, opt_remove, opt_targets, opt_changelist} },
- { "checkout", svn_cl__checkout, {"co"}, N_
- ("Check out a working copy from a repository.\n"
+ { "checkout", svn_cl__checkout, {"co"}, {N_(
+ "Check out a working copy from a repository.\n"
"usage: checkout URL[@REV]... [PATH]\n"
- "\n"
+ "\n"), N_(
" If specified, REV determines in which revision the URL is first\n"
" looked up.\n"
- "\n"
+ "\n"), N_(
" If PATH is omitted, the basename of the URL will be used as\n"
" the destination. If multiple URLs are given each will be checked\n"
" out into a sub-directory of PATH, with the name of the sub-directory\n"
" being the basename of the URL.\n"
- "\n"
+ "\n"), N_(
" If --force is used, unversioned obstructing paths in the working\n"
" copy destination do not automatically cause the check out to fail.\n"
" If the obstructing path is the same type (file or directory) as the\n"
@@ -619,62 +569,67 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" obstruction and the repository are treated like a local modification\n"
" to the working copy. All properties from the repository are applied\n"
" to the obstructing path.\n"
- "\n"
+ "\n"), N_(
" See also 'svn help update' for a list of possible characters\n"
- " reporting the action taken.\n"),
- {'r', 'q', 'N', opt_depth, opt_force, opt_ignore_externals} },
+ " reporting the action taken.\n"
+ )},
+ {'r', 'q', 'N', opt_depth, opt_force, opt_ignore_externals},
+ {{'N', N_("obsolete; same as --depth=files")}} },
- { "cleanup", svn_cl__cleanup, {0}, N_
- ("Either recover from an interrupted operation that left the working copy locked,\n"
- "or remove unwanted files.\n"
+ { "cleanup", svn_cl__cleanup, {0}, {N_(
+ "Either recover from an interrupted operation that left the working\n"
+ "copy locked, or remove unwanted files.\n"
"usage: 1. cleanup [WCPATH...]\n"
" 2. cleanup --remove-unversioned [WCPATH...]\n"
" cleanup --remove-ignored [WCPATH...]\n"
" 3. cleanup --vacuum-pristines [WCPATH...]\n"
- "\n"
+ "\n"), N_(
" 1. When none of the options --remove-unversioned, --remove-ignored, and\n"
" --vacuum-pristines is specified, remove all write locks (shown as 'L' by\n"
" the 'svn status' command) from the working copy. Usually, this is only\n"
" necessary if a Subversion client has crashed while using the working copy,\n"
" leaving it in an unusable state.\n"
- "\n"
+ "\n"), N_(
" WARNING: There is no mechanism that will protect write locks still\n"
" being used by other Subversion clients. Running this command\n"
" without any options while another client is using the working\n"
" copy can corrupt the working copy beyond repair!\n"
- "\n"
+ "\n"), N_(
" 2. If the --remove-unversioned option or the --remove-ignored option\n"
" is given, remove any unversioned or ignored items within WCPATH.\n"
" Note that the 'svn status' command shows unversioned items as '?',\n"
" and ignored items as 'I' if the --no-ignore option is given to it.\n"
- "\n"
+ "\n"), N_(
" 3. If the --vacuum-pristines option is given, remove pristine copies of\n"
" files which are stored inside the .svn directory and which are no longer\n"
- " referenced by any file in the working copy.\n"),
+ " referenced by any file in the working copy.\n"
+ )},
{ opt_remove_unversioned, opt_remove_ignored, opt_vacuum_pristines,
- opt_include_externals, 'q', opt_merge_cmd },
+ opt_include_externals, 'q', opt_merge_cmd },
{ { opt_merge_cmd, N_("deprecated and ignored") } } },
-
- { "commit", svn_cl__commit, {"ci"},
- N_("Send changes from your working copy to the repository.\n"
- "usage: commit [PATH...]\n"
- "\n"
- " A log message must be provided, but it can be empty. If it is not\n"
- " given by a --message or --file option, an editor will be started.\n"
- "\n"
- " If any targets are (or contain) locked items, those will be\n"
- " unlocked after a successful commit, unless --no-unlock is given.\n"
- "\n"
- " If --include-externals is given, also commit file and directory\n"
- " externals reached by recursion. Do not commit externals with a\n"
- " fixed revision.\n"),
+
+ { "commit", svn_cl__commit, {"ci"}, {N_(
+ "Send changes from your working copy to the repository.\n"
+ "usage: commit [PATH...]\n"
+ "\n"), N_(
+ " A log message must be provided, but it can be empty. If it is not\n"
+ " given by a --message or --file option, an editor will be started.\n"
+ "\n"), N_(
+ " If any targets are (or contain) locked items, those will be\n"
+ " unlocked after a successful commit, unless --no-unlock is given.\n"
+ "\n"), N_(
+ " If --include-externals is given, also commit file and directory\n"
+ " externals reached by recursion. Do not commit externals with a\n"
+ " fixed revision.\n"
+ )},
{'q', 'N', opt_depth, opt_targets, opt_no_unlock, SVN_CL__LOG_MSG_OPTIONS,
- opt_changelist, opt_keep_changelists, opt_include_externals} },
+ opt_changelist, opt_keep_changelists, opt_include_externals},
+ {{'N', N_("obsolete; same as --depth=empty")}} },
- { "copy", svn_cl__copy, {"cp"}, N_
- ("Copy files and directories in a working copy or repository.\n"
+ { "copy", svn_cl__copy, {"cp"}, {N_(
+ "Copy files and directories in a working copy or repository.\n"
"usage: copy SRC[@REV]... DST\n"
- "\n"
+ "\n"), N_(
" SRC and DST can each be either a working copy (WC) path or URL:\n"
" WC -> WC: copy and schedule for addition (with history)\n"
" WC -> URL: immediately commit a copy of WC to URL\n"
@@ -683,33 +638,35 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" All the SRCs must be of the same type. If DST is an existing directory,\n"
" the sources will be added as children of DST. When copying multiple\n"
" sources, DST must be an existing directory.\n"
- "\n"
+ "\n"), N_(
" WARNING: For compatibility with previous versions of Subversion,\n"
" copies performed using two working copy paths (WC -> WC) will not\n"
" contact the repository. As such, they may not, by default, be able\n"
" to propagate merge tracking information from the source of the copy\n"
- " to the destination.\n"),
+ " to the destination.\n"
+ )},
{'r', 'q', opt_ignore_externals, opt_parents, SVN_CL__LOG_MSG_OPTIONS,
opt_pin_externals} },
- { "delete", svn_cl__delete, {"del", "remove", "rm"}, N_
- ("Remove files and directories from version control.\n"
+ { "delete", svn_cl__delete, {"del", "remove", "rm"}, {N_(
+ "Remove files and directories from version control.\n"
"usage: 1. delete PATH...\n"
" 2. delete URL...\n"
- "\n"
+ "\n"), N_(
" 1. Each item specified by a PATH is scheduled for deletion upon\n"
" the next commit. Files, and directories that have not been\n"
" committed, are immediately removed from the working copy\n"
" unless the --keep-local option is given.\n"
" PATHs that are, or contain, unversioned or modified items will\n"
" not be removed unless the --force or --keep-local option is given.\n"
- "\n"
+ "\n"), N_(
" 2. Each item specified by a URL is deleted from the repository\n"
- " via an immediate commit.\n"),
+ " via an immediate commit.\n"
+ )},
{opt_force, 'q', opt_targets, SVN_CL__LOG_MSG_OPTIONS, opt_keep_local} },
- { "diff", svn_cl__diff, {"di"}, N_
- ("Display local changes or differences between two revisions or paths.\n"
+ { "diff", svn_cl__diff, {"di"}, {N_(
+ "Display local changes or differences between two revisions or paths.\n"
"usage: 1. diff\n"
" 2. diff [-c M | -r N[:M]] [TARGET[@REV]...]\n"
" 3. diff [-r N[:M]] --old=OLD-TGT[@OLDREV] [--new=NEW-TGT[@NEWREV]] \\\n"
@@ -717,16 +674,16 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" 4. diff OLD-URL[@OLDREV] NEW-URL[@NEWREV]\n"
" 5. diff OLD-URL[@OLDREV] NEW-PATH[@NEWREV]\n"
" 6. diff OLD-PATH[@OLDREV] NEW-URL[@NEWREV]\n"
- "\n"
+ "\n"), N_(
" 1. Use just 'svn diff' to display local modifications in a working copy.\n"
- "\n"
+ "\n"), N_(
" 2. Display the changes made to TARGETs as they are seen in REV between\n"
" two revisions. TARGETs may be all working copy paths or all URLs.\n"
" If TARGETs are working copy paths, N defaults to BASE and M to the\n"
" working copy; if URLs, N must be specified and M defaults to HEAD.\n"
" The '-c M' option is equivalent to '-r N:M' where N = M-1.\n"
" Using '-c -M' does the reverse: '-r M:N' where N = M-1.\n"
- "\n"
+ "\n"), N_(
" 3. Display the differences between OLD-TGT as it was seen in OLDREV and\n"
" NEW-TGT as it was seen in NEWREV. PATHs, if given, are relative to\n"
" OLD-TGT and NEW-TGT and restrict the output to differences for those\n"
@@ -735,164 +692,178 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" to N, -r N:M makes OLDREV default to N and NEWREV default to M.\n"
" If OLDREV or NEWREV are not specified, they default to WORKING for\n"
" working copy targets and to HEAD for URL targets.\n"
- "\n"
+ "\n"), N_(
" Either or both OLD-TGT and NEW-TGT may also be paths to unversioned\n"
" targets. Revisions cannot be specified for unversioned targets.\n"
" Both targets must be of the same node kind (file or directory).\n"
" Diffing unversioned targets against URL targets is not supported.\n"
- "\n"
+ "\n"), N_(
" 4. Shorthand for 'svn diff --old=OLD-URL[@OLDREV] --new=NEW-URL[@NEWREV]'\n"
" 5. Shorthand for 'svn diff --old=OLD-URL[@OLDREV] --new=NEW-PATH[@NEWREV]'\n"
- " 6. Shorthand for 'svn diff --old=OLD-PATH[@OLDREV] --new=NEW-URL[@NEWREV]'\n"),
+ " 6. Shorthand for 'svn diff --old=OLD-PATH[@OLDREV] --new=NEW-URL[@NEWREV]'\n"
+ )},
{'r', 'c', opt_old_cmd, opt_new_cmd, 'N', opt_depth, opt_diff_cmd,
opt_internal_diff, 'x', opt_no_diff_added, opt_no_diff_deleted,
opt_ignore_properties, opt_properties_only,
opt_show_copies_as_adds, opt_notice_ancestry, opt_summarize, opt_changelist,
- opt_force, opt_xml, opt_use_git_diff_format, opt_patch_compatible} },
- { "export", svn_cl__export, {0}, N_
- ("Create an unversioned copy of a tree.\n"
+ opt_force, opt_xml, opt_use_git_diff_format, opt_patch_compatible},
+ {{'N', N_("obsolete; same as --depth=files")}} },
+
+ { "export", svn_cl__export, {0}, {N_(
+ "Create an unversioned copy of a tree.\n"
"usage: 1. export [-r REV] URL[@PEGREV] [PATH]\n"
" 2. export [-r REV] PATH1[@PEGREV] [PATH2]\n"
- "\n"
+ "\n"), N_(
" 1. Exports a clean directory tree from the repository specified by\n"
" URL, at revision REV if it is given, otherwise at HEAD, into\n"
" PATH. If PATH is omitted, the last component of the URL is used\n"
" for the local directory name.\n"
- "\n"
+ "\n"), N_(
" 2. Exports a clean directory tree from the working copy specified by\n"
" PATH1, at revision REV if it is given, otherwise at WORKING, into\n"
" PATH2. If PATH2 is omitted, the last component of the PATH1 is used\n"
" for the local directory name. If REV is not specified, all local\n"
" changes will be preserved. Files not under version control will\n"
" not be copied.\n"
- "\n"
+ "\n"), N_(
" If specified, PEGREV determines in which revision the target is first\n"
- " looked up.\n"),
+ " looked up.\n"
+ )},
{'r', 'q', 'N', opt_depth, opt_force, opt_native_eol, opt_ignore_externals,
- opt_ignore_keywords} },
-
- { "help", svn_cl__help, {"?", "h"}, N_
- ("Describe the usage of this program or its subcommands.\n"
- "usage: help [SUBCOMMAND...]\n"),
- {0} },
+ opt_ignore_keywords},
+ {{'N', N_("obsolete; same as --depth=files")}} },
+
+ { "help", svn_cl__help, {"?", "h"}, {N_(
+ "Describe the usage of this program or its subcommands.\n"
+ "usage: help [SUBCOMMAND...]\n"
+ )},
+ {'v'},
+ {{'v', N_("also show experimental subcommands and options")}} },
/* This command is also invoked if we see option "--help", "-h" or "-?". */
- { "import", svn_cl__import, {0}, N_
- ("Commit an unversioned file or tree into the repository.\n"
+ { "import", svn_cl__import, {0}, {N_(
+ "Commit an unversioned file or tree into the repository.\n"
"usage: import [PATH] URL\n"
- "\n"
+ "\n"), N_(
" Recursively commit a copy of PATH to URL.\n"
" If PATH is omitted '.' is assumed.\n"
" Parent directories are created as necessary in the repository.\n"
" If PATH is a directory, the contents of the directory are added\n"
" directly under URL.\n"
" Unversionable items such as device files and pipes are ignored\n"
- " if --force is specified.\n"),
+ " if --force is specified.\n"
+ )},
{'q', 'N', opt_depth, opt_autoprops, opt_force, opt_no_autoprops,
- SVN_CL__LOG_MSG_OPTIONS, opt_no_ignore} },
+ SVN_CL__LOG_MSG_OPTIONS, opt_no_ignore},
+ {{'N', N_("obsolete; same as --depth=files")}} },
- { "info", svn_cl__info, {0}, N_
- ("Display information about a local or remote item.\n"
+ { "info", svn_cl__info, {0}, {N_(
+ "Display information about a local or remote item.\n"
"usage: info [TARGET[@REV]...]\n"
- "\n"
+ "\n"), N_(
" Print information about each TARGET (default: '.').\n"
" TARGET may be either a working-copy path or a URL. If specified, REV\n"
" determines in which revision the target is first looked up; the default\n"
" is HEAD for a URL or BASE for a WC path.\n"
- "\n"
+ "\n"), N_(
" With --show-item, print only the value of one item of information\n"
- " about TARGET.\n"),
- {'r', 'R', opt_depth, opt_targets, opt_incremental, opt_xml,
- opt_changelist, opt_include_externals, opt_show_item, opt_no_newline}
+ " about TARGET.\n"
+ "\n"), N_(
+ " EXPERIMENTAL:\n"
+ " With --x-viewspec, print the working copy layout.\n"
+ )},
+ {'r', 'R', 'H', opt_depth, opt_targets, opt_incremental, opt_xml,
+ opt_changelist, opt_include_externals, opt_show_item, opt_no_newline,
+ opt_viewspec},
+ {{'H', N_("show file sizes with base-2 unit suffixes\n"
+ " "
+ "(Byte, Kilobyte, Megabyte, Gigabyte, Terabyte\n"
+ " "
+ "and Petabyte), limiting the number of digits\n"
+ " "
+ "to three or less")}}
},
{ "list", svn_cl__list, {"ls"},
-#if defined(WIN32)
- N_
- ("List directory entries in the repository.\n"
+ {N_(
+ "List directory entries in the repository.\n"
"usage: list [TARGET[@REV]...]\n"
- "\n"
+ "\n"), N_(
" List each TARGET file and the contents of each TARGET directory as\n"
" they exist in the repository. If TARGET is a working copy path, the\n"
" corresponding repository URL will be used. If specified, REV determines\n"
" in which revision the target is first looked up.\n"
- "\n"
+ "\n"), N_(
" The default TARGET is '.', meaning the repository URL of the current\n"
" working directory.\n"
- "\n"
+ "\n"),
+#if defined(WIN32)
+ N_(
" Multiple --search patterns may be specified and the output will be\n"
" reduced to those paths whose last segment - i.e. the file or directory\n"
" name - contains a sub-string matching at least one of these patterns\n"
" (Windows only).\n"
- "\n"
- " With --verbose, the following fields will be shown for each item:\n"
- "\n"
- " Revision number of the last commit\n"
- " Author of the last commit\n"
- " If locked, the letter 'O'. (Use 'svn info URL' to see details)\n"
- " Size (in bytes)\n"
- " Date and time of the last commit\n"),
+ "\n"),
#else
- N_
- ("List directory entries in the repository.\n"
- "usage: list [TARGET[@REV]...]\n"
- "\n"
- " List each TARGET file and the contents of each TARGET directory as\n"
- " they exist in the repository. If TARGET is a working copy path, the\n"
- " corresponding repository URL will be used. If specified, REV determines\n"
- " in which revision the target is first looked up.\n"
- "\n"
- " The default TARGET is '.', meaning the repository URL of the current\n"
- " working directory.\n"
- "\n"
+ N_(
" Multiple --search patterns may be specified and the output will be\n"
" reduced to those paths whose last segment - i.e. the file or directory\n"
" name - matches at least one of these patterns.\n"
- "\n"
+ "\n"),
+#endif
+ N_(
" With --verbose, the following fields will be shown for each item:\n"
- "\n"
+ "\n"), N_(
" Revision number of the last commit\n"
" Author of the last commit\n"
" If locked, the letter 'O'. (Use 'svn info URL' to see details)\n"
" Size (in bytes)\n"
- " Date and time of the last commit\n"),
-#endif
- {'r', 'v', 'R', opt_depth, opt_incremental, opt_xml,
- opt_include_externals, opt_search}, },
-
- { "lock", svn_cl__lock, {0}, N_
- ("Lock working copy paths or URLs in the repository, so that\n"
+ " Date and time of the last commit\n"
+ )},
+ {'r', 'v', 'R', 'H', opt_depth, opt_incremental, opt_xml,
+ opt_include_externals, opt_search},
+ {{'H', N_("with --verbose, show file sizes with base-2\n"
+ " "
+ "unit suffixes (Byte, Kilobyte, Megabyte,\n"
+ " "
+ "Gigabyte, Terabyte and Petabyte), limiting\n"
+ " "
+ "the number of digits to three or less")}} },
+
+ { "lock", svn_cl__lock, {0}, {N_(
+ "Lock working copy paths or URLs in the repository, so that\n"
"no other user can commit changes to them.\n"
"usage: lock TARGET...\n"
- "\n"
- " Use --force to steal a lock from another user or working copy.\n"),
+ "\n"), N_(
+ " Use --force to steal a lock from another user or working copy.\n"
+ )},
{ opt_targets, 'm', 'F', opt_force_log, opt_encoding, opt_force, 'q' },
{{'F', N_("read lock comment from file ARG")},
{'m', N_("specify lock comment ARG")},
{opt_force_log, N_("force validity of lock comment source")},
{opt_force, N_("steal locks")}} },
- { "log", svn_cl__log, {0}, N_
- ("Show the log messages for a set of revision(s) and/or path(s).\n"
+ { "log", svn_cl__log, {0}, {N_(
+ "Show the log messages for a set of revision(s) and/or path(s).\n"
"usage: 1. log [PATH][@REV]\n"
" 2. log URL[@REV] [PATH...]\n"
- "\n"
+ "\n"), N_(
" 1. Print the log messages for the URL corresponding to PATH\n"
" (default: '.'). If specified, REV is the revision in which the\n"
" URL is first looked up, and the default revision range is REV:1.\n"
" If REV is not specified, the default revision range is BASE:1,\n"
" since the URL might not exist in the HEAD revision.\n"
- "\n"
+ "\n"), N_(
" 2. Print the log messages for the PATHs (default: '.') under URL.\n"
" If specified, REV is the revision in which the URL is first\n"
" looked up, and the default revision range is REV:1; otherwise,\n"
" the URL is looked up in HEAD, and the default revision range is\n"
" HEAD:1.\n"
- "\n"
+ "\n"), N_(
" Multiple '-c' or '-r' options may be specified (but not a\n"
" combination of '-c' and '-r' options), and mixing of forward and\n"
" reverse ranges is allowed.\n"
- "\n"
+ "\n"), N_(
" With -v, also print all affected paths with each log message.\n"
" Each changed path is preceded with a symbol describing the change:\n"
" A: The path was added or copied.\n"
@@ -904,18 +875,18 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" If a file or directory was moved from one path to another with 'svn move'\n"
" the old path will be listed as deleted and the new path will be listed\n"
" as copied from the old path at a prior revision.\n"
- "\n"
+ "\n"), N_(
" With -q, don't print the log message body itself (note that this is\n"
" compatible with -v).\n"
- "\n"
+ "\n"), N_(
" Each log message is printed just once, even if more than one of the\n"
" affected paths for that revision were explicitly requested. Logs\n"
" follow copy history by default. Use --stop-on-copy to disable this\n"
" behavior, which can be useful for determining branchpoints.\n"
- "\n"
+ "\n"), N_(
" The --depth option is only valid in combination with the --diff option\n"
" and limits the scope of the displayed diff to the specified depth.\n"
- "\n"
+ "\n"), N_(
" If the --search option is used, log messages are displayed only if the\n"
" provided search pattern matches any of the author, date, log message\n"
" text (unless --quiet is used), or, if the --verbose option is also\n"
@@ -932,37 +903,42 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" If --limit is used in combination with --search, --limit restricts the\n"
" number of log messages searched, rather than restricting the output\n"
" to a particular number of matching log messages.\n"
- "\n"
+ "\n"), N_(
" Examples:\n"
- "\n"
+ "\n"), N_(
" Show the latest 5 log messages for the current working copy\n"
" directory and display paths changed in each commit:\n"
" svn log -l 5 -v\n"
- "\n"
+ "\n"), N_(
" Show the log for bar.c as of revision 42:\n"
" svn log bar.c@42\n"
- "\n"
+ "\n"), N_(
" Show log messages and diffs for each commit to foo.c:\n"
" svn log --diff http://www.example.com/repo/project/foo.c\n"
" (Because the above command uses a full URL it does not require\n"
" a working copy.)\n"
- "\n"
+ "\n"), N_(
" Show log messages for the children foo.c and bar.c of the directory\n"
" '/trunk' as it appeared in revision 50, using the ^/ URL shortcut:\n"
" svn log ^/trunk@50 foo.c bar.c\n"
- "\n"
+ "\n"), N_(
" Show the log messages for any incoming changes to foo.c during the\n"
" next 'svn update':\n"
" svn log -r BASE:HEAD foo.c\n"
- "\n"
+ "\n"), N_(
" Show the log message for the revision in which /branches/foo\n"
" was created:\n"
" svn log --stop-on-copy --limit 1 -r0:HEAD ^/branches/foo\n"
- "\n"
+ "\n"), N_(
+ " Show all log messages for commits between the tags ^/tags/2.0 and\n"
+ " ^/tags/3.0; assuming that tag 2.0 was created in revision 100:\n"
+ " svn log -rHEAD:100 ^/tags/3.0\n"
+ "\n"), N_(
" If ^/trunk/foo.c was moved to ^/trunk/bar.c' in revision 22, 'svn log -v'\n"
" shows a deletion and a copy in its changed paths list, such as:\n"
" D /trunk/foo.c\n"
- " A /trunk/bar.c (from /trunk/foo.c:21)\n"),
+ " A /trunk/bar.c (from /trunk/foo.c:21)\n"
+ )},
{'r', 'c', 'q', 'v', 'g', opt_targets, opt_stop_on_copy, opt_incremental,
opt_xml, 'l', opt_with_all_revprops, opt_with_no_revprops,
opt_with_revprop, opt_depth, opt_diff, opt_diff_cmd,
@@ -972,8 +948,8 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
{'v', N_("also print all affected paths")},
{'q', N_("do not print the log message")}} },
- { "merge", svn_cl__merge, {0}, N_
- ( /* For this large section, let's keep it unindented for easier
+ { "merge", svn_cl__merge, {0}, {N_(
+ /* For this large section, let's keep it unindented for easier
* viewing/editing. It has been vim-treated with a textwidth=75 and 'gw'
* (with quotes and newlines removed). */
"Merge changes into a working copy.\n"
@@ -983,54 +959,54 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" (the 'cherry-pick' merge)\n"
" 3. merge SOURCE1[@REV1] SOURCE2[@REV2] [TARGET_WCPATH]\n"
" (the '2-URL' merge)\n"
-"\n"
+"\n"), N_(
" 1. This form, with one source path and no revision range, is called\n"
" a 'complete' merge:\n"
-"\n"
+"\n"), N_(
" svn merge SOURCE[@REV] [TARGET_WCPATH]\n"
-"\n"
+"\n"), N_(
" The complete merge is used for the 'sync' and 'reintegrate' merges\n"
" in the 'feature branch' pattern described below. It finds all the\n"
" changes on the source branch that have not already been merged to the\n"
" target branch, and merges them into the working copy. Merge tracking\n"
" is used to know which changes have already been merged.\n"
-"\n"
+"\n"), N_(
" SOURCE specifies the branch from where the changes will be pulled, and\n"
" TARGET_WCPATH specifies a working copy of the target branch to which\n"
" the changes will be applied. Normally SOURCE and TARGET_WCPATH should\n"
" each correspond to the root of a branch. (If you want to merge only a\n"
" subtree, then the subtree path must be included in both SOURCE and\n"
" TARGET_WCPATH; this is discouraged, to avoid subtree mergeinfo.)\n"
-"\n"
+"\n"), N_(
" SOURCE is usually a URL. The optional '@REV' specifies both the peg\n"
" revision of the URL and the latest revision that will be considered\n"
" for merging; if REV is not specified, the HEAD revision is assumed. If\n"
" SOURCE is a working copy path, the corresponding URL of the path is\n"
" used, and the default value of 'REV' is the base revision (usually the\n"
" revision last updated to).\n"
-"\n"
+"\n"), N_(
" TARGET_WCPATH is a working copy path; if omitted, '.' is generally\n"
" assumed. There are some special cases:\n"
-"\n"
+"\n"), N_(
" - If SOURCE is a URL:\n"
-"\n"
+"\n"), N_(
" - If the basename of the URL and the basename of '.' are the\n"
" same, then the differences are applied to '.'. Otherwise,\n"
" if a file with the same basename as that of the URL is found\n"
" within '.', then the differences are applied to that file.\n"
" In all other cases, the target defaults to '.'.\n"
-"\n"
+"\n"), N_(
" - If SOURCE is a working copy path:\n"
-"\n"
+"\n"), N_(
" - If the source is a file, then differences are applied to that\n"
" file (useful for reverse-merging earlier changes). Otherwise,\n"
" if the source is a directory, then the target defaults to '.'.\n"
-"\n"
+"\n"), N_(
" In normal usage the working copy should be up to date, at a single\n"
" revision, with no local modifications and no switched subtrees.\n"
-"\n"
+"\n"), N_(
" - The 'Feature Branch' Merging Pattern -\n"
-"\n"
+"\n"), N_(
" In this commonly used work flow, known also as the 'development\n"
" branch' pattern, a developer creates a branch and commits a series of\n"
" changes that implement a new feature. The developer periodically\n"
@@ -1038,17 +1014,17 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" development branch up to date with those changes. When the feature is\n"
" complete, the developer performs a merge from the feature branch to\n"
" the parent branch to re-integrate the changes.\n"
-"\n"
+"\n"), N_(
" parent --+----------o------o-o-------------o--\n"
" \\ \\ \\ /\n"
" \\ merge merge merge\n"
" \\ \\ \\ /\n"
" feature +--o-o-------o----o-o----o-------\n"
-"\n"
+"\n"), N_(
" A merge from the parent branch to the feature branch is called a\n"
" 'sync' or 'catch-up' merge, and a merge from the feature branch to the\n"
" parent branch is called a 'reintegrate' merge.\n"
-"\n"
+"\n"), N_(
" - Sync Merge Example -\n"
" ............\n"
" . .\n"
@@ -1058,7 +1034,7 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" \\ v\n"
" feature +------------------------o-----\n"
" r100 r200\n"
-"\n"
+"\n"), N_(
" Subversion will locate all the changes on 'trunk' that have not yet\n"
" been merged into the 'feature' branch. In this case that is a single\n"
" range, r100:200. In the diagram above, L marks the left side (trunk@100)\n"
@@ -1066,162 +1042,162 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" difference between L and R will be applied to the target working copy\n"
" path. In this case, the working copy is a clean checkout of the entire\n"
" 'feature' branch.\n"
-"\n"
+"\n"), N_(
" To perform this sync merge, have a clean working copy of the feature\n"
" branch and run the following command in its top-level directory:\n"
-"\n"
+"\n"), N_(
" svn merge ^/trunk\n"
-"\n"
+"\n"), N_(
" Note that the merge is now only in your local working copy and still\n"
" needs to be committed to the repository so that it can be seen by\n"
" others. You can review the changes and you may have to resolve\n"
" conflicts before you commit the merge.\n"
-"\n"
+"\n"), N_(
" - Reintegrate Merge Example -\n"
-"\n"
+"\n"), N_(
" The feature branch was last synced with trunk up to revision X. So the\n"
" difference between trunk@X and feature@HEAD contains the complete set\n"
" of changes that implement the feature, and no other changes. These\n"
" changes are applied to trunk.\n"
-"\n"
+"\n"), N_(
" rW rX\n"
" trunk ------+--------------------L------------------o\n"
" \\ . ^\n"
" \\ ............. /\n"
" \\ . /\n"
" feature +--------------------------------R\n"
-"\n"
+"\n"), N_(
" In the diagram above, L marks the left side (trunk@X) and R marks the\n"
" right side (feature@HEAD) of the merge. The difference between the\n"
" left and right side is merged into trunk, the target.\n"
-"\n"
+"\n"), N_(
" To perform the merge, have a clean working copy of trunk and run the\n"
" following command in its top-level directory:\n"
-"\n"
+"\n"), N_(
" svn merge ^/feature\n"
-"\n"
+"\n"), N_(
" To prevent unnecessary merge conflicts, a reintegrate merge requires\n"
" that TARGET_WCPATH is not a mixed-revision working copy, has no local\n"
" modifications, and has no switched subtrees.\n"
-"\n"
+"\n"), N_(
" A reintegrate merge also requires that the source branch is coherently\n"
" synced with the target -- in the above example, this means that all\n"
" revisions between the branch point W and the last merged revision X\n"
" are merged to the feature branch, so that there are no unmerged\n"
" revisions in-between.\n"
-"\n"
-"\n"
+"\n"), N_(
+"\n"), N_(
" 2. This form is called a 'cherry-pick' merge:\n"
-"\n"
+"\n"), N_(
" svn merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [TARGET_WCPATH]\n"
-"\n"
+"\n"), N_(
" A cherry-pick merge is used to merge specific revisions (or revision\n"
" ranges) from one branch to another. By default, this uses merge\n"
" tracking to automatically skip any revisions that have already been\n"
" merged to the target; you can use the --ignore-ancestry option to\n"
" disable such skipping.\n"
-"\n"
+"\n"), N_(
" SOURCE is usually a URL. The optional '@REV' specifies only the peg\n"
" revision of the URL and does not affect the merge range; if REV is not\n"
" specified, the HEAD revision is assumed. If SOURCE is a working copy\n"
" path, the corresponding URL of the path is used, and the default value\n"
" of 'REV' is the base revision (usually the revision last updated to).\n"
-"\n"
+"\n"), N_(
" TARGET_WCPATH is a working copy path; if omitted, '.' is generally\n"
" assumed. The special cases noted above in the 'complete' merge form\n"
" also apply here.\n"
-"\n"
+"\n"), N_(
" The revision ranges to be merged are specified by the '-r' and/or '-c'\n"
" options. '-r N:M' refers to the difference in the history of the\n"
" source branch between revisions N and M. You can use '-c M' to merge\n"
" single revisions: '-c M' is equivalent to '-r <M-1>:M'. Each such\n"
" difference is applied to TARGET_WCPATH.\n"
-"\n"
+"\n"), N_(
" If the mergeinfo in TARGET_WCPATH indicates that revisions within the\n"
" range were already merged, changes made in those revisions are not\n"
" merged again. If needed, the range is broken into multiple sub-ranges,\n"
" and each sub-range is merged separately.\n"
-"\n"
+"\n"), N_(
" A 'reverse range' can be used to undo changes. For example, when\n"
" source and target refer to the same branch, a previously committed\n"
" revision can be 'undone'. In a reverse range, N is greater than M in\n"
" '-r N:M', or the '-c' option is used with a negative number: '-c -M'\n"
" is equivalent to '-r M:<M-1>'. Undoing changes like this is also known\n"
" as performing a 'reverse merge'.\n"
-"\n"
+"\n"), N_(
" Multiple '-c' and/or '-r' options may be specified and mixing of\n"
" forward and reverse ranges is allowed.\n"
-"\n"
+"\n"), N_(
" - Cherry-pick Merge Example -\n"
-"\n"
+"\n"), N_(
" A bug has been fixed on trunk in revision 50. This fix needs to\n"
" be merged from trunk onto the release branch.\n"
-"\n"
+"\n"), N_(
" 1.x-release +-----------------------o-----\n"
" / ^\n"
" / |\n"
" / |\n"
" trunk ------+--------------------------LR-----\n"
" r50\n"
-"\n"
+"\n"), N_(
" In the above diagram, L marks the left side (trunk@49) and R marks the\n"
" right side (trunk@50) of the merge. The difference between the left\n"
" and right side is applied to the target working copy path.\n"
-"\n"
+"\n"), N_(
" Note that the difference between revision 49 and 50 is exactly those\n"
" changes that were committed in revision 50, not including changes\n"
" committed in revision 49.\n"
-"\n"
+"\n"), N_(
" To perform the merge, have a clean working copy of the release branch\n"
" and run the following command in its top-level directory; remember\n"
" that the default target is '.':\n"
-"\n"
+"\n"), N_(
" svn merge -c50 ^/trunk\n"
-"\n"
+"\n"), N_(
" You can also cherry-pick several revisions and/or revision ranges:\n"
-"\n"
+"\n"), N_(
" svn merge -c50,54,60 -r65:68 ^/trunk\n"
-"\n"
-"\n"
+"\n"), N_(
+"\n"), N_(
" 3. This form is called a '2-URL merge':\n"
-"\n"
+"\n"), N_(
" svn merge SOURCE1[@REV1] SOURCE2[@REV2] [TARGET_WCPATH]\n"
-"\n"
+"\n"), N_(
" You should use this merge variant only if the other variants do not\n"
" apply to your situation, as this variant can be quite complex to\n"
" master.\n"
-"\n"
+"\n"), N_(
" Two source URLs are specified, identifying two trees on the same\n"
" branch or on different branches. The trees are compared and the\n"
" difference from SOURCE1@REV1 to SOURCE2@REV2 is applied to the\n"
" working copy of the target branch at TARGET_WCPATH. The target\n"
" branch may be the same as one or both sources, or different again.\n"
" The three branches involved can be completely unrelated.\n"
-"\n"
+"\n"), N_(
" TARGET_WCPATH is a working copy path; if omitted, '.' is generally\n"
" assumed. The special cases noted above in the 'complete' merge form\n"
" also apply here.\n"
-"\n"
+"\n"), N_(
" SOURCE1 and/or SOURCE2 can also be specified as a working copy path,\n"
" in which case the merge source URL is derived from the working copy.\n"
-"\n"
+"\n"), N_(
" - 2-URL Merge Example -\n"
-"\n"
+"\n"), N_(
" Two features have been developed on separate branches called 'foo' and\n"
" 'bar'. It has since become clear that 'bar' should be combined with\n"
" the 'foo' branch for further development before reintegration.\n"
-"\n"
+"\n"), N_(
" Although both feature branches originate from trunk, they are not\n"
" directly related -- one is not a direct copy of the other. A 2-URL\n"
" merge is necessary.\n"
-"\n"
+"\n"), N_(
" The 'bar' branch has been synced with trunk up to revision 500.\n"
" (If this revision number is not known, it can be located using the\n"
" 'svn log' and/or 'svn mergeinfo' commands.)\n"
" The difference between trunk@500 and bar@HEAD contains the complete\n"
" set of changes related to feature 'bar', and no other changes. These\n"
" changes are applied to the 'foo' branch.\n"
-"\n"
+"\n"), N_(
" foo +-----------------------------------o\n"
" / ^\n"
" / /\n"
@@ -1231,41 +1207,41 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" \\ ............ /\n"
" \\ . /\n"
" bar +-----------------------------------R\n"
-"\n"
+"\n"), N_(
" In the diagram above, L marks the left side (trunk@500) and R marks\n"
" the right side (bar@HEAD) of the merge. The difference between the\n"
" left and right side is applied to the target working copy path, in\n"
" this case a working copy of the 'foo' branch.\n"
-"\n"
+"\n"), N_(
" To perform the merge, have a clean working copy of the 'foo' branch\n"
" and run the following command in its top-level directory:\n"
-"\n"
+"\n"), N_(
" svn merge ^/trunk@500 ^/bar\n"
-"\n"
+"\n"), N_(
" The exact changes applied by a 2-URL merge can be previewed with svn's\n"
" diff command, which is a good idea to verify if you do not have the\n"
" luxury of a clean working copy to merge to. In this case:\n"
-"\n"
+"\n"), N_(
" svn diff ^/trunk@500 ^/bar@HEAD\n"
-"\n"
-"\n"
+"\n"), N_(
+"\n"), N_(
" The following applies to all types of merges:\n"
-"\n"
+"\n"), N_(
" To prevent unnecessary merge conflicts, svn merge requires that\n"
" TARGET_WCPATH is not a mixed-revision working copy. Running 'svn update'\n"
" before starting a merge ensures that all items in the working copy are\n"
" based on the same revision.\n"
-"\n"
+"\n"), N_(
" If possible, you should have no local modifications in the merge's target\n"
" working copy prior to the merge, to keep things simpler. It will be\n"
" easier to revert the merge and to understand the branch's history.\n"
-"\n"
+"\n"), N_(
" Switched sub-paths should also be avoided during merging, as they may\n"
" cause incomplete merges and create subtree mergeinfo.\n"
-"\n"
+"\n"), N_(
" For each merged item a line will be printed with characters reporting the\n"
" action taken. These characters have the following meaning:\n"
-"\n"
+"\n"), N_(
" A Added\n"
" D Deleted\n"
" U Updated\n"
@@ -1273,15 +1249,15 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" G Merged\n"
" E Existed\n"
" R Replaced\n"
-"\n"
+"\n"), N_(
" Characters in the first column report about the item itself.\n"
" Characters in the second column report about properties of the item.\n"
" A 'C' in the third column indicates a tree conflict, while a 'C' in\n"
" the first and second columns indicate textual conflicts in files\n"
" and in property values, respectively.\n"
-"\n"
+"\n"), N_(
" - Merge Tracking -\n"
-"\n"
+"\n"), N_(
" Subversion uses the svn:mergeinfo property to track merge history. This\n"
" property is considered at the start of a merge to determine what to merge\n"
" and it is updated at the conclusion of the merge to describe the merge\n"
@@ -1290,78 +1266,82 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" or vice-versa (i.e. if one has originally been created by copying the\n"
" other). This is verified and enforced when using sync merges and\n"
" reintegrate merges.\n"
-"\n"
+"\n"), N_(
" The --ignore-ancestry option prevents merge tracking and thus ignores\n"
" mergeinfo, neither considering it nor recording it.\n"
-"\n"
+"\n"), N_(
" - Merging from foreign repositories -\n"
-"\n"
+"\n"), N_(
" Subversion does support merging from foreign repositories.\n"
" While all merge source URLs must point to the same repository, the merge\n"
" target working copy may come from a different repository than the source.\n"
" However, there are some caveats. Most notably, copies made in the\n"
" merge source will be transformed into plain additions in the merge\n"
" target. Also, merge-tracking is not supported for merges from foreign\n"
-" repositories.\n"),
+" repositories.\n"
+ )},
{'r', 'c', 'N', opt_depth, 'q', opt_force, opt_dry_run, opt_merge_cmd,
opt_record_only, 'x', opt_ignore_ancestry, opt_accept, opt_reintegrate,
opt_allow_mixed_revisions, 'v'},
- { { opt_force, N_("force deletions even if deleted contents don't match") } }
+ { { opt_force, N_("force deletions even if deleted contents don't match") },
+ {'N', N_("obsolete; same as --depth=files")} }
},
- { "mergeinfo", svn_cl__mergeinfo, {0}, N_
- ("Display merge-related information.\n"
+ { "mergeinfo", svn_cl__mergeinfo, {0}, {N_(
+ "Display merge-related information.\n"
"usage: 1. mergeinfo SOURCE[@REV] [TARGET[@REV]]\n"
" 2. mergeinfo --show-revs=WHICH SOURCE[@REV] [TARGET[@REV]]\n"
- "\n"
+ "\n"), N_(
" 1. Summarize the history of merging between SOURCE and TARGET. The graph\n"
" shows, from left to right:\n"
" the youngest common ancestor of the branches;\n"
" the latest full merge in either direction, and thus the common base\n"
" that will be used for the next complete merge;\n"
" the repository path and revision number of the tip of each branch.\n"
- "\n"
+ "\n"), N_(
" 2. Print the revision numbers on SOURCE that have been merged to TARGET\n"
" (with --show-revs=merged), or that have not been merged to TARGET\n"
" (with --show-revs=eligible). Print only revisions in which there was\n"
" at least one change in SOURCE.\n"
- "\n"
+ "\n"), N_(
" If --revision (-r) is provided, filter the displayed information to\n"
" show only that which is associated with the revisions within the\n"
" specified range. Revision numbers, dates, and the 'HEAD' keyword are\n"
" valid range values.\n"
- "\n"
+ "\n"), N_(
" SOURCE and TARGET are the source and target branch URLs, respectively.\n"
" (If a WC path is given, the corresponding base URL is used.) The default\n"
" TARGET is the current working directory ('.'). REV specifies the revision\n"
" to be considered the tip of the branch; the default for SOURCE is HEAD,\n"
" and the default for TARGET is HEAD for a URL or BASE for a WC path.\n"
- "\n"
- " The depth can be 'empty' or 'infinity'; the default is 'empty'.\n"),
+ "\n"), N_(
+ " The depth can be 'empty' or 'infinity'; the default is 'empty'.\n"
+ )},
{'r', 'R', 'q', 'v', opt_depth, opt_show_revs, opt_mergeinfo_log,
opt_incremental } },
- { "mkdir", svn_cl__mkdir, {0}, N_
- ("Create a new directory under version control.\n"
+ { "mkdir", svn_cl__mkdir, {0}, {N_(
+ "Create a new directory under version control.\n"
"usage: 1. mkdir PATH...\n"
" 2. mkdir URL...\n"
- "\n"
+ "\n"), N_(
" Create version controlled directories.\n"
- "\n"
+ "\n"), N_(
" 1. Each directory specified by a working copy PATH is created locally\n"
" and scheduled for addition upon the next commit.\n"
- "\n"
+ "\n"), N_(
" 2. Each directory specified by a URL is created in the repository via\n"
" an immediate commit.\n"
- "\n"
+ "\n"), N_(
" In both cases, all the intermediate directories must already exist,\n"
- " unless the --parents option is given.\n"),
+ " unless the --parents option is given.\n"
+ )},
{'q', opt_parents, SVN_CL__LOG_MSG_OPTIONS} },
- { "move", svn_cl__move, {"mv", "rename", "ren"}, N_
- ("Move (rename) an item in a working copy or repository.\n"
+ { "move", svn_cl__move, {"mv", "rename", "ren"}, {N_(
+ "Move (rename) an item in a working copy or repository.\n"
"usage: move SRC... DST\n"
- "\n"
+ "\n"), N_(
" SRC and DST can both be working copy (WC) paths or URLs:\n"
" WC -> WC: move an item in a working copy, as a local change to\n"
" be committed later (with or without further changes)\n"
@@ -1370,28 +1350,29 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" All the SRCs must be of the same type. If DST is an existing directory,\n"
" the sources will be added as children of DST. When moving multiple\n"
" sources, DST must be an existing directory.\n"
- "\n"
+ "\n"), N_(
" SRC and DST of WC -> WC moves must be committed in the same revision.\n"
" Furthermore, WC -> WC moves will refuse to move a mixed-revision subtree.\n"
" To avoid unnecessary conflicts, it is recommended to run 'svn update'\n"
" to update the subtree to a single revision before moving it.\n"
- " The --allow-mixed-revisions option is provided for backward compatibility.\n"),
+ " The --allow-mixed-revisions option is provided for backward compatibility.\n"
+ )},
{'q', opt_force, opt_parents, opt_allow_mixed_revisions,
SVN_CL__LOG_MSG_OPTIONS, 'r'},
{{'r', "deprecated and ignored"}} },
- { "patch", svn_cl__patch, {0}, N_
- ("Apply a patch to a working copy.\n"
+ { "patch", svn_cl__patch, {0}, {N_(
+ "Apply a patch to a working copy.\n"
"usage: patch PATCHFILE [WCPATH]\n"
- "\n"
+ "\n"), N_(
" Apply a unidiff patch in PATCHFILE to the working copy WCPATH.\n"
" If WCPATH is omitted, '.' is assumed.\n"
- "\n"
+ "\n"), N_(
" A unidiff patch suitable for application to a working copy can be\n"
" produced with the 'svn diff' command or third-party diffing tools.\n"
" Any non-unidiff content of PATCHFILE is ignored, except for Subversion\n"
" property diffs as produced by 'svn diff'.\n"
- "\n"
+ "\n"), N_(
" Changes listed in the patch will either be applied or rejected.\n"
" If a change does not match at its exact line offset, it may be applied\n"
" earlier or later in the file if a match is found elsewhere for the\n"
@@ -1400,114 +1381,118 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" or more lines of context are ignored when matching the change.\n"
" If no matching context can be found for a change, the change conflicts\n"
" and will be written to a reject file with the extension .svnpatch.rej.\n"
- "\n"
+ "\n"), N_(
" For each patched file a line will be printed with characters reporting\n"
" the action taken. These characters have the following meaning:\n"
- "\n"
+ "\n"), N_(
" A Added\n"
" D Deleted\n"
" U Updated\n"
" C Conflict\n"
" G Merged (with local uncommitted changes)\n"
- "\n"
+ "\n"), N_(
" Changes applied with an offset or fuzz are reported on lines starting\n"
" with the '>' symbol. You should review such changes carefully.\n"
- "\n"
+ "\n"), N_(
" If the patch removes all content from a file, that file is scheduled\n"
" for deletion. If the patch creates a new file, that file is scheduled\n"
" for addition. Use 'svn revert' to undo deletions and additions you\n"
" do not agree with.\n"
- "\n"
+ "\n"), N_(
" Hint: If the patch file was created with Subversion, it will contain\n"
" the number of a revision N the patch will cleanly apply to\n"
" (look for lines like '--- foo/bar.txt (revision N)').\n"
" To avoid rejects, first update to the revision N using\n"
" 'svn update -r N', apply the patch, and then update back to the\n"
" HEAD revision. This way, conflicts can be resolved interactively.\n"
- ),
+ )},
{'q', opt_dry_run, opt_strip, opt_reverse_diff,
opt_ignore_whitespace} },
- { "propdel", svn_cl__propdel, {"pdel", "pd"}, N_
- ("Remove a property from files, dirs, or revisions.\n"
+ { "propdel", svn_cl__propdel, {"pdel", "pd"}, {N_(
+ "Remove a property from files, dirs, or revisions.\n"
"usage: 1. propdel PROPNAME [PATH...]\n"
" 2. propdel PROPNAME --revprop -r REV [TARGET]\n"
- "\n"
+ "\n"), N_(
" 1. Removes versioned props in working copy.\n"
" 2. Removes unversioned remote prop on repos revision.\n"
" TARGET only determines which repository to access.\n"
- "\n"
- " See 'svn help propset' for descriptions of the svn:* special properties.\n"),
+ "\n"), N_(
+ " See 'svn help propset' for descriptions of the svn:* special properties.\n"
+ )},
{'q', 'R', opt_depth, 'r', opt_revprop, opt_changelist} },
- { "propedit", svn_cl__propedit, {"pedit", "pe"}, N_
- ("Edit a property with an external editor.\n"
+ { "propedit", svn_cl__propedit, {"pedit", "pe"}, {N_(
+ "Edit a property with an external editor.\n"
"usage: 1. propedit PROPNAME TARGET...\n"
" 2. propedit PROPNAME --revprop -r REV [TARGET]\n"
- "\n"
+ "\n"), N_(
" 1. Edits versioned prop in working copy or repository.\n"
" 2. Edits unversioned remote prop on repos revision.\n"
" TARGET only determines which repository to access.\n"
- "\n"
- " See 'svn help propset' for descriptions of the svn:* special properties.\n"),
+ "\n"), N_(
+ " See 'svn help propset' for descriptions of the svn:* special properties.\n"
+ )},
{'r', opt_revprop, SVN_CL__LOG_MSG_OPTIONS, opt_force} },
- { "propget", svn_cl__propget, {"pget", "pg"}, N_
- ("Print the value of a property on files, dirs, or revisions.\n"
+ { "propget", svn_cl__propget, {"pget", "pg"}, {N_(
+ "Print the value of a property on files, dirs, or revisions.\n"
"usage: 1. propget PROPNAME [TARGET[@REV]...]\n"
" 2. propget PROPNAME --revprop -r REV [TARGET]\n"
- "\n"
+ "\n"), N_(
" 1. Prints versioned props. If specified, REV determines in which\n"
" revision the target is first looked up.\n"
" 2. Prints unversioned remote prop on repos revision.\n"
" TARGET only determines which repository to access.\n"
- "\n"
+ "\n"), N_(
" With --verbose, the target path and the property name are printed on\n"
" separate lines before each value, like 'svn proplist --verbose'.\n"
" Otherwise, if there is more than one TARGET or a depth other than\n"
" 'empty', the target path is printed on the same line before each value.\n"
- "\n"
+ "\n"), N_(
" By default, an extra newline is printed after the property value so that\n"
" the output looks pretty. With a single TARGET, depth 'empty' and without\n"
" --show-inherited-props, you can use the --no-newline option to disable this\n"
" (useful when redirecting a binary property value to a file, for example).\n"
- "\n"
- " See 'svn help propset' for descriptions of the svn:* special properties.\n"),
+ "\n"), N_(
+ " See 'svn help propset' for descriptions of the svn:* special properties.\n"
+ )},
{'v', 'R', opt_depth, 'r', opt_revprop, opt_strict, opt_no_newline, opt_xml,
opt_changelist, opt_show_inherited_props },
{{'v', N_("print path, name and value on separate lines")},
{opt_strict, N_("(deprecated; use --no-newline)")}} },
- { "proplist", svn_cl__proplist, {"plist", "pl"}, N_
- ("List all properties on files, dirs, or revisions.\n"
+ { "proplist", svn_cl__proplist, {"plist", "pl"}, {N_(
+ "List all properties on files, dirs, or revisions.\n"
"usage: 1. proplist [TARGET[@REV]...]\n"
" 2. proplist --revprop -r REV [TARGET]\n"
- "\n"
+ "\n"), N_(
" 1. Lists versioned props. If specified, REV determines in which\n"
" revision the target is first looked up.\n"
" 2. Lists unversioned remote props on repos revision.\n"
" TARGET only determines which repository to access.\n"
- "\n"
+ "\n"), N_(
" With --verbose, the property values are printed as well, like 'svn propget\n"
" --verbose'. With --quiet, the paths are not printed.\n"
- "\n"
- " See 'svn help propset' for descriptions of the svn:* special properties.\n"),
+ "\n"), N_(
+ " See 'svn help propset' for descriptions of the svn:* special properties.\n"
+ )},
{'v', 'R', opt_depth, 'r', 'q', opt_revprop, opt_xml, opt_changelist,
opt_show_inherited_props },
{{'v', N_("print path, name and value on separate lines")},
{'q', N_("don't print the path")}} },
- { "propset", svn_cl__propset, {"pset", "ps"}, N_
- ("Set the value of a property on files, dirs, or revisions.\n"
+ { "propset", svn_cl__propset, {"pset", "ps"}, {N_(
+ "Set the value of a property on files, dirs, or revisions.\n"
"usage: 1. propset PROPNAME PROPVAL PATH...\n"
" 2. propset PROPNAME --revprop -r REV PROPVAL [TARGET]\n"
- "\n"
+ "\n"), N_(
" 1. Changes a versioned file or directory property in a working copy.\n"
" 2. Changes an unversioned property on a repository revision.\n"
" (TARGET only determines which repository to access.)\n"
- "\n"
+ "\n"), N_(
" The value may be provided with the --file option instead of PROPVAL.\n"
- "\n"
+ "\n"), N_(
" Property names starting with 'svn:' are reserved. Subversion recognizes\n"
" the following special versioned properties on a file:\n"
" svn:keywords - Keywords to be expanded. Valid keywords are:\n"
@@ -1518,7 +1503,7 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" LastChangedRevision\n"
" Id - A compressed summary of the previous four.\n"
" Header - Similar to Id but includes the full URL.\n"
- "\n"
+ "\n"), N_(
" Custom keywords can be defined with a format string separated from\n"
" the keyword name with '='. Valid format substitutions are:\n"
" %a - The author of the revision given by %r.\n"
@@ -1536,7 +1521,7 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" Example custom keyword definition: MyKeyword=%r%_%a%_%P\n"
" Once a custom keyword has been defined for a file, it can be used\n"
" within the file like any other keyword: $MyKeyword$\n"
- "\n"
+ "\n"), N_(
" svn:executable - If present, make the file executable. Use\n"
" 'svn propdel svn:executable PATH...' to clear.\n"
" svn:eol-style - One of 'native', 'LF', 'CR', 'CRLF'.\n"
@@ -1548,7 +1533,7 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" before it is modified. Makes the working copy file read-only\n"
" when it is not locked. Use 'svn propdel svn:needs-lock PATH...'\n"
" to clear.\n"
- "\n"
+ "\n"), N_(
" Subversion recognizes the following special versioned properties on a\n"
" directory:\n"
" svn:ignore - A list of file glob patterns to ignore, one per line.\n"
@@ -1582,51 +1567,53 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" LOCALPATH [-r PEG] URL\n"
" The ambiguous format 'relative_path relative_path' is taken as\n"
" 'relative_url relative_path' with peg revision support.\n"
- " Lines starting with a '#' character are ignored.\n"),
+ " Lines starting with a '#' character are ignored.\n"
+ )},
{'F', opt_encoding, 'q', 'r', opt_targets, 'R', opt_depth, opt_revprop,
opt_force, opt_changelist },
{{'F', N_("read property value from file ARG")}} },
- { "relocate", svn_cl__relocate, {0}, N_
- ("Relocate the working copy to point to a different repository root URL.\n"
+ { "relocate", svn_cl__relocate, {0}, {N_(
+ "Relocate the working copy to point to a different repository root URL.\n"
"usage: 1. relocate FROM-PREFIX TO-PREFIX [PATH...]\n"
" 2. relocate TO-URL [PATH]\n"
- "\n"
+ "\n"), N_(
" Rewrite working copy URL metadata to reflect a syntactic change only.\n"
" This is used when a repository's root URL changes (such as a scheme\n"
" or hostname change) but your working copy still reflects the same\n"
" directory within the same repository.\n"
- "\n"
+ "\n"), N_(
" 1. FROM-PREFIX and TO-PREFIX are initial substrings of the working\n"
" copy's current and new URLs, respectively. (You may specify the\n"
" complete old and new URLs if you wish.) Use 'svn info' to determine\n"
" the current working copy URL.\n"
- "\n"
+ "\n"), N_(
" 2. TO-URL is the (complete) new repository URL to use for PATH.\n"
- "\n"
+ "\n"), N_(
" Examples:\n"
" svn relocate http:// svn:// project1 project2\n"
" svn relocate http://www.example.com/repo/project \\\n"
- " svn://svn.example.com/repo/project\n"),
+ " svn://svn.example.com/repo/project\n"
+ )},
{opt_ignore_externals} },
- { "resolve", svn_cl__resolve, {0}, N_
- ("Resolve conflicts on working copy files or directories.\n"
+ { "resolve", svn_cl__resolve, {0}, {N_(
+ "Resolve conflicts on working copy files or directories.\n"
"usage: resolve [PATH...]\n"
- "\n"
+ "\n"), N_(
" By default, perform interactive conflict resolution on PATH.\n"
" In this mode, the command is recursive by default (depth 'infinity').\n"
- "\n"
+ "\n"), N_(
" The --accept=ARG option prevents interactive prompting and forces\n"
" conflicts on PATH to be resolved in the manner specified by ARG.\n"
" In this mode, the command is not recursive by default (depth 'empty').\n"
- "\n"
+ "\n"), N_(
" A conflicted path cannot be committed with 'svn commit' until it\n"
" has been marked as resolved with 'svn resolve'.\n"
- "\n"
+ "\n"), N_(
" Subversion knows three types of conflicts:\n"
" Text conflicts, Property conflicts, and Tree conflicts.\n"
- "\n"
+ "\n"), N_(
" Text conflicts occur when overlapping changes to file contents were\n"
" made. Text conflicts are usually resolved by editing the conflicted\n"
" file or by using a merge tool (which may be an external program).\n"
@@ -1634,12 +1621,12 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" edit files (such as 'mine-full' or 'theirs-conflict'), but these are\n"
" only useful in situations where it is acceptable to discard local or\n"
" incoming changes altogether.\n"
- "\n"
+ "\n"), N_(
" Property conflicts are usually resolved by editing the value of the\n"
" conflicted property (either from the interactive prompt, or with\n"
" 'svn propedit'). As with text conflicts, options exist to edit a\n"
" property automatically, discarding some changes in favour of others.\n"
- "\n"
+ "\n"), N_(
" Tree conflicts occur when a change to the directory structure was\n"
" made, and when this change cannot be applied to the working copy\n"
" without affecting other changes (text changes, property changes,\n"
@@ -1649,7 +1636,7 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" in detail, and may offer options to resolve the conflict automatically.\n"
" It is recommended to use these automatic options whenever possible,\n"
" rather than attempting manual tree conflict resolution.\n"
- "\n"
+ "\n"), N_(
" If a tree conflict cannot be resolved automatically, it is recommended\n"
" to figure out why the conflict occurred before attempting to resolve it.\n"
" The 'svn log -v' command can be used to inspect structural changes\n"
@@ -1660,7 +1647,8 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" in a way such that the conflict is resolved. This may involve editing\n"
" files manually or with 'svn merge'. It may be necessary to discard some\n"
" local changes with 'svn revert'. Files or directories might have to be\n"
- " copied, deleted, or moved.\n"),
+ " copied, deleted, or moved.\n"
+ )},
{opt_targets, 'R', opt_depth, 'q', opt_accept},
{{opt_accept, N_("specify automatic conflict resolution source\n"
" "
@@ -1668,37 +1656,40 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" "
"'theirs-conflict', 'mine-full', 'theirs-full')")}} },
- { "resolved", svn_cl__resolved, {0}, N_
- ("Remove 'conflicted' state on working copy files or directories.\n"
+ { "resolved", svn_cl__resolved, {0}, {N_(
+ "Remove 'conflicted' state on working copy files or directories.\n"
"usage: resolved PATH...\n"
- "\n"
+ "\n"), N_(
" Note: this subcommand does not semantically resolve conflicts or\n"
" remove conflict markers; it merely removes the conflict-related\n"
" artifact files and allows PATH to be committed again. It has been\n"
- " deprecated in favor of running 'svn resolve --accept working'.\n"),
+ " deprecated in favor of running 'svn resolve --accept working'.\n"
+ )},
{opt_targets, 'R', opt_depth, 'q'} },
- { "revert", svn_cl__revert, {0}, N_
- ("Restore pristine working copy state (undo local changes).\n"
+ { "revert", svn_cl__revert, {0}, {N_(
+ "Restore pristine working copy state (undo local changes).\n"
"usage: revert PATH...\n"
- "\n"
+ "\n"), N_(
" Revert changes in the working copy at or within PATH, and remove\n"
" conflict markers as well, if any.\n"
- "\n"
+ "\n"), N_(
" This subcommand does not revert already committed changes.\n"
" For information about undoing already committed changes, search\n"
- " the output of 'svn help merge' for 'undo'.\n"),
- {opt_targets, 'R', opt_depth, 'q', opt_changelist} },
+ " the output of 'svn help merge' for 'undo'.\n"
+ )},
+ {opt_targets, 'R', opt_depth, 'q', opt_changelist,
+ opt_remove_added} },
- { "status", svn_cl__status, {"stat", "st"}, N_
- ("Print the status of working copy files and directories.\n"
+ { "status", svn_cl__status, {"stat", "st"}, {N_(
+ "Print the status of working copy files and directories.\n"
"usage: status [PATH...]\n"
- "\n"
+ "\n"), N_(
" With no args, print only locally modified items (no network access).\n"
" With -q, print only summary information about locally modified items.\n"
" With -u, add working revision and server out-of-date information.\n"
" With -v, print full revision information on every item.\n"
- "\n"
+ "\n"), N_(
" The first seven columns in the output are each one character wide:\n"
" First column: Says if item was added, deleted, or otherwise changed\n"
" ' ' no modifications\n"
@@ -1742,61 +1733,64 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" 'C' tree-Conflicted\n"
" If the item is a tree conflict victim, an additional line is printed\n"
" after the item's status line, explaining the nature of the conflict.\n"
- "\n"
+ "\n"), N_(
" The out-of-date information appears in the ninth column (with -u):\n"
" '*' a newer revision exists on the server\n"
" ' ' the working copy is up to date\n"
- "\n"
+ "\n"), N_(
" Remaining fields are variable width and delimited by spaces:\n"
" The working revision (with -u or -v; '-' if the item is copied)\n"
" The last committed revision and last committed author (with -v)\n"
" The working copy path is always the final field, so it can\n"
" include spaces.\n"
- "\n"
+ "\n"), N_(
" The presence of a question mark ('?') where a working revision, last\n"
" committed revision, or last committed author was expected indicates\n"
" that the information is unknown or irrelevant given the state of the\n"
" item (for example, when the item is the result of a copy operation).\n"
" The question mark serves as a visual placeholder to facilitate parsing.\n"
- "\n"
+ "\n"), N_(
" Example output:\n"
" svn status wc\n"
" M wc/bar.c\n"
" A + wc/qax.c\n"
- "\n"
+ "\n"), N_(
" svn status -u wc\n"
" M 965 wc/bar.c\n"
" * 965 wc/foo.c\n"
" A + - wc/qax.c\n"
" Status against revision: 981\n"
- "\n"
+ "\n"), N_(
" svn status --show-updates --verbose wc\n"
" M 965 938 kfogel wc/bar.c\n"
" * 965 922 sussman wc/foo.c\n"
" A + - 687 joe wc/qax.c\n"
" 965 687 joe wc/zig.c\n"
" Status against revision: 981\n"
- "\n"
+ "\n"), N_(
" svn status\n"
" M wc/bar.c\n"
" ! C wc/qaz.c\n"
" > local missing, incoming edit upon update\n"
- " D wc/qax.c\n"),
+ " D wc/qax.c\n"
+ )},
{ 'u', 'v', 'N', opt_depth, 'r', 'q', opt_no_ignore, opt_incremental,
opt_xml, opt_ignore_externals, opt_changelist},
- {{'q', N_("don't print unversioned items")}} },
+ {{'q', N_("don't print unversioned items")},
+ {'N', N_("obsolete; same as --depth=immediates")}} },
- { "switch", svn_cl__switch, {"sw"}, N_
- ("Update the working copy to a different URL within the same repository.\n"
+ { "switch", svn_cl__switch, {"sw"}, {N_(
+ "Update the working copy to a different URL within the same\n"
+ "repository.\n"
"usage: 1. switch URL[@PEGREV] [PATH]\n"
" 2. switch --relocate FROM-PREFIX TO-PREFIX [PATH...]\n"
- "\n"
+ "\n"), N_(
" 1. Update the working copy to mirror a new URL within the repository.\n"
" This behavior is similar to 'svn update', and is the way to\n"
" move a working copy to a branch or tag within the same repository.\n"
" If specified, PEGREV determines in which revision the target is first\n"
" looked up.\n"
- "\n"
+ "\n"), N_(
" If --force is used, unversioned obstructing paths in the working\n"
" copy do not automatically cause a failure if the switch attempts to\n"
" add the same path. If the obstructing path is the same type (file\n"
@@ -1807,25 +1801,23 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" between the obstruction and the repository are treated like a local\n"
" modification to the working copy. All properties from the repository\n"
" are applied to the obstructing path.\n"
- "\n"
+ "\n"), N_(
" Use the --set-depth option to set a new working copy depth on the\n"
" targets of this operation.\n"
- "\n"
+ "\n"), N_(
" By default, Subversion will refuse to switch a working copy path to\n"
" a new URL with which it shares no common version control ancestry.\n"
" Use the '--ignore-ancestry' option to override this sanity check.\n"
- "\n"
+ "\n"), N_(
" 2. The '--relocate' option is deprecated. This syntax is equivalent to\n"
" 'svn relocate FROM-PREFIX TO-PREFIX [PATH]'.\n"
- "\n"
+ "\n"), N_(
" See also 'svn help update' for a list of possible characters\n"
" reporting the action taken.\n"
- "\n"
+ "\n"), N_(
" Examples:\n"
" svn switch ^/branches/1.x-release\n"
- " svn switch --relocate http:// svn://\n"
- " svn switch --relocate http://www.example.com/repo/project \\\n"
- " svn://svn.example.com/repo/project\n"),
+ )},
{ 'r', 'N', opt_depth, opt_set_depth, 'q', opt_merge_cmd,
opt_ignore_externals, opt_ignore_ancestry, opt_force, opt_accept,
opt_relocate },
@@ -1833,27 +1825,29 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
N_("allow switching to a node with no common ancestor")},
{opt_force,
N_("handle unversioned obstructions as changes")},
- {opt_relocate,N_("deprecated; use 'svn relocate'")}}
+ {opt_relocate, N_("deprecated; use 'svn relocate'")},
+ {'N', N_("obsolete; same as --depth=files")}}
},
- { "unlock", svn_cl__unlock, {0}, N_
- ("Unlock working copy paths or URLs.\n"
+ { "unlock", svn_cl__unlock, {0}, {N_(
+ "Unlock working copy paths or URLs.\n"
"usage: unlock TARGET...\n"
- "\n"
- " Use --force to break a lock held by another user or working copy.\n"),
+ "\n"), N_(
+ " Use --force to break a lock held by another user or working copy.\n"
+ )},
{ opt_targets, opt_force, 'q' },
{{opt_force, N_("break locks")}} },
- { "update", svn_cl__update, {"up"}, N_
- ("Bring changes from the repository into the working copy.\n"
+ { "update", svn_cl__update, {"up"}, {N_(
+ "Bring changes from the repository into the working copy.\n"
"usage: update [PATH...]\n"
- "\n"
+ "\n"), N_(
" If no revision is given, bring working copy up-to-date with HEAD rev.\n"
" Else synchronize working copy to revision given by -r.\n"
- "\n"
+ "\n"), N_(
" For each updated item a line will be printed with characters reporting\n"
" the action taken. These characters have the following meaning:\n"
- "\n"
+ "\n"), N_(
" A Added\n"
" D Deleted\n"
" U Updated\n"
@@ -1861,7 +1855,7 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" G Merged\n"
" E Existed\n"
" R Replaced\n"
- "\n"
+ "\n"), N_(
" Characters in the first column report about the item itself.\n"
" Characters in the second column report about properties of the item.\n"
" A 'B' in the third column signifies that the lock for the file has\n"
@@ -1869,7 +1863,7 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" A 'C' in the fourth column indicates a tree conflict, while a 'C' in\n"
" the first and second columns indicate textual conflicts in files\n"
" and in property values, respectively.\n"
- "\n"
+ "\n"), N_(
" If --force is used, unversioned obstructing paths in the working\n"
" copy do not automatically cause a failure if the update attempts to\n"
" add the same path. If the obstructing path is the same type (file\n"
@@ -1881,99 +1875,36 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" modification to the working copy. All properties from the repository\n"
" are applied to the obstructing path. Obstructing paths are reported\n"
" in the first column with code 'E'.\n"
- "\n"
+ "\n"), N_(
" If the specified update target is missing from the working copy but its\n"
" immediate parent directory is present, checkout the target into its\n"
" parent directory at the specified depth. If --parents is specified,\n"
" create any missing parent directories of the target by checking them\n"
" out, too, at depth=empty.\n"
- "\n"
+ "\n"), N_(
" Use the --set-depth option to set a new working copy depth on the\n"
- " targets of this operation.\n"),
+ " targets of this operation.\n"
+ )},
{'r', 'N', opt_depth, opt_set_depth, 'q', opt_merge_cmd, opt_force,
opt_ignore_externals, opt_changelist, opt_editor_cmd, opt_accept,
opt_parents, opt_adds_as_modification},
{ {opt_force,
- N_("handle unversioned obstructions as changes")} } },
+ N_("handle unversioned obstructions as changes")},
+ {'N', N_("obsolete; same as --depth=files")} } },
- { "upgrade", svn_cl__upgrade, {0}, N_
- ("Upgrade the metadata storage format for a working copy.\n"
+ { "upgrade", svn_cl__upgrade, {0}, {N_(
+ "Upgrade the metadata storage format for a working copy.\n"
"usage: upgrade [WCPATH...]\n"
- "\n"
- " Local modifications are preserved.\n"),
+ "\n"), N_(
+ " Local modifications are preserved.\n"
+ )},
{ 'q' } },
- { "x-shelve", svn_cl__shelve, {"shelve"}, N_
- ("Put a local change aside, as if putting it on a shelf.\n"
- "usage: 1. x-shelve [--keep-local] NAME [PATH...]\n"
- " 2. x-shelve --delete NAME\n"
- " 3. x-shelve --list\n"
- "\n"
- " 1. Save the local change in the given PATHs to a patch file, and\n"
- " revert that change from the WC unless '--keep-local' is given.\n"
- " If a log message is given with '-m' or '-F', include it at the\n"
- " beginning of the patch file.\n"
- "\n"
- " 2. Delete the shelved change NAME.\n"
- " (A backup is kept, named with a '.bak' extension.)\n"
- "\n"
- " 3. List shelved changes. Include the first line of any log message\n"
- " and some details about the contents of the change, unless '-q' is\n"
- " given.\n"
- "\n"
- " The kinds of change you can shelve are those supported by 'svn diff'\n"
- " and 'svn patch'. The following are currently NOT supported:\n"
- " mergeinfo changes, copies, moves, mkdir, rmdir,\n"
- " 'binary' content, uncommittable states\n"
- "\n"
- " To bring back a shelved change, use 'svn x-unshelve NAME'.\n"
- "\n"
- " Shelved changes are stored in <WC>/.svn/shelves/\n"
- "\n"
- " The shelving feature is EXPERIMENTAL. This command is likely to change\n"
- " in the next release, and there is no promise of backward compatibility.\n"
- ),
- {opt_delete, opt_list, 'q', opt_dry_run, opt_keep_local,
- opt_depth, opt_targets, opt_changelist,
- /* almost SVN_CL__LOG_MSG_OPTIONS but not currently opt_with_revprop: */
- 'm', 'F', opt_force_log, opt_editor_cmd, opt_encoding,
- } },
-
- { "x-unshelve", svn_cl__unshelve, {"unshelve"}, N_
- ("Bring a shelved change back to a local change in the WC.\n"
- "usage: 1. x-unshelve [--keep-shelved] [NAME]\n"
- " 2. x-unshelve --list\n"
- "\n"
- " 1. Apply the shelved change NAME to the working copy.\n"
- " Delete the patch unless the '--keep-shelved' option is given.\n"
- " (A backup is kept, named with a '.bak' extension.)\n"
- " NAME defaults to the most recent shelved change.\n"
- "\n"
- " 2. List shelved changes. Include the first line of any log message\n"
- " and some details about the contents of the change, unless '-q' is\n"
- " given.\n"
- "\n"
- " Any conflict between the change being unshelved and a change\n"
- " already in the WC is handled the same way as by 'svn patch',\n"
- " creating a 'reject' file.\n"
- "\n"
- " The shelving feature is EXPERIMENTAL. This command is likely to change\n"
- " in the next release, and there is no promise of backward compatibility.\n"
- ),
- {opt_keep_shelved, opt_list, 'q', opt_dry_run} },
-
- { "x-shelves", svn_cl__shelves, {"shelves"}, N_
- ("List shelved changes.\n"
- "usage: x-shelves\n"
- "\n"
- " The shelving feature is EXPERIMENTAL. This command is likely to change\n"
- " in the next release, and there is no promise of backward compatibility.\n"
- ),
- {'q'} },
-
- { NULL, NULL, {0}, NULL, {0} }
+ { NULL, NULL, {0}, {NULL}, {0} }
};
+const svn_opt_subcommand_desc3_t *svn_cl__cmd_table = svn_cl__cmd_table_main;
+
/* Version compatibility check */
static svn_error_t *
@@ -2036,6 +1967,49 @@ add_search_pattern_to_latest_group(svn_cl__opt_state_t *opt_state,
APR_ARRAY_PUSH(group, const char *) = pattern;
}
+/* Parse the argument to the --x-viewspec option. */
+static svn_error_t *
+viewspec_from_word(enum svn_cl__viewspec_t *viewspec,
+ const char *utf8_opt_arg)
+{
+ if (!strcmp(utf8_opt_arg, "classic"))
+ *viewspec = svn_cl__viewspec_classic;
+ else if (!strcmp(utf8_opt_arg, "svn11"))
+ *viewspec = svn_cl__viewspec_svn11;
+ else
+ return svn_error_createf(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
+ _("'%s' is not a valid --x-viewspec value"),
+ utf8_opt_arg);
+ return SVN_NO_ERROR;
+}
+
+/* Re-initialize the command table SVN_CL__CMD_TABLE,
+ * adding additional commands from CMDS_ADD.
+ * (TODO: and the options table) */
+static void
+add_commands(const svn_opt_subcommand_desc3_t *cmds_add,
+ apr_pool_t *pool)
+{
+ int elt_size = sizeof(svn_opt_subcommand_desc3_t);
+ const svn_opt_subcommand_desc3_t *cmds_old = svn_cl__cmd_table;
+ const svn_opt_subcommand_desc3_t *cmd;
+ int n_cmds_old, n_cmds_add, n_cmds_new;
+ svn_opt_subcommand_desc3_t *cmds_new;
+
+ for (cmd = cmds_old; cmd->name; cmd++) ;
+ n_cmds_old = (int)(cmd - cmds_old);
+ for (cmd = cmds_add; cmd->name; cmd++) ;
+ n_cmds_add = (int)(cmd - cmds_add);
+ n_cmds_new = n_cmds_old + n_cmds_add;
+
+ /* copy CMDS_OLD and CMDS_ADD, plus an all-zeros terminator entry */
+ cmds_new = apr_pcalloc(pool, (n_cmds_new + 1) * elt_size);
+ memcpy(cmds_new, cmds_old, n_cmds_old * elt_size);
+ memcpy(&cmds_new[n_cmds_old], cmds_add, n_cmds_add * elt_size);
+
+ svn_cl__cmd_table = cmds_new;
+}
+
/*** Main. ***/
@@ -2053,8 +2027,9 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
svn_cl__opt_state_t opt_state = { 0, { 0 } };
svn_client_ctx_t *ctx;
apr_array_header_t *received_opts;
+ const char *exp_cmds;
int i;
- const svn_opt_subcommand_desc2_t *subcommand = NULL;
+ const svn_opt_subcommand_desc3_t *subcommand = NULL;
const char *dash_F_arg = NULL;
svn_cl__cmd_baton_t command_baton;
svn_auth_baton_t *ab;
@@ -2093,6 +2068,18 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
/* Init the temporary buffer. */
svn_membuf__create(&buf, 0, pool);
+ /* Add experimental commands, if requested. Use the most recent version
+ * that we know about and that is mentioned in the env. var. */
+ exp_cmds = getenv("SVN_EXPERIMENTAL_COMMANDS");
+ if (exp_cmds && strstr(exp_cmds, "shelf3"))
+ {
+ add_commands(svn_cl__cmd_table_shelf3, pool);
+ }
+ else if (exp_cmds && strstr(exp_cmds, "shelf2"))
+ {
+ add_commands(svn_cl__cmd_table_shelf2, pool);
+ }
+
/* Begin processing arguments. */
opt_state.start_revision.kind = svn_opt_revision_unspecified;
opt_state.end_revision.kind = svn_opt_revision_unspecified;
@@ -2102,6 +2089,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
opt_state.set_depth = svn_depth_unknown;
opt_state.accept_which = svn_cl__accept_unspecified;
opt_state.show_revs = svn_cl__show_revs_invalid;
+ opt_state.file_size_unit = SVN_CL__SIZE_UNIT_NONE;
/* No args? Show usage. */
if (argc <= 1)
@@ -2308,9 +2296,6 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
case opt_dry_run:
opt_state.dry_run = TRUE;
break;
- case opt_list:
- opt_state.list = TRUE;
- break;
case opt_revprop:
opt_state.revprop = TRUE;
break;
@@ -2320,6 +2305,9 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
case 'N':
descend = FALSE;
break;
+ case 'H':
+ opt_state.file_size_unit = SVN_CL__SIZE_UNIT_BASE_2;
+ break;
case opt_depth:
err = svn_utf_cstring_to_utf8(&utf8_opt_arg, opt_arg, pool);
if (err)
@@ -2457,7 +2445,8 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
break;
case opt_config_dir:
SVN_ERR(svn_utf_cstring_to_utf8(&utf8_opt_arg, opt_arg, pool));
- opt_state.config_dir = svn_dirent_internal_style(utf8_opt_arg, pool);
+ SVN_ERR(svn_dirent_internal_style_safe(&opt_state.config_dir, NULL,
+ utf8_opt_arg, pool, pool));
break;
case opt_config_options:
if (!opt_state.config_options)
@@ -2494,9 +2483,11 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
opt_state.diff.summarize = TRUE;
break;
case opt_remove:
- case opt_delete:
opt_state.remove = TRUE;
break;
+ case opt_drop:
+ opt_state.drop = TRUE;
+ break;
case opt_changelist:
SVN_ERR(svn_utf_cstring_to_utf8(&utf8_opt_arg, opt_arg, pool));
if (utf8_opt_arg[0] == '\0')
@@ -2510,7 +2501,6 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
opt_state.keep_changelists = TRUE;
break;
case opt_keep_local:
- case opt_keep_shelved:
opt_state.keep_local = TRUE;
break;
case opt_with_all_revprops:
@@ -2625,6 +2615,9 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
case opt_remove_ignored:
opt_state.remove_ignored = TRUE;
break;
+ case opt_remove_added:
+ opt_state.remove_added = TRUE;
+ break;
case opt_no_newline:
case opt_strict: /* ### DEPRECATED */
opt_state.no_newline = TRUE;
@@ -2645,6 +2638,11 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
case opt_vacuum_pristines:
opt_state.vacuum_pristines = TRUE;
break;
+ case opt_viewspec:
+ opt_state.viewspec = TRUE;
+ SVN_ERR(svn_utf_cstring_to_utf8(&utf8_opt_arg, opt_arg, pool));
+ SVN_ERR(viewspec_from_word(&opt_state.viewspec, utf8_opt_arg));
+ break;
default:
/* Hmmm. Perhaps this would be a good place to squirrel away
opts that commands like svn diff might need. Hmmm indeed. */
@@ -2685,7 +2683,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
just typos/mistakes. Whatever the case, the subcommand to
actually run is svn_cl__help(). */
if (opt_state.help)
- subcommand = svn_opt_get_canonical_subcommand2(svn_cl__cmd_table, "help");
+ subcommand = svn_opt_get_canonical_subcommand3(svn_cl__cmd_table, "help");
/* If we're not running the `help' subcommand, then look for a
subcommand in the first argument. */
@@ -2696,8 +2694,8 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_state.version)
{
/* Use the "help" subcommand to handle the "--version" option. */
- static const svn_opt_subcommand_desc2_t pseudo_cmd =
- { "--version", svn_cl__help, {0}, "",
+ static const svn_opt_subcommand_desc3_t pseudo_cmd =
+ { "--version", svn_cl__help, {0}, {""},
{opt_version, /* must accept its own option */
'q', /* brief output */
'v', /* verbose output */
@@ -2722,7 +2720,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
SVN_ERR(svn_utf_cstring_to_utf8(&first_arg, os->argv[os->ind++],
pool));
- subcommand = svn_opt_get_canonical_subcommand2(svn_cl__cmd_table,
+ subcommand = svn_opt_get_canonical_subcommand3(svn_cl__cmd_table,
first_arg);
if (subcommand == NULL)
{
@@ -2760,12 +2758,12 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_id == 'h' || opt_id == '?')
continue;
- if (! svn_opt_subcommand_takes_option3(subcommand, opt_id,
+ if (! svn_opt_subcommand_takes_option4(subcommand, opt_id,
svn_cl__global_options))
{
const char *optstr;
const apr_getopt_option_t *badopt =
- svn_opt_get_option_from_code2(opt_id, svn_cl__options,
+ svn_opt_get_option_from_code3(opt_id, svn_cl__options,
subcommand, pool);
svn_opt_format_option(&optstr, badopt, FALSE, pool);
if (subcommand->name[0] == '-')
@@ -3016,15 +3014,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
sense (unless we've also been instructed not to care). This may
access the working copy so do it after setting the locking mode. */
if ((! opt_state.force_log)
- && (subcommand->cmd_func == svn_cl__commit
- || subcommand->cmd_func == svn_cl__copy
- || subcommand->cmd_func == svn_cl__delete
- || subcommand->cmd_func == svn_cl__import
- || subcommand->cmd_func == svn_cl__mkdir
- || subcommand->cmd_func == svn_cl__move
- || subcommand->cmd_func == svn_cl__lock
- || subcommand->cmd_func == svn_cl__propedit
- || subcommand->cmd_func == svn_cl__shelve))
+ && subcommand->cmd_func != svn_cl__propset)
{
/* If the -F argument is a file that's under revision control,
that's probably not what the user intended. */
@@ -3032,7 +3022,10 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
{
svn_node_kind_t kind;
const char *local_abspath;
- const char *fname = svn_dirent_internal_style(dash_F_arg, pool);
+ const char *fname;
+
+ SVN_ERR(svn_dirent_internal_style_safe(&fname, NULL, dash_F_arg,
+ pool, pool));
err = svn_dirent_get_absolute(&local_abspath, fname, pool);
diff --git a/subversion/svn/util.c b/subversion/svn/util.c
index a18e5f37c9f7..757983a9963f 100644
--- a/subversion/svn/util.c
+++ b/subversion/svn/util.c
@@ -163,6 +163,8 @@ svn_cl__merge_file_externally(const char *base_path,
arguments[5] = wc_path;
arguments[6] = NULL;
+ /* Presumably apr_filepath_get() returns a valid path, so we don't have
+ to use the safe version of svn_dirent_internal_style() here. */
SVN_ERR(svn_io_run_cmd(svn_dirent_internal_style(cwd, pool), merge_tool,
arguments, &exitcode, NULL, TRUE, NULL, NULL, NULL,
pool));
diff --git a/subversion/svn_private_config.h.in b/subversion/svn_private_config.h.in
index dbc52450c40b..93255e67b189 100644
--- a/subversion/svn_private_config.h.in
+++ b/subversion/svn_private_config.h.in
@@ -16,12 +16,21 @@
/* Define to 1 if you have the `bind_textdomain_codeset' function. */
#undef HAVE_BIND_TEXTDOMAIN_CODESET
+/* define if the Boost library is available */
+#undef HAVE_BOOST
+
+/* define if the Boost::Unit_Test_Framework library is available */
+#undef HAVE_BOOST_UNIT_TEST_FRAMEWORK
+
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
#undef HAVE_DOPRNT
+/* Define to 1 if you have the <elf.h> header file. */
+#undef HAVE_ELF_H
+
/* Define to 1 if you have the `getpid' function. */
#undef HAVE_GETPID
@@ -40,6 +49,9 @@
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
+/* Define to 1 if you have the <py3c.h> header file. */
+#undef HAVE_PY3C_H
+
/* Define to 1 if you have the `rb_errinfo' function. */
#undef HAVE_RB_ERRINFO
@@ -124,9 +136,6 @@
/* Defined to build against httpd 2.4 with broken auth */
#undef SVN_ALLOW_BROKEN_HTTPD_AUTH
-/* Define to the Python/C API format character suitable for apr_int64_t */
-#undef SVN_APR_INT64_T_PYCFMT
-
/* Defined to be the path to the installed binaries */
#undef SVN_BINDIR
diff --git a/subversion/svnadmin/svnadmin.c b/subversion/svnadmin/svnadmin.c
index eb26c5a8f0fc..949ed4247345 100644
--- a/subversion/svnadmin/svnadmin.c
+++ b/subversion/svnadmin/svnadmin.c
@@ -42,6 +42,7 @@
#include "svn_time.h"
#include "svn_user.h"
#include "svn_xml.h"
+#include "svn_fs.h"
#include "private/svn_cmdline_private.h"
#include "private/svn_opt_private.h"
@@ -49,6 +50,7 @@
#include "private/svn_subr_private.h"
#include "private/svn_cmdline_private.h"
#include "private/svn_fspath.h"
+#include "private/svn_fs_fs_private.h"
#include "svn_private_config.h"
@@ -95,6 +97,7 @@ check_lib_versions(void)
/** Subcommands. **/
static svn_opt_subcommand_t
+ subcommand_build_repcache,
subcommand_crashtest,
subcommand_create,
subcommand_delrevprop,
@@ -114,6 +117,7 @@ static svn_opt_subcommand_t
subcommand_lstxns,
subcommand_pack,
subcommand_recover,
+ subcommand_rev_size,
subcommand_rmlocks,
subcommand_rmtxns,
subcommand_setlog,
@@ -301,47 +305,69 @@ static const apr_getopt_option_t options_table[] =
/* Array of available subcommands.
* The entire list must be terminated with an entry of nulls.
*/
-static const svn_opt_subcommand_desc2_t cmd_table[] =
+static const svn_opt_subcommand_desc3_t cmd_table[] =
{
- {"crashtest", subcommand_crashtest, {0}, N_
- ("usage: svnadmin crashtest REPOS_PATH\n\n"
+ {"build-repcache", subcommand_build_repcache, {0}, {N_(
+ "usage: svnadmin build-repcache REPOS_PATH [-r LOWER[:UPPER]]\n"
+ "\n"), N_(
+ "Add missing entries to the representation cache for the repository\n"
+ "at REPOS_PATH. Process data in revisions LOWER through UPPER.\n"
+ "If no revision arguments are given, process all revisions. If only\n"
+ "LOWER revision argument is given, process only that single revision.\n"
+ )},
+ {'r', 'q', 'M'} },
+
+ {"crashtest", subcommand_crashtest, {0}, {N_(
+ "usage: svnadmin crashtest REPOS_PATH\n"
+ "\n"), N_(
"Open the repository at REPOS_PATH, then abort, thus simulating\n"
- "a process that crashes while holding an open repository handle.\n"),
+ "a process that crashes while holding an open repository handle.\n"
+ )},
{0} },
- {"create", subcommand_create, {0}, N_
- ("usage: svnadmin create REPOS_PATH\n\n"
- "Create a new, empty repository at REPOS_PATH.\n"),
+ {"create", subcommand_create, {0}, {N_(
+ "usage: svnadmin create REPOS_PATH\n"
+ "\n"), N_(
+ "Create a new, empty repository at REPOS_PATH.\n"
+ )},
{svnadmin__bdb_txn_nosync, svnadmin__bdb_log_keep,
svnadmin__config_dir, svnadmin__fs_type, svnadmin__compatible_version,
svnadmin__pre_1_4_compatible, svnadmin__pre_1_5_compatible,
svnadmin__pre_1_6_compatible
} },
- {"delrevprop", subcommand_delrevprop, {0}, N_
- ("usage: 1. svnadmin delrevprop REPOS_PATH -r REVISION NAME\n"
- " 2. svnadmin delrevprop REPOS_PATH -t TXN NAME\n\n"
- "1. Delete the property NAME on revision REVISION.\n\n"
+ {"delrevprop", subcommand_delrevprop, {0}, {N_(
+ "usage: 1. svnadmin delrevprop REPOS_PATH -r REVISION NAME\n"
+ " 2. svnadmin delrevprop REPOS_PATH -t TXN NAME\n"
+ "\n"), N_(
+ "1. Delete the property NAME on revision REVISION.\n"
+ "\n"), N_(
"Use --use-pre-revprop-change-hook/--use-post-revprop-change-hook to\n"
"trigger the revision property-related hooks (for example, if you want\n"
- "an email notification sent from your post-revprop-change hook).\n\n"
+ "an email notification sent from your post-revprop-change hook).\n"
+ "\n"), N_(
"NOTE: Revision properties are not versioned, so this command will\n"
- "irreversibly destroy the previous value of the property.\n\n"
- "2. Delete the property NAME on transaction TXN.\n"),
+ "irreversibly destroy the previous value of the property.\n"
+ "\n"), N_(
+ "2. Delete the property NAME on transaction TXN.\n"
+ )},
{'r', 't', svnadmin__use_pre_revprop_change_hook,
svnadmin__use_post_revprop_change_hook} },
- {"deltify", subcommand_deltify, {0}, N_
- ("usage: svnadmin deltify [-r LOWER[:UPPER]] REPOS_PATH\n\n"
+ {"deltify", subcommand_deltify, {0}, {N_(
+ "usage: svnadmin deltify [-r LOWER[:UPPER]] REPOS_PATH\n"
+ "\n"), N_(
"Run over the requested revision range, performing predecessor delti-\n"
"fication on the paths changed in those revisions. Deltification in\n"
"essence compresses the repository by only storing the differences or\n"
"delta from the preceding revision. If no revisions are specified,\n"
- "this will simply deltify the HEAD revision.\n"),
+ "this will simply deltify the HEAD revision.\n"
+ )},
{'r', 'q', 'M'} },
- {"dump", subcommand_dump, {0}, N_
- ("usage: svnadmin dump REPOS_PATH [-r LOWER[:UPPER] [--incremental]]\n\n"
+ {"dump", subcommand_dump, {0}, {N_(
+ "usage: svnadmin dump REPOS_PATH [-r LOWER[:UPPER] [--incremental]]\n"
+ "\n"), N_(
"Dump the contents of filesystem to stdout in a 'dumpfile'\n"
"portable format, sending feedback to stderr. Dump revisions\n"
"LOWER rev through UPPER rev. If no revisions are given, dump all\n"
@@ -351,73 +377,94 @@ static const svn_opt_subcommand_desc2_t cmd_table[] =
"every path present in the repository as of that revision. (In either\n"
"case, the second and subsequent revisions, if any, describe only paths\n"
"changed in those revisions.)\n"
- "\n"
+ "\n"), N_(
"Using --exclude or --include gives results equivalent to authz-based\n"
"path exclusions. In particular, when the source of a copy is\n"
- "excluded, the copy is transformed into an add (unlike in 'svndumpfilter').\n"),
+ "excluded, the copy is transformed into an add (unlike in 'svndumpfilter').\n"
+ )},
{'r', svnadmin__incremental, svnadmin__deltas, 'q', 'M', 'F',
svnadmin__exclude, svnadmin__include, svnadmin__glob },
{{'F', N_("write to file ARG instead of stdout")}} },
- {"dump-revprops", subcommand_dump_revprops, {0}, N_
- ("usage: svnadmin dump-revprops REPOS_PATH [-r LOWER[:UPPER]]\n\n"
+ {"dump-revprops", subcommand_dump_revprops, {0}, {N_(
+ "usage: svnadmin dump-revprops REPOS_PATH [-r LOWER[:UPPER]]\n"
+ "\n"), N_(
"Dump the revision properties of filesystem to stdout in a 'dumpfile'\n"
"portable format, sending feedback to stderr. Dump revisions\n"
"LOWER rev through UPPER rev. If no revisions are given, dump the\n"
"properties for all revisions. If only LOWER is given, dump the\n"
- "properties for that one revision.\n"),
+ "properties for that one revision.\n"
+ )},
{'r', 'q', 'F'},
{{'F', N_("write to file ARG instead of stdout")}} },
- {"freeze", subcommand_freeze, {0}, N_
- ("usage: 1. svnadmin freeze REPOS_PATH PROGRAM [ARG...]\n"
- " 2. svnadmin freeze -F FILE PROGRAM [ARG...]\n\n"
+ {"freeze", subcommand_freeze, {0}, {N_(
+ "usage: 1. svnadmin freeze REPOS_PATH -- PROGRAM [ARG...]\n"
+ " 2. svnadmin freeze -F FILE -- PROGRAM [ARG...]\n"
+ "\n"), N_(
"1. Run PROGRAM passing ARGS while holding a write-lock on REPOS_PATH.\n"
" Allows safe use of third-party backup tools on a live repository.\n"
- "\n"
+ "\n"), N_(
"2. Like 1 except all repositories listed in FILE are locked. The file\n"
" format is repository paths separated by newlines. Repositories are\n"
- " locked in the same order as they are listed in the file.\n"),
+ " locked in the same order as they are listed in the file.\n"
+ "\n"
+ "The '--' tells svnadmin to stop looking for svnadmin options and pass\n"
+ "all later arguments to PROGRAM even if they begin with '-'.\n"
+ )},
{'F'},
{{'F', N_("read repository paths from file ARG")}} },
- {"help", subcommand_help, {"?", "h"}, N_
- ("usage: svnadmin help [SUBCOMMAND...]\n\n"
- "Describe the usage of this program or its subcommands.\n"),
+ {"help", subcommand_help, {"?", "h"}, {N_(
+ "usage: svnadmin help [SUBCOMMAND...]\n"
+ "\n"), N_(
+ "Describe the usage of this program or its subcommands.\n"
+ )},
{0} },
- {"hotcopy", subcommand_hotcopy, {0}, N_
- ("usage: svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH\n\n"
+ {"hotcopy", subcommand_hotcopy, {0}, {N_(
+ "usage: svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH\n"
+ "\n"), N_(
"Make a hot copy of a repository.\n"
"If --incremental is passed, data which already exists at the destination\n"
- "is not copied again. Incremental mode is implemented for FSFS repositories.\n"),
+ "is not copied again. Incremental mode is implemented for FSFS repositories.\n"
+ )},
{svnadmin__clean_logs, svnadmin__incremental, 'q'} },
- {"info", subcommand_info, {0}, N_
- ("usage: svnadmin info REPOS_PATH\n\n"
- "Print information about the repository at REPOS_PATH.\n"),
+ {"info", subcommand_info, {0}, {N_(
+ "usage: svnadmin info REPOS_PATH\n"
+ "\n"), N_(
+ "Print information about the repository at REPOS_PATH.\n"
+ )},
{0} },
- {"list-dblogs", subcommand_list_dblogs, {0}, N_
- ("usage: svnadmin list-dblogs REPOS_PATH\n\n"
- "List all Berkeley DB log files.\n\n"
+ {"list-dblogs", subcommand_list_dblogs, {0}, {N_(
+ "usage: svnadmin list-dblogs REPOS_PATH\n"
+ "\n"), N_(
+ "List all Berkeley DB log files.\n"
+ "\n"), N_(
"WARNING: Modifying or deleting logfiles which are still in use\n"
- "will cause your repository to be corrupted.\n"),
+ "will cause your repository to be corrupted.\n"
+ )},
{0} },
- {"list-unused-dblogs", subcommand_list_unused_dblogs, {0}, N_
- ("usage: svnadmin list-unused-dblogs REPOS_PATH\n\n"
- "List unused Berkeley DB log files.\n\n"),
+ {"list-unused-dblogs", subcommand_list_unused_dblogs, {0}, {N_(
+ "usage: svnadmin list-unused-dblogs REPOS_PATH\n"
+ "\n"), N_(
+ "List unused Berkeley DB log files.\n"
+ )},
{0} },
- {"load", subcommand_load, {0}, N_
- ("usage: svnadmin load REPOS_PATH\n\n"
+ {"load", subcommand_load, {0}, {N_(
+ "usage: svnadmin load REPOS_PATH\n"
+ "\n"), N_(
"Read a 'dumpfile'-formatted stream from stdin, committing\n"
"new revisions into the repository's filesystem. If the repository\n"
"was previously empty, its UUID will, by default, be changed to the\n"
"one specified in the stream. Progress feedback is sent to stdout.\n"
"If --revision is specified, limit the loaded revisions to only those\n"
- "in the dump stream whose revision numbers match the specified range.\n"),
+ "in the dump stream whose revision numbers match the specified range.\n"
+ )},
{'q', 'r', svnadmin__ignore_uuid, svnadmin__force_uuid,
svnadmin__ignore_dates,
svnadmin__use_pre_commit_hook, svnadmin__use_post_commit_hook,
@@ -426,122 +473,166 @@ static const svn_opt_subcommand_desc2_t cmd_table[] =
svnadmin__no_flush_to_disk, 'F'},
{{'F', N_("read from file ARG instead of stdin")}} },
- {"load-revprops", subcommand_load_revprops, {0}, N_
- ("usage: svnadmin load-revprops REPOS_PATH\n\n"
+ {"load-revprops", subcommand_load_revprops, {0}, {N_(
+ "usage: svnadmin load-revprops REPOS_PATH\n"
+ "\n"), N_(
"Read a 'dumpfile'-formatted stream from stdin, setting the revision\n"
"properties in the repository's filesystem. Revisions not found in the\n"
"repository will cause an error. Progress feedback is sent to stdout.\n"
"If --revision is specified, limit the loaded revisions to only those\n"
- "in the dump stream whose revision numbers match the specified range.\n"),
+ "in the dump stream whose revision numbers match the specified range.\n"
+ )},
{'q', 'r', svnadmin__force_uuid, svnadmin__normalize_props,
svnadmin__bypass_prop_validation, svnadmin__no_flush_to_disk, 'F'},
{{'F', N_("read from file ARG instead of stdin")}} },
- {"lock", subcommand_lock, {0}, N_
- ("usage: svnadmin lock REPOS_PATH PATH USERNAME COMMENT-FILE [TOKEN]\n\n"
+ {"lock", subcommand_lock, {0}, {N_(
+ "usage: svnadmin lock REPOS_PATH PATH USERNAME COMMENT-FILE [TOKEN]\n"
+ "\n"), N_(
"Lock PATH by USERNAME setting comments from COMMENT-FILE.\n"
"If provided, use TOKEN as lock token. Use --bypass-hooks to avoid\n"
- "triggering the pre-lock and post-lock hook scripts.\n"),
+ "triggering the pre-lock and post-lock hook scripts.\n"
+ )},
{svnadmin__bypass_hooks, 'q'} },
- {"lslocks", subcommand_lslocks, {0}, N_
- ("usage: svnadmin lslocks REPOS_PATH [PATH-IN-REPOS]\n\n"
+ {"lslocks", subcommand_lslocks, {0}, {N_(
+ "usage: svnadmin lslocks REPOS_PATH [PATH-IN-REPOS]\n"
+ "\n"), N_(
"Print descriptions of all locks on or under PATH-IN-REPOS (which,\n"
- "if not provided, is the root of the repository).\n"),
+ "if not provided, is the root of the repository).\n"
+ )},
{0} },
- {"lstxns", subcommand_lstxns, {0}, N_
- ("usage: svnadmin lstxns REPOS_PATH\n\n"
+ {"lstxns", subcommand_lstxns, {0}, {N_(
+ "usage: svnadmin lstxns REPOS_PATH\n"
+ "\n"), N_(
"Print the names of uncommitted transactions. With -rN skip the output\n"
"of those that have a base revision more recent than rN. Transactions\n"
"with base revisions much older than HEAD are likely to have been\n"
- "abandonded and are candidates to be removed.\n"),
+ "abandoned and are candidates to be removed.\n"
+ )},
{'r'},
{ {'r', "transaction base revision ARG"} } },
- {"pack", subcommand_pack, {0}, N_
- ("usage: svnadmin pack REPOS_PATH\n\n"
+ {"pack", subcommand_pack, {0}, {N_(
+ "usage: svnadmin pack REPOS_PATH\n"
+ "\n"), N_(
"Possibly compact the repository into a more efficient storage model.\n"
- "This may not apply to all repositories, in which case, exit.\n"),
+ "This may not apply to all repositories, in which case, exit.\n"
+ )},
{'q', 'M'} },
- {"recover", subcommand_recover, {0}, N_
- ("usage: svnadmin recover REPOS_PATH\n\n"
+ {"recover", subcommand_recover, {0}, {N_(
+ "usage: svnadmin recover REPOS_PATH\n"
+ "\n"), N_(
"Run the recovery procedure on a repository. Do this if you've\n"
"been getting errors indicating that recovery ought to be run.\n"
"Berkeley DB recovery requires exclusive access and will\n"
- "exit if the repository is in use by another process.\n"),
+ "exit if the repository is in use by another process.\n"
+ )},
{svnadmin__wait} },
- {"rmlocks", subcommand_rmlocks, {0}, N_
- ("usage: svnadmin rmlocks REPOS_PATH LOCKED_PATH...\n\n"
- "Unconditionally remove lock from each LOCKED_PATH.\n"),
+ {"rev-size", subcommand_rev_size, {0}, {N_(
+ "usage: svnadmin rev-size REPOS_PATH -r REVISION\n"
+ "\n"), N_(
+ "Print the total size in bytes of the representation on disk of\n"
+ "revision REVISION.\n"
+ "\n"), N_(
+ "The size includes revision properties and excludes FSFS indexes.\n"
+ )},
+ {'r', 'q', 'M'},
+ { {'q', "print only the size and a newline"} } },
+
+ {"rmlocks", subcommand_rmlocks, {0}, {N_(
+ "usage: svnadmin rmlocks REPOS_PATH LOCKED_PATH...\n"
+ "\n"), N_(
+ "Unconditionally remove lock from each LOCKED_PATH.\n"
+ )},
{'q'} },
- {"rmtxns", subcommand_rmtxns, {0}, N_
- ("usage: svnadmin rmtxns REPOS_PATH TXN_NAME...\n\n"
- "Delete the named transaction(s).\n"),
+ {"rmtxns", subcommand_rmtxns, {0}, {N_(
+ "usage: svnadmin rmtxns REPOS_PATH TXN_NAME...\n"
+ "\n"), N_(
+ "Delete the named transaction(s).\n"
+ )},
{'q'} },
- {"setlog", subcommand_setlog, {0}, N_
- ("usage: svnadmin setlog REPOS_PATH -r REVISION FILE\n\n"
+ {"setlog", subcommand_setlog, {0}, {N_(
+ "usage: svnadmin setlog REPOS_PATH -r REVISION FILE\n"
+ "\n"), N_(
"Set the log-message on revision REVISION to the contents of FILE. Use\n"
"--bypass-hooks to avoid triggering the revision-property-related hooks\n"
"(for example, if you do not want an email notification sent\n"
"from your post-revprop-change hook, or because the modification of\n"
"revision properties has not been enabled in the pre-revprop-change\n"
- "hook).\n\n"
+ "hook).\n"
+ "\n"), N_(
"NOTE: Revision properties are not versioned, so this command will\n"
- "overwrite the previous log message.\n"),
+ "overwrite the previous log message.\n"
+ )},
{'r', svnadmin__bypass_hooks} },
- {"setrevprop", subcommand_setrevprop, {0}, N_
- ("usage: 1. svnadmin setrevprop REPOS_PATH -r REVISION NAME FILE\n"
- " 2. svnadmin setrevprop REPOS_PATH -t TXN NAME FILE\n\n"
- "1. Set the property NAME on revision REVISION to the contents of FILE.\n\n"
+ {"setrevprop", subcommand_setrevprop, {0}, {N_(
+ "usage: 1. svnadmin setrevprop REPOS_PATH -r REVISION NAME FILE\n"
+ " 2. svnadmin setrevprop REPOS_PATH -t TXN NAME FILE\n"
+ "\n"), N_(
+ "1. Set the property NAME on revision REVISION to the contents of FILE.\n"
+ "\n"), N_(
"Use --use-pre-revprop-change-hook/--use-post-revprop-change-hook to\n"
"trigger the revision property-related hooks (for example, if you want\n"
- "an email notification sent from your post-revprop-change hook).\n\n"
+ "an email notification sent from your post-revprop-change hook).\n"
+ "\n"), N_(
"NOTE: Revision properties are not versioned, so this command will\n"
- "overwrite the previous value of the property.\n\n"
- "2. Set the property NAME on transaction TXN to the contents of FILE.\n"),
+ "overwrite the previous value of the property.\n"
+ "\n"), N_(
+ "2. Set the property NAME on transaction TXN to the contents of FILE.\n"
+ )},
{'r', 't', svnadmin__use_pre_revprop_change_hook,
svnadmin__use_post_revprop_change_hook} },
- {"setuuid", subcommand_setuuid, {0}, N_
- ("usage: svnadmin setuuid REPOS_PATH [NEW_UUID]\n\n"
+ {"setuuid", subcommand_setuuid, {0}, {N_(
+ "usage: svnadmin setuuid REPOS_PATH [NEW_UUID]\n"
+ "\n"), N_(
"Reset the repository UUID for the repository located at REPOS_PATH. If\n"
"NEW_UUID is provided, use that as the new repository UUID; otherwise,\n"
- "generate a brand new UUID for the repository.\n"),
+ "generate a brand new UUID for the repository.\n"
+ )},
{0} },
- {"unlock", subcommand_unlock, {0}, N_
- ("usage: svnadmin unlock REPOS_PATH LOCKED_PATH USERNAME TOKEN\n\n"
+ {"unlock", subcommand_unlock, {0}, {N_(
+ "usage: svnadmin unlock REPOS_PATH LOCKED_PATH USERNAME TOKEN\n"
+ "\n"), N_(
"Unlock LOCKED_PATH (as USERNAME) after verifying that the token\n"
"associated with the lock matches TOKEN. Use --bypass-hooks to avoid\n"
- "triggering the pre-unlock and post-unlock hook scripts.\n"),
+ "triggering the pre-unlock and post-unlock hook scripts.\n"
+ )},
{svnadmin__bypass_hooks, 'q'} },
- {"upgrade", subcommand_upgrade, {0}, N_
- ("usage: svnadmin upgrade REPOS_PATH\n\n"
+ {"upgrade", subcommand_upgrade, {0}, {N_(
+ "usage: svnadmin upgrade REPOS_PATH\n"
+ "\n"), N_(
"Upgrade the repository located at REPOS_PATH to the latest supported\n"
- "schema version.\n\n"
+ "schema version.\n"
+ "\n"), N_(
"This functionality is provided as a convenience for repository\n"
"administrators who wish to make use of new Subversion functionality\n"
"without having to undertake a potentially costly full repository dump\n"
"and load operation. As such, the upgrade performs only the minimum\n"
"amount of work needed to accomplish this while still maintaining the\n"
"integrity of the repository. It does not guarantee the most optimized\n"
- "repository state as a dump and subsequent load would.\n"),
+ "repository state as a dump and subsequent load would.\n"
+ )},
{0} },
- {"verify", subcommand_verify, {0}, N_
- ("usage: svnadmin verify REPOS_PATH\n\n"
- "Verify the data stored in the repository.\n"),
+ {"verify", subcommand_verify, {0}, {N_(
+ "usage: svnadmin verify REPOS_PATH\n"
+ "\n"), N_(
+ "Verify the data stored in the repository.\n"
+ )},
{'t', 'r', 'q', svnadmin__keep_going, 'M',
svnadmin__check_normalization, svnadmin__metadata_only} },
- { NULL, NULL, {0}, NULL, {0} }
+ { NULL, NULL, {0}, {NULL}, {0} }
};
@@ -1540,7 +1631,7 @@ subcommand_help(apr_getopt_t *os, void *baton, apr_pool_t *pool)
version_footer = svn_stringbuf_create(fs_desc_start, pool);
SVN_ERR(svn_fs_print_modules(version_footer, pool));
- SVN_ERR(svn_opt_print_help4(os, "svnadmin",
+ SVN_ERR(svn_opt_print_help5(os, "svnadmin",
opt_state ? opt_state->version : FALSE,
opt_state ? opt_state->quiet : FALSE,
/*###opt_state ? opt_state->verbose :*/ FALSE,
@@ -1753,7 +1844,7 @@ subcommand_lstxns(apr_getopt_t *os, void *baton, apr_pool_t *pool)
SVN_ERR(svn_fs_youngest_rev(&youngest, fs, pool));
SVN_ERR(get_revnum(&limit, &opt_state->start_revision, youngest, repos,
pool));
-
+
iterpool = svn_pool_create(pool);
for (i = 0; i < txns->nelts; i++)
{
@@ -2191,15 +2282,16 @@ subcommand_verify(apr_getopt_t *os, void *baton, apr_pool_t *pool)
check_cancel, NULL, pool));
/* Show the --keep-going error summary. */
- if (!opt_state->quiet
- && opt_state->keep_going
- && verify_baton.error_summary->nelts > 0)
+ if (opt_state->keep_going && verify_baton.error_summary->nelts > 0)
{
int rev_maxlength;
svn_revnum_t end_revnum;
apr_pool_t *iterpool;
int i;
+ if (feedback_stream == NULL) /* happens when we are in --quiet mode */
+ feedback_stream = recode_stream_create(stdout, pool);
+
svn_error_clear(
svn_stream_puts(feedback_stream,
_("\n-----Summary of corrupt revisions-----\n")));
@@ -2780,6 +2872,169 @@ subcommand_delrevprop(apr_getopt_t *os, void *baton, apr_pool_t *pool)
}
+/* Set *REV_SIZE to the total size in bytes of the representation on disk
+ * of revision REVISION in FS.
+ *
+ * This is implemented only for FSFS repositories, and otherwise returns
+ * an SVN_ERR_UNSUPPORTED_FEATURE error.
+ *
+ * The size includes revision properties and excludes FSFS indexes.
+ */
+static svn_error_t *
+revision_size(apr_off_t *rev_size,
+ svn_fs_t *fs,
+ svn_revnum_t revision,
+ apr_pool_t *scratch_pool)
+{
+ svn_error_t *err;
+ svn_fs_fs__ioctl_revision_size_input_t input = {0};
+ svn_fs_fs__ioctl_revision_size_output_t *output;
+
+ input.revision = revision;
+ err = svn_fs_ioctl(fs, SVN_FS_FS__IOCTL_REVISION_SIZE,
+ &input, (void **)&output,
+ check_cancel, NULL, scratch_pool, scratch_pool);
+ if (err && err->apr_err == SVN_ERR_FS_UNRECOGNIZED_IOCTL_CODE)
+ {
+ return svn_error_quick_wrapf(err,
+ _("Revision size query is not implemented "
+ "for the filesystem type found in '%s'"),
+ svn_fs_path(fs, scratch_pool));
+ }
+ SVN_ERR(err);
+
+ *rev_size = output->rev_size;
+ return SVN_NO_ERROR;
+}
+
+/* This implements `svn_opt_subcommand_t'. */
+svn_error_t *
+subcommand_rev_size(apr_getopt_t *os, void *baton, apr_pool_t *pool)
+{
+ struct svnadmin_opt_state *opt_state = baton;
+ svn_revnum_t revision;
+ apr_off_t rev_size;
+ svn_repos_t *repos;
+
+ if (opt_state->start_revision.kind != svn_opt_revision_number
+ || opt_state->end_revision.kind != svn_opt_revision_unspecified)
+ return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
+ _("Invalid revision specifier"));
+ revision = opt_state->start_revision.value.number;
+
+ SVN_ERR(open_repos(&repos, opt_state->repository_path, opt_state, pool));
+ SVN_ERR(revision_size(&rev_size, svn_repos_fs(repos), revision, pool));
+
+ if (opt_state->quiet)
+ SVN_ERR(svn_cmdline_printf(pool, "%"APR_OFF_T_FMT"\n", rev_size));
+ else
+ SVN_ERR(svn_cmdline_printf(pool, _("%12"APR_OFF_T_FMT" bytes in revision %ld\n"),
+ rev_size, revision));
+
+ return SVN_NO_ERROR;
+}
+
+static void
+build_rep_cache_progress_func(svn_revnum_t revision,
+ void *baton,
+ apr_pool_t *pool)
+{
+ svn_error_clear(svn_cmdline_printf(pool,
+ _("* Processed revision %ld.\n"),
+ revision));
+}
+
+static svn_error_t *
+build_rep_cache(svn_fs_t *fs,
+ svn_revnum_t start_rev,
+ svn_revnum_t end_rev,
+ struct svnadmin_opt_state *opt_state,
+ apr_pool_t *pool)
+{
+ svn_fs_fs__ioctl_build_rep_cache_input_t input = {0};
+ svn_error_t *err;
+
+ input.start_rev = start_rev;
+ input.end_rev = end_rev;
+
+ if (opt_state->quiet)
+ {
+ input.progress_func = NULL;
+ input.progress_baton = NULL;
+ }
+ else
+ {
+ input.progress_func = build_rep_cache_progress_func;
+ input.progress_baton = NULL;
+ }
+
+ err = svn_fs_ioctl(fs, SVN_FS_FS__IOCTL_BUILD_REP_CACHE,
+ &input, NULL,
+ check_cancel, NULL, pool, pool);
+ if (err && err->apr_err == SVN_ERR_FS_UNRECOGNIZED_IOCTL_CODE)
+ {
+ return svn_error_quick_wrapf(err,
+ _("Building rep-cache is not implemented "
+ "for the filesystem type found in '%s'"),
+ svn_fs_path(fs, pool));
+ }
+ else if (err && err->apr_err == SVN_ERR_FS_REP_SHARING_NOT_ALLOWED)
+ {
+ svn_error_clear(err);
+ SVN_ERR(svn_cmdline_printf(pool,
+ _("svnadmin: Warning - this repository has rep-sharing disabled."
+ " Building rep-cache has no effect.\n")));
+ return SVN_NO_ERROR;
+ }
+ else
+ {
+ return err;
+ }
+}
+
+/* This implements `svn_opt_subcommand_t'. */
+static svn_error_t *
+subcommand_build_repcache(apr_getopt_t *os, void *baton, apr_pool_t *pool)
+{
+ struct svnadmin_opt_state *opt_state = baton;
+ svn_repos_t *repos;
+ svn_fs_t *fs;
+ svn_revnum_t youngest;
+ svn_revnum_t lower;
+ svn_revnum_t upper;
+
+ /* Expect no more arguments. */
+ SVN_ERR(parse_args(NULL, os, 0, 0, pool));
+
+ SVN_ERR(open_repos(&repos, opt_state->repository_path, opt_state, pool));
+ fs = svn_repos_fs(repos);
+ SVN_ERR(svn_fs_youngest_rev(&youngest, fs, pool));
+
+ SVN_ERR(get_revnum(&lower, &opt_state->start_revision,
+ youngest, repos, pool));
+ SVN_ERR(get_revnum(&upper, &opt_state->end_revision,
+ youngest, repos, pool));
+
+ if (SVN_IS_VALID_REVNUM(lower) && SVN_IS_VALID_REVNUM(upper))
+ {
+ if (lower > upper)
+ return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
+ _("First revision cannot be higher than second"));
+ }
+ else if (SVN_IS_VALID_REVNUM(lower))
+ {
+ upper = lower;
+ }
+ else
+ {
+ upper = youngest;
+ }
+
+ SVN_ERR(build_rep_cache(fs, lower, upper, opt_state, pool));
+
+ return SVN_NO_ERROR;
+}
+
/** Main. **/
@@ -2794,7 +3049,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
svn_error_t *err;
apr_status_t apr_err;
- const svn_opt_subcommand_desc2_t *subcommand = NULL;
+ const svn_opt_subcommand_desc3_t *subcommand = NULL;
struct svnadmin_opt_state opt_state = { 0 };
apr_getopt_t *os;
int opt_id;
@@ -3049,7 +3304,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
just typos/mistakes. Whatever the case, the subcommand to
actually run is subcommand_help(). */
if (opt_state.help)
- subcommand = svn_opt_get_canonical_subcommand2(cmd_table, "help");
+ subcommand = svn_opt_get_canonical_subcommand3(cmd_table, "help");
/* If we're not running the `help' subcommand, then look for a
subcommand in the first argument. */
@@ -3060,8 +3315,8 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_state.version)
{
/* Use the "help" subcommand to handle the "--version" option. */
- static const svn_opt_subcommand_desc2_t pseudo_cmd =
- { "--version", subcommand_help, {0}, "",
+ static const svn_opt_subcommand_desc3_t pseudo_cmd =
+ { "--version", subcommand_help, {0}, {""},
{svnadmin__version, /* must accept its own option */
'q', /* --quiet */
} };
@@ -3083,7 +3338,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
SVN_ERR(svn_utf_cstring_to_utf8(&first_arg, os->argv[os->ind++],
pool));
- subcommand = svn_opt_get_canonical_subcommand2(cmd_table, first_arg);
+ subcommand = svn_opt_get_canonical_subcommand3(cmd_table, first_arg);
if (subcommand == NULL)
{
svn_error_clear(
@@ -3135,11 +3390,11 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_id == 'h' || opt_id == '?')
continue;
- if (! svn_opt_subcommand_takes_option3(subcommand, opt_id, NULL))
+ if (! svn_opt_subcommand_takes_option4(subcommand, opt_id, NULL))
{
const char *optstr;
const apr_getopt_option_t *badopt =
- svn_opt_get_option_from_code2(opt_id, options_table, subcommand,
+ svn_opt_get_option_from_code3(opt_id, options_table, subcommand,
pool);
svn_opt_format_option(&optstr, badopt, FALSE, pool);
if (subcommand->name[0] == '-')
diff --git a/subversion/svnbench/cl.h b/subversion/svnbench/cl.h
index f14e25532b84..ad5c9a5729e8 100644
--- a/subversion/svnbench/cl.h
+++ b/subversion/svnbench/cl.h
@@ -117,7 +117,7 @@ svn_opt_subcommand_t
/* See definition in main.c for documentation. */
-extern const svn_opt_subcommand_desc2_t svn_cl__cmd_table[];
+extern const svn_opt_subcommand_desc3_t svn_cl__cmd_table[];
/* See definition in main.c for documentation. */
extern const int svn_cl__global_options[];
diff --git a/subversion/svnbench/help-cmd.c b/subversion/svnbench/help-cmd.c
index ead4861ad1e1..a19bcad67278 100644
--- a/subversion/svnbench/help-cmd.c
+++ b/subversion/svnbench/help-cmd.c
@@ -75,7 +75,7 @@ svn_cl__help(apr_getopt_t *os,
version_footer = svn_stringbuf_create(ra_desc_start, pool);
SVN_ERR(svn_ra_print_modules(version_footer, pool));
- return svn_opt_print_help4(os,
+ return svn_opt_print_help5(os,
"svnbench", /* ### erm, derive somehow? */
opt_state ? opt_state->version : FALSE,
opt_state ? opt_state->quiet : FALSE,
diff --git a/subversion/svnbench/svnbench.c b/subversion/svnbench/svnbench.c
index 80a872842b6f..33e7b69a20b1 100644
--- a/subversion/svnbench/svnbench.c
+++ b/subversion/svnbench/svnbench.c
@@ -206,111 +206,117 @@ const int svn_cl__global_options[] =
opt_config_dir, opt_config_options, 0
};
-const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
+const svn_opt_subcommand_desc3_t svn_cl__cmd_table[] =
{
- { "help", svn_cl__help, {"?", "h"}, N_
- ("Describe the usage of this program or its subcommands.\n"
- "usage: help [SUBCOMMAND...]\n"),
+ { "help", svn_cl__help, {"?", "h"}, {N_(
+ "Describe the usage of this program or its subcommands.\n"
+ "usage: help [SUBCOMMAND...]\n"
+ )},
{0} },
/* This command is also invoked if we see option "--help", "-h" or "-?". */
- { "null-blame", svn_cl__null_blame, {0}, N_
- ("Fetch all versions of a file in a batch.\n"
+ { "null-blame", svn_cl__null_blame, {0}, {N_(
+ "Fetch all versions of a file in a batch.\n"
"usage: null-blame [-rM:N] TARGET[@REV]...\n"
- "\n"
+ "\n"), N_(
" With no revision range (same as -r0:REV), or with '-r M:N' where M < N,\n"
" annotate each line that is present in revision N of the file, with\n"
" the last revision at or before rN that changed or added the line,\n"
" looking back no further than rM.\n"
- "\n"
+ "\n"), N_(
" With a reverse revision range '-r M:N' where M > N,\n"
" annotate each line that is present in revision N of the file, with\n"
" the next revision after rN that changed or deleted the line,\n"
" looking forward no further than rM.\n"
- "\n"
+ "\n"), N_(
" If specified, REV determines in which revision the target is first\n"
" looked up.\n"
- "\n"
- " Write the annotated result to standard output.\n"),
+ "\n"), N_(
+ " Write the annotated result to standard output.\n"
+ )},
{'r', 'g'} },
- { "null-export", svn_cl__null_export, {0}, N_
- ("Create an unversioned copy of a tree.\n"
+ { "null-export", svn_cl__null_export, {0}, {N_(
+ "Create an unversioned copy of a tree.\n"
"usage: null-export [-r REV] URL[@PEGREV]\n"
- "\n"
+ "\n"), N_(
" Exports a clean directory tree from the repository specified by\n"
" URL, at revision REV if it is given, otherwise at HEAD.\n"
- "\n"
+ "\n"), N_(
" If specified, PEGREV determines in which revision the target is first\n"
- " looked up.\n"),
+ " looked up.\n"
+ )},
{'r', 'q', 'N', opt_depth} },
- { "null-list", svn_cl__null_list, {"ls"}, N_
- ("List directory entries in the repository.\n"
+ { "null-list", svn_cl__null_list, {"ls"}, {N_(
+ "List directory entries in the repository.\n"
"usage: null-list [TARGET[@REV]...]\n"
- "\n"
+ "\n"), N_(
" List each TARGET file and the contents of each TARGET directory as\n"
" they exist in the repository. If TARGET is a working copy path, the\n"
" corresponding repository URL will be used. If specified, REV determines\n"
" in which revision the target is first looked up.\n"
- "\n"
+ "\n"), N_(
" The default TARGET is '.', meaning the repository URL of the current\n"
" working directory.\n"
- "\n"
+ "\n"), N_(
" With --verbose, the following fields will be fetched for each item:\n"
- "\n"
+ "\n"), N_(
" Revision number of the last commit\n"
" Author of the last commit\n"
" If locked, the letter 'O'. (Use 'svn info URL' to see details)\n"
" Size (in bytes)\n"
- " Date and time of the last commit\n"),
+ " Date and time of the last commit\n"
+ )},
{'r', 'v', 'q', 'R', opt_depth, opt_search} },
- { "null-log", svn_cl__null_log, {0}, N_
- ("Fetch the log messages for a set of revision(s) and/or path(s).\n"
+ { "null-log", svn_cl__null_log, {0}, {N_(
+ "Fetch the log messages for a set of revision(s) and/or path(s).\n"
"usage: 1. null-log [PATH][@REV]\n"
" 2. null-log URL[@REV] [PATH...]\n"
- "\n"
+ "\n"), N_(
" 1. Fetch the log messages for the URL corresponding to PATH\n"
" (default: '.'). If specified, REV is the revision in which the\n"
" URL is first looked up, and the default revision range is REV:1.\n"
" If REV is not specified, the default revision range is BASE:1,\n"
" since the URL might not exist in the HEAD revision.\n"
- "\n"
+ "\n"), N_(
" 2. Fetch the log messages for the PATHs (default: '.') under URL.\n"
" If specified, REV is the revision in which the URL is first\n"
" looked up, and the default revision range is REV:1; otherwise,\n"
" the URL is looked up in HEAD, and the default revision range is\n"
" HEAD:1.\n"
- "\n"
+ "\n"), N_(
" Multiple '-c' or '-r' options may be specified (but not a\n"
" combination of '-c' and '-r' options), and mixing of forward and\n"
" reverse ranges is allowed.\n"
- "\n"
+ "\n"), N_(
" With -v, also print all affected paths with each log message.\n"
" With -q, don't print the log message body itself (note that this is\n"
" compatible with -v).\n"
- "\n"
+ "\n"), N_(
" Each log message is printed just once, even if more than one of the\n"
" affected paths for that revision were explicitly requested. Logs\n"
" follow copy history by default. Use --stop-on-copy to disable this\n"
- " behavior, which can be useful for determining branchpoints.\n"),
+ " behavior, which can be useful for determining branchpoints.\n"
+ )},
{'r', 'q', 'v', 'g', 'c', opt_targets, opt_stop_on_copy,
'l', opt_with_all_revprops, opt_with_no_revprops, opt_with_revprop,},
{{opt_with_revprop, N_("retrieve revision property ARG")},
{'c', N_("the change made in revision ARG")}} },
- { "null-info", svn_cl__null_info, {0}, N_
- ("Display information about a local or remote item.\n"
+ { "null-info", svn_cl__null_info, {0}, {N_(
+ "Display information about a local or remote item.\n"
"usage: null-info [TARGET[@REV]...]\n"
- "\n"
+ "\n"), N_(
" Print information about each TARGET (default: '.').\n"
" TARGET may be either a working-copy path or URL. If specified, REV\n"
- " determines in which revision the target is first looked up.\n"),
+ " determines in which revision the target is first looked up.\n"
+ )},
{'r', 'R', opt_depth, opt_targets, opt_changelist}
},
- { NULL, NULL, {0}, NULL, {0} }
+ { NULL, NULL, {0}, {NULL}, {0} }
};
@@ -389,7 +395,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
svn_client_ctx_t *ctx;
apr_array_header_t *received_opts;
int i;
- const svn_opt_subcommand_desc2_t *subcommand = NULL;
+ const svn_opt_subcommand_desc3_t *subcommand = NULL;
svn_cl__cmd_baton_t command_baton;
svn_auth_baton_t *ab;
svn_config_t *cfg_config;
@@ -722,7 +728,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
just typos/mistakes. Whatever the case, the subcommand to
actually run is svn_cl__help(). */
if (opt_state.help)
- subcommand = svn_opt_get_canonical_subcommand2(svn_cl__cmd_table, "help");
+ subcommand = svn_opt_get_canonical_subcommand3(svn_cl__cmd_table, "help");
/* If we're not running the `help' subcommand, then look for a
subcommand in the first argument. */
@@ -733,8 +739,8 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_state.version)
{
/* Use the "help" subcommand to handle the "--version" option. */
- static const svn_opt_subcommand_desc2_t pseudo_cmd =
- { "--version", svn_cl__help, {0}, "",
+ static const svn_opt_subcommand_desc3_t pseudo_cmd =
+ { "--version", svn_cl__help, {0}, {""},
{opt_version, /* must accept its own option */
'q', /* brief output */
'v', /* verbose output */
@@ -759,7 +765,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
SVN_ERR(svn_utf_cstring_to_utf8(&first_arg, os->argv[os->ind++],
pool));
- subcommand = svn_opt_get_canonical_subcommand2(svn_cl__cmd_table,
+ subcommand = svn_opt_get_canonical_subcommand3(svn_cl__cmd_table,
first_arg);
if (subcommand == NULL)
{
@@ -786,12 +792,12 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_id == 'h' || opt_id == '?')
continue;
- if (! svn_opt_subcommand_takes_option3(subcommand, opt_id,
+ if (! svn_opt_subcommand_takes_option4(subcommand, opt_id,
svn_cl__global_options))
{
const char *optstr;
const apr_getopt_option_t *badopt =
- svn_opt_get_option_from_code2(opt_id, svn_cl__options,
+ svn_opt_get_option_from_code3(opt_id, svn_cl__options,
subcommand, pool);
svn_opt_format_option(&optstr, badopt, FALSE, pool);
if (subcommand->name[0] == '-')
diff --git a/subversion/svndumpfilter/svndumpfilter.c b/subversion/svndumpfilter/svndumpfilter.c
index b17ccd2e6588..a948b3a4ceaa 100644
--- a/subversion/svndumpfilter/svndumpfilter.c
+++ b/subversion/svndumpfilter/svndumpfilter.c
@@ -43,6 +43,7 @@
#include "svn_mergeinfo.h"
#include "svn_version.h"
+#include "private/svn_dirent_uri_private.h"
#include "private/svn_repos_private.h"
#include "private/svn_mergeinfo_private.h"
#include "private/svn_cmdline_private.h"
@@ -271,9 +272,7 @@ magic_header_record(int version, void *parse_baton, apr_pool_t *pool)
if (version >= SVN_REPOS_DUMPFILE_FORMAT_VERSION_DELTAS)
pb->allow_deltas = TRUE;
- SVN_ERR(svn_stream_printf(pb->out_stream, pool,
- SVN_REPOS_DUMPFILE_MAGIC_HEADER ": %d\n\n",
- version));
+ SVN_ERR(svn_repos__dump_magic_header_record(pb->out_stream, version, pool));
return SVN_NO_ERROR;
}
@@ -446,8 +445,8 @@ static svn_error_t *
uuid_record(const char *uuid, void *parse_baton, apr_pool_t *pool)
{
struct parse_baton_t *pb = parse_baton;
- SVN_ERR(svn_stream_printf(pb->out_stream, pool,
- SVN_REPOS_DUMPFILE_UUID ": %s\n\n", uuid));
+
+ SVN_ERR(svn_repos__dump_uuid_header_record(pb->out_stream, uuid, pool));
return SVN_NO_ERROR;
}
@@ -530,7 +529,8 @@ new_node_record(void **node_baton,
{
return svn_error_createf
(SVN_ERR_INCOMPLETE_DATA, 0,
- _("Invalid copy source path '%s'"), copyfrom_path);
+ _("Invalid copy source path '%s' for '%s'"),
+ copyfrom_path, node_path);
}
}
@@ -611,7 +611,8 @@ new_node_record(void **node_baton,
if (! (cf_renum_val && SVN_IS_VALID_REVNUM(cf_renum_val->rev)))
return svn_error_createf
(SVN_ERR_NODE_UNEXPECTED_KIND, NULL,
- _("No valid copyfrom revision in filtered stream"));
+ _("No valid copyfrom revision in filtered stream for '%s'"),
+ node_path);
svn_repos__dumpfile_header_pushf(
nb->headers, SVN_REPOS_DUMPFILE_NODE_COPYFROM_REV,
"%ld", cf_renum_val->rev);
@@ -977,32 +978,35 @@ static const apr_getopt_option_t options_table[] =
/* Array of available subcommands.
* The entire list must be terminated with an entry of nulls.
*/
-static const svn_opt_subcommand_desc2_t cmd_table[] =
+static const svn_opt_subcommand_desc3_t cmd_table[] =
{
- {"exclude", subcommand_exclude, {0},
- N_("Filter out nodes with given prefixes from dumpstream.\n"
- "usage: svndumpfilter exclude PATH_PREFIX...\n"),
+ {"exclude", subcommand_exclude, {0}, {N_(
+ "Filter out nodes with given prefixes from dumpstream.\n"
+ "usage: svndumpfilter exclude PATH_PREFIX...\n"
+ )},
{svndumpfilter__drop_empty_revs, svndumpfilter__drop_all_empty_revs,
svndumpfilter__renumber_revs,
svndumpfilter__skip_missing_merge_sources, svndumpfilter__targets,
svndumpfilter__preserve_revprops, svndumpfilter__quiet,
svndumpfilter__glob} },
- {"include", subcommand_include, {0},
- N_("Filter out nodes without given prefixes from dumpstream.\n"
- "usage: svndumpfilter include PATH_PREFIX...\n"),
+ {"include", subcommand_include, {0}, {N_(
+ "Filter out nodes without given prefixes from dumpstream.\n"
+ "usage: svndumpfilter include PATH_PREFIX...\n"
+ )},
{svndumpfilter__drop_empty_revs, svndumpfilter__drop_all_empty_revs,
svndumpfilter__renumber_revs,
svndumpfilter__skip_missing_merge_sources, svndumpfilter__targets,
svndumpfilter__preserve_revprops, svndumpfilter__quiet,
svndumpfilter__glob} },
- {"help", subcommand_help, {"?", "h"},
- N_("Describe the usage of this program or its subcommands.\n"
- "usage: svndumpfilter help [SUBCOMMAND...]\n"),
+ {"help", subcommand_help, {"?", "h"}, {N_(
+ "Describe the usage of this program or its subcommands.\n"
+ "usage: svndumpfilter help [SUBCOMMAND...]\n"
+ )},
{0} },
- { NULL, NULL, {0}, NULL, {0} }
+ { NULL, NULL, {0}, {NULL}, {0} }
};
@@ -1080,7 +1084,7 @@ subcommand_help(apr_getopt_t *os, void *baton, apr_pool_t *pool)
"\n"
"Available subcommands:\n");
- SVN_ERR(svn_opt_print_help4(os, "svndumpfilter",
+ SVN_ERR(svn_opt_print_help5(os, "svndumpfilter",
opt_state ? opt_state->version : FALSE,
opt_state ? opt_state->quiet : FALSE,
/*###opt_state ? opt_state->verbose :*/ FALSE,
@@ -1292,7 +1296,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
svn_error_t *err;
apr_status_t apr_err;
- const svn_opt_subcommand_desc2_t *subcommand = NULL;
+ const svn_opt_subcommand_desc3_t *subcommand = NULL;
struct svndumpfilter_opt_state opt_state;
apr_getopt_t *os;
int opt_id;
@@ -1399,7 +1403,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
just typos/mistakes. Whatever the case, the subcommand to
actually run is subcommand_help(). */
if (opt_state.help)
- subcommand = svn_opt_get_canonical_subcommand2(cmd_table, "help");
+ subcommand = svn_opt_get_canonical_subcommand3(cmd_table, "help");
/* If we're not running the `help' subcommand, then look for a
subcommand in the first argument. */
@@ -1410,8 +1414,8 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_state.version)
{
/* Use the "help" subcommand to handle the "--version" option. */
- static const svn_opt_subcommand_desc2_t pseudo_cmd =
- { "--version", subcommand_help, {0}, "",
+ static const svn_opt_subcommand_desc3_t pseudo_cmd =
+ { "--version", subcommand_help, {0}, {""},
{svndumpfilter__version, /* must accept its own option */
svndumpfilter__quiet,
} };
@@ -1434,7 +1438,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
SVN_ERR(svn_utf_cstring_to_utf8(&first_arg, os->argv[os->ind++],
pool));
- subcommand = svn_opt_get_canonical_subcommand2(cmd_table, first_arg);
+ subcommand = svn_opt_get_canonical_subcommand3(cmd_table, first_arg);
if (subcommand == NULL)
{
svn_error_clear(
@@ -1464,7 +1468,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
/* Ensure that each prefix is UTF8-encoded, in internal
style, and absolute. */
SVN_ERR(svn_utf_cstring_to_utf8(&prefix, os->argv[i], pool));
- prefix = svn_relpath__internal_style(prefix, pool);
+ SVN_ERR(svn_relpath__make_internal(&prefix, prefix, pool, pool));
if (prefix[0] != '/')
prefix = apr_pstrcat(pool, "/", prefix, SVN_VA_NULL);
APR_ARRAY_PUSH(opt_state.prefixes, const char *) = prefix;
@@ -1520,11 +1524,11 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_id == 'h' || opt_id == '?')
continue;
- if (! svn_opt_subcommand_takes_option3(subcommand, opt_id, NULL))
+ if (! svn_opt_subcommand_takes_option4(subcommand, opt_id, NULL))
{
const char *optstr;
const apr_getopt_option_t *badopt =
- svn_opt_get_option_from_code2(opt_id, options_table, subcommand,
+ svn_opt_get_option_from_code3(opt_id, options_table, subcommand,
pool);
svn_opt_format_option(&optstr, badopt, FALSE, pool);
if (subcommand->name[0] == '-')
diff --git a/subversion/svnfsfs/dump-index-cmd.c b/subversion/svnfsfs/dump-index-cmd.c
index 5598c985cdee..79724807da47 100644
--- a/subversion/svnfsfs/dump-index-cmd.c
+++ b/subversion/svnfsfs/dump-index-cmd.c
@@ -79,6 +79,7 @@ dump_index(const char *path,
apr_pool_t *pool)
{
svn_fs_t *fs;
+ svn_fs_fs__ioctl_dump_index_input_t input = {0};
/* Check repository type and open it. */
SVN_ERR(open_fs(&fs, path, pool));
@@ -87,8 +88,10 @@ dump_index(const char *path,
printf(" Start Length Type Revision Item Checksum\n");
/* Dump the whole index contents */
- SVN_ERR(svn_fs_fs__dump_index(fs, revision, dump_index_entry, NULL,
- check_cancel, NULL, pool));
+ input.revision = revision;
+ input.callback_func = dump_index_entry;
+ SVN_ERR(svn_fs_ioctl(fs, SVN_FS_FS__IOCTL_DUMP_INDEX, &input, NULL,
+ check_cancel, NULL, pool, pool));
return SVN_NO_ERROR;
}
diff --git a/subversion/svnfsfs/load-index-cmd.c b/subversion/svnfsfs/load-index-cmd.c
index e3b5c0d718bf..88e2613924c4 100644
--- a/subversion/svnfsfs/load-index-cmd.c
+++ b/subversion/svnfsfs/load-index-cmd.c
@@ -135,6 +135,7 @@ load_index(const char *path,
svn_revnum_t revision = SVN_INVALID_REVNUM;
apr_array_header_t *entries = apr_array_make(pool, 16, sizeof(void*));
apr_pool_t *iterpool = svn_pool_create(pool);
+ svn_fs_fs__ioctl_load_index_input_t ioctl_input = {0};
/* Check repository type and open it. */
SVN_ERR(open_fs(&fs, path, pool));
@@ -147,7 +148,7 @@ load_index(const char *path,
/* Get the next line from the input and stop if there is none. */
svn_pool_clear(iterpool);
- svn_stream_readline(input, &line, "\n", &eol, iterpool);
+ SVN_ERR(svn_stream_readline(input, &line, "\n", &eol, iterpool));
if (eol)
break;
@@ -173,7 +174,10 @@ load_index(const char *path,
}
/* Rewrite the indexes. */
- SVN_ERR(svn_fs_fs__load_index(fs, revision, entries, iterpool));
+ ioctl_input.revision = revision;
+ ioctl_input.entries = entries;
+ SVN_ERR(svn_fs_ioctl(fs, SVN_FS_FS__IOCTL_LOAD_INDEX, &ioctl_input, NULL,
+ NULL, NULL, pool, pool));
svn_pool_destroy(iterpool);
return SVN_NO_ERROR;
diff --git a/subversion/svnfsfs/stats-cmd.c b/subversion/svnfsfs/stats-cmd.c
index 2cd294a52147..1a2f3d499aa2 100644
--- a/subversion/svnfsfs/stats-cmd.c
+++ b/subversion/svnfsfs/stats-cmd.c
@@ -500,15 +500,17 @@ svn_error_t *
subcommand__stats(apr_getopt_t *os, void *baton, apr_pool_t *pool)
{
svnfsfs__opt_state *opt_state = baton;
- svn_fs_fs__stats_t *stats;
svn_fs_t *fs;
+ svn_fs_fs__ioctl_get_stats_input_t input = {0};
+ svn_fs_fs__ioctl_get_stats_output_t *output;
printf("Reading revisions\n");
SVN_ERR(open_fs(&fs, opt_state->repository_path, pool));
- SVN_ERR(svn_fs_fs__get_stats(&stats, fs, print_progress, NULL,
- check_cancel, NULL, pool, pool));
- print_stats(stats, pool);
+ input.progress_func = print_progress;
+ SVN_ERR(svn_fs_ioctl(fs, SVN_FS_FS__IOCTL_GET_STATS, &input, (void **)&output,
+ check_cancel, NULL, pool, pool));
+ print_stats(output->stats, pool);
return SVN_NO_ERROR;
}
diff --git a/subversion/svnfsfs/svnfsfs.c b/subversion/svnfsfs/svnfsfs.c
index ed3e66470d92..6fcb792cc586 100644
--- a/subversion/svnfsfs/svnfsfs.c
+++ b/subversion/svnfsfs/svnfsfs.c
@@ -111,22 +111,27 @@ static const apr_getopt_option_t options_table[] =
/* Array of available subcommands.
* The entire list must be terminated with an entry of nulls.
*/
-static const svn_opt_subcommand_desc2_t cmd_table[] =
+static const svn_opt_subcommand_desc3_t cmd_table[] =
{
- {"help", subcommand__help, {"?", "h"}, N_
- ("usage: svnfsfs help [SUBCOMMAND...]\n\n"
- "Describe the usage of this program or its subcommands.\n"),
+ {"help", subcommand__help, {"?", "h"}, {N_(
+ "usage: svnfsfs help [SUBCOMMAND...]\n"
+ "\n"), N_(
+ "Describe the usage of this program or its subcommands.\n"
+ )},
{0} },
- {"dump-index", subcommand__dump_index, {0}, N_
- ("usage: svnfsfs dump-index REPOS_PATH -r REV\n\n"
+ {"dump-index", subcommand__dump_index, {0}, {N_(
+ "usage: svnfsfs dump-index REPOS_PATH -r REV\n"
+ "\n"), N_(
"Dump the index contents for the revision / pack file containing revision REV\n"
"to console. This is only available for FSFS format 7 (SVN 1.9+) repositories.\n"
"The table produced contains a header in the first line followed by one line\n"
- "per index entry, ordered by location in the revision / pack file. Columns:\n\n"
+ "per index entry, ordered by location in the revision / pack file. Columns:\n"
+ "\n"), N_(
" * Byte offset (hex) at which the item starts\n"
" * Length (hex) of the item in bytes\n"
- " * Item type (string) is one of the following:\n\n"
+ " * Item type (string) is one of the following:\n"
+ "\n"), N_(
" none ... Unused section. File contents shall be NULs.\n"
" frep ... File representation.\n"
" drep ... Directory representation.\n"
@@ -135,29 +140,36 @@ static const svn_opt_subcommand_desc2_t cmd_table[] =
" node ... Node revision.\n"
" chgs ... Changed paths list.\n"
" rep .... Representation of unknown type. Should not be used.\n"
- " ??? .... Invalid. Index data is corrupt.\n\n"
+ " ??? .... Invalid. Index data is corrupt.\n"
+ "\n"), N_(
" The distinction between frep, drep, fprop and dprop is a mere internal\n"
" classification used for various optimizations and does not affect the\n"
- " operational correctness.\n\n"
+ " operational correctness.\n"
+ "\n"), N_(
" * Revision that the item belongs to (decimal)\n"
" * Item number (decimal) within that revision\n"
- " * Modified FNV1a checksum (8 hex digits)\n"),
+ " * Modified FNV1a checksum (8 hex digits)\n"
+ )},
{'r', 'M'} },
- {"load-index", subcommand__load_index, {0}, N_
- ("usage: svnfsfs load-index REPOS_PATH\n\n"
+ {"load-index", subcommand__load_index, {0}, {N_(
+ "usage: svnfsfs load-index REPOS_PATH\n"
+ "\n"), N_(
"Read index contents from console. The format is the same as produced by the\n"
"dump-index command, except that checksum as well as header are optional and will\n"
"be ignored. The data must cover the full revision / pack file; the revision\n"
- "number is automatically extracted from input stream. No ordering is required.\n"),
+ "number is automatically extracted from input stream. No ordering is required.\n"
+ )},
{'M'} },
- {"stats", subcommand__stats, {0}, N_
- ("usage: svnfsfs stats REPOS_PATH\n\n"
- "Write object size statistics to console.\n"),
+ {"stats", subcommand__stats, {0}, {N_(
+ "usage: svnfsfs stats REPOS_PATH\n"
+ "\n"), N_(
+ "Write object size statistics to console.\n"
+ )},
{'M'} },
- { NULL, NULL, {0}, NULL, {0} }
+ { NULL, NULL, {0}, {NULL}, {0} }
};
@@ -196,7 +208,7 @@ subcommand__help(apr_getopt_t *os, void *baton, apr_pool_t *pool)
"\n"
"Available subcommands:\n");
- SVN_ERR(svn_opt_print_help4(os, "svnfsfs",
+ SVN_ERR(svn_opt_print_help5(os, "svnfsfs",
opt_state ? opt_state->version : FALSE,
opt_state ? opt_state->quiet : FALSE,
/*###opt_state ? opt_state->verbose :*/ FALSE,
@@ -221,7 +233,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
svn_error_t *err;
apr_status_t apr_err;
- const svn_opt_subcommand_desc2_t *subcommand = NULL;
+ const svn_opt_subcommand_desc3_t *subcommand = NULL;
svnfsfs__opt_state opt_state = { 0 };
apr_getopt_t *os;
int opt_id;
@@ -325,7 +337,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
just typos/mistakes. Whatever the case, the subcommand to
actually run is subcommand_help(). */
if (opt_state.help)
- subcommand = svn_opt_get_canonical_subcommand2(cmd_table, "help");
+ subcommand = svn_opt_get_canonical_subcommand3(cmd_table, "help");
/* If we're not running the `help' subcommand, then look for a
subcommand in the first argument. */
@@ -336,8 +348,8 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_state.version)
{
/* Use the "help" subcommand to handle the "--version" option. */
- static const svn_opt_subcommand_desc2_t pseudo_cmd =
- { "--version", subcommand__help, {0}, "",
+ static const svn_opt_subcommand_desc3_t pseudo_cmd =
+ { "--version", subcommand__help, {0}, {""},
{svnfsfs__version, /* must accept its own option */
'q', /* --quiet */
} };
@@ -359,7 +371,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
SVN_ERR(svn_utf_cstring_to_utf8(&first_arg, os->argv[os->ind++],
pool));
- subcommand = svn_opt_get_canonical_subcommand2(cmd_table, first_arg);
+ subcommand = svn_opt_get_canonical_subcommand3(cmd_table, first_arg);
if (subcommand == NULL)
{
svn_error_clear(
@@ -409,11 +421,11 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_id == 'h' || opt_id == '?')
continue;
- if (! svn_opt_subcommand_takes_option3(subcommand, opt_id, NULL))
+ if (! svn_opt_subcommand_takes_option4(subcommand, opt_id, NULL))
{
const char *optstr;
const apr_getopt_option_t *badopt =
- svn_opt_get_option_from_code2(opt_id, options_table, subcommand,
+ svn_opt_get_option_from_code3(opt_id, options_table, subcommand,
pool);
svn_opt_format_option(&optstr, badopt, FALSE, pool);
if (subcommand->name[0] == '-')
diff --git a/subversion/svnlook/svnlook.c b/subversion/svnlook/svnlook.c
index 261909c00607..d6f9506ba56d 100644
--- a/subversion/svnlook/svnlook.c
+++ b/subversion/svnlook/svnlook.c
@@ -212,110 +212,144 @@ static const apr_getopt_option_t options_table[] =
/* Array of available subcommands.
* The entire list must be terminated with an entry of nulls.
*/
-static const svn_opt_subcommand_desc2_t cmd_table[] =
+static const svn_opt_subcommand_desc3_t cmd_table[] =
{
- {"author", subcommand_author, {0},
- N_("usage: svnlook author REPOS_PATH\n\n"
- "Print the author.\n"),
+ {"author", subcommand_author, {0}, {N_(
+ "usage: svnlook author REPOS_PATH\n"
+ "\n"), N_(
+ "Print the author.\n"
+ )},
{'r', 't'} },
- {"cat", subcommand_cat, {0},
- N_("usage: svnlook cat REPOS_PATH FILE_PATH\n\n"
- "Print the contents of a file. Leading '/' on FILE_PATH is optional.\n"),
+ {"cat", subcommand_cat, {0}, {N_(
+ "usage: svnlook cat REPOS_PATH FILE_PATH\n"
+ "\n"), N_(
+ "Print the contents of a file. Leading '/' on FILE_PATH is optional.\n"
+ )},
{'r', 't'} },
- {"changed", subcommand_changed, {0},
- N_("usage: svnlook changed REPOS_PATH\n\n"
- "Print the paths that were changed.\n"),
+ {"changed", subcommand_changed, {0}, {N_(
+ "usage: svnlook changed REPOS_PATH\n"
+ "\n"), N_(
+ "Print the paths that were changed.\n"
+ )},
{'r', 't', svnlook__copy_info} },
- {"date", subcommand_date, {0},
- N_("usage: svnlook date REPOS_PATH\n\n"
- "Print the datestamp.\n"),
+ {"date", subcommand_date, {0}, {N_(
+ "usage: svnlook date REPOS_PATH\n"
+ "\n"), N_(
+ "Print the datestamp.\n"
+ )},
{'r', 't'} },
- {"diff", subcommand_diff, {0},
- N_("usage: svnlook diff REPOS_PATH\n\n"
- "Print GNU-style diffs of changed files and properties.\n"),
+ {"diff", subcommand_diff, {0}, {N_(
+ "usage: svnlook diff REPOS_PATH\n"
+ "\n"), N_(
+ "Print GNU-style diffs of changed files and properties.\n"
+ )},
{'r', 't', svnlook__no_diff_deleted, svnlook__no_diff_added,
svnlook__diff_copy_from, svnlook__diff_cmd, 'x',
svnlook__ignore_properties, svnlook__properties_only} },
- {"dirs-changed", subcommand_dirschanged, {0},
- N_("usage: svnlook dirs-changed REPOS_PATH\n\n"
+ {"dirs-changed", subcommand_dirschanged, {0}, {N_(
+ "usage: svnlook dirs-changed REPOS_PATH\n"
+ "\n"), N_(
"Print the directories that were themselves changed (property edits)\n"
- "or whose file children were changed.\n"),
+ "or whose file children were changed.\n"
+ )},
{'r', 't'} },
- {"filesize", subcommand_filesize, {0},
- N_("usage: svnlook filesize REPOS_PATH PATH_IN_REPOS\n\n"
+ {"filesize", subcommand_filesize, {0}, {N_(
+ "usage: svnlook filesize REPOS_PATH PATH_IN_REPOS\n"
+ "\n"), N_(
"Print the size (in bytes) of the file located at PATH_IN_REPOS as\n"
- "it is represented in the repository.\n"),
+ "it is represented in the repository.\n"
+ )},
{'r', 't'} },
- {"help", subcommand_help, {"?", "h"},
- N_("usage: svnlook help [SUBCOMMAND...]\n\n"
- "Describe the usage of this program or its subcommands.\n"),
+ {"help", subcommand_help, {"?", "h"}, {N_(
+ "usage: svnlook help [SUBCOMMAND...]\n"
+ "\n"), N_(
+ "Describe the usage of this program or its subcommands.\n"
+ )},
{0} },
- {"history", subcommand_history, {0},
- N_("usage: svnlook history REPOS_PATH [PATH_IN_REPOS]\n\n"
+ {"history", subcommand_history, {0}, {N_(
+ "usage: svnlook history REPOS_PATH [PATH_IN_REPOS]\n"
+ "\n"), N_(
"Print information about the history of a path in the repository (or\n"
- "the root directory if no path is supplied).\n"),
+ "the root directory if no path is supplied).\n"
+ )},
{'r', svnlook__show_ids, 'l'} },
- {"info", subcommand_info, {0},
- N_("usage: svnlook info REPOS_PATH\n\n"
- "Print the author, datestamp, log message size, and log message.\n"),
+ {"info", subcommand_info, {0}, {N_(
+ "usage: svnlook info REPOS_PATH\n"
+ "\n"), N_(
+ "Print the author, datestamp, log message size, and log message.\n"
+ )},
{'r', 't'} },
- {"lock", subcommand_lock, {0},
- N_("usage: svnlook lock REPOS_PATH PATH_IN_REPOS\n\n"
- "If a lock exists on a path in the repository, describe it.\n"),
+ {"lock", subcommand_lock, {0}, {N_(
+ "usage: svnlook lock REPOS_PATH PATH_IN_REPOS\n"
+ "\n"), N_(
+ "If a lock exists on a path in the repository, describe it.\n"
+ )},
{0} },
- {"log", subcommand_log, {0},
- N_("usage: svnlook log REPOS_PATH\n\n"
- "Print the log message.\n"),
+ {"log", subcommand_log, {0}, {N_(
+ "usage: svnlook log REPOS_PATH\n"
+ "\n"), N_(
+ "Print the log message.\n"
+ )},
{'r', 't'} },
- {"propget", subcommand_pget, {"pget", "pg"},
- N_("usage: 1. svnlook propget REPOS_PATH PROPNAME PATH_IN_REPOS\n"
+ {"propget", subcommand_pget, {"pget", "pg"}, {N_(
+ "usage: 1. svnlook propget REPOS_PATH PROPNAME PATH_IN_REPOS\n"
" "
/* The line above is actually needed, so do NOT delete it! */
- " 2. svnlook propget --revprop REPOS_PATH PROPNAME\n\n"
+ " 2. svnlook propget --revprop REPOS_PATH PROPNAME\n"
+ "\n"), N_(
"Print the raw value of a property on a path in the repository.\n"
- "With --revprop, print the raw value of a revision property.\n"),
+ "With --revprop, print the raw value of a revision property.\n"
+ )},
{'r', 't', 'v', svnlook__revprop_opt, svnlook__show_inherited_props} },
- {"proplist", subcommand_plist, {"plist", "pl"},
- N_("usage: 1. svnlook proplist REPOS_PATH PATH_IN_REPOS\n"
+ {"proplist", subcommand_plist, {"plist", "pl"}, {N_(
+ "usage: 1. svnlook proplist REPOS_PATH PATH_IN_REPOS\n"
" "
/* The line above is actually needed, so do NOT delete it! */
- " 2. svnlook proplist --revprop REPOS_PATH\n\n"
+ " 2. svnlook proplist --revprop REPOS_PATH\n"
+ "\n"), N_(
"List the properties of a path in the repository, or\n"
"with the --revprop option, revision properties.\n"
- "With -v, show the property values too.\n"),
+ "With -v, show the property values too.\n"
+ )},
{'r', 't', 'v', svnlook__revprop_opt, svnlook__xml_opt,
svnlook__show_inherited_props} },
- {"tree", subcommand_tree, {0},
- N_("usage: svnlook tree REPOS_PATH [PATH_IN_REPOS]\n\n"
+ {"tree", subcommand_tree, {0}, {N_(
+ "usage: svnlook tree REPOS_PATH [PATH_IN_REPOS]\n"
+ "\n"), N_(
"Print the tree, starting at PATH_IN_REPOS (if supplied, at the root\n"
- "of the tree otherwise), optionally showing node revision ids.\n"),
+ "of the tree otherwise), optionally showing node revision ids.\n"
+ )},
{'r', 't', 'N', svnlook__show_ids, svnlook__full_paths, 'M'} },
- {"uuid", subcommand_uuid, {0},
- N_("usage: svnlook uuid REPOS_PATH\n\n"
- "Print the repository's UUID.\n"),
+ {"uuid", subcommand_uuid, {0}, {N_(
+ "usage: svnlook uuid REPOS_PATH\n"
+ "\n"), N_(
+ "Print the repository's UUID.\n"
+ )},
{0} },
- {"youngest", subcommand_youngest, {0},
- N_("usage: svnlook youngest REPOS_PATH\n\n"
- "Print the youngest revision number.\n"),
+ {"youngest", subcommand_youngest, {0}, {N_(
+ "usage: svnlook youngest REPOS_PATH\n"
+ "\n"), N_(
+ "Print the youngest revision number.\n"
+ )},
{svnlook__no_newline} },
- { NULL, NULL, {0}, NULL, {0} }
+ { NULL, NULL, {0}, {NULL}, {0} }
};
@@ -2222,7 +2256,7 @@ subcommand_help(apr_getopt_t *os, void *baton, apr_pool_t *pool)
version_footer = svn_stringbuf_create(fs_desc_start, pool);
SVN_ERR(svn_fs_print_modules(version_footer, pool));
- SVN_ERR(svn_opt_print_help4(os, "svnlook",
+ SVN_ERR(svn_opt_print_help5(os, "svnlook",
opt_state ? opt_state->version : FALSE,
opt_state ? opt_state->quiet : FALSE,
opt_state ? opt_state->verbose : FALSE,
@@ -2437,7 +2471,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
svn_error_t *err;
apr_status_t apr_err;
- const svn_opt_subcommand_desc2_t *subcommand = NULL;
+ const svn_opt_subcommand_desc3_t *subcommand = NULL;
struct svnlook_opt_state opt_state;
apr_getopt_t *os;
int opt_id;
@@ -2634,7 +2668,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
just typos/mistakes. Whatever the case, the subcommand to
actually run is subcommand_help(). */
if (opt_state.help)
- subcommand = svn_opt_get_canonical_subcommand2(cmd_table, "help");
+ subcommand = svn_opt_get_canonical_subcommand3(cmd_table, "help");
/* If we're not running the `help' subcommand, then look for a
subcommand in the first argument. */
@@ -2645,8 +2679,8 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_state.version)
{
/* Use the "help" subcommand to handle the "--version" option. */
- static const svn_opt_subcommand_desc2_t pseudo_cmd =
- { "--version", subcommand_help, {0}, "",
+ static const svn_opt_subcommand_desc3_t pseudo_cmd =
+ { "--version", subcommand_help, {0}, {""},
{svnlook__version, /* must accept its own option */
'q', 'v',
} };
@@ -2669,7 +2703,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
SVN_ERR(svn_utf_cstring_to_utf8(&first_arg, os->argv[os->ind++],
pool));
- subcommand = svn_opt_get_canonical_subcommand2(cmd_table, first_arg);
+ subcommand = svn_opt_get_canonical_subcommand3(cmd_table, first_arg);
if (subcommand == NULL)
{
svn_error_clear(
@@ -2762,11 +2796,11 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_id == 'h' || opt_id == '?')
continue;
- if (! svn_opt_subcommand_takes_option3(subcommand, opt_id, NULL))
+ if (! svn_opt_subcommand_takes_option4(subcommand, opt_id, NULL))
{
const char *optstr;
const apr_getopt_option_t *badopt =
- svn_opt_get_option_from_code2(opt_id, options_table, subcommand,
+ svn_opt_get_option_from_code3(opt_id, options_table, subcommand,
pool);
svn_opt_format_option(&optstr, badopt, FALSE, pool);
if (subcommand->name[0] == '-')
diff --git a/subversion/svnmucc/svnmucc.c b/subversion/svnmucc/svnmucc.c
index d9f893e774d4..ce4a1ce99d33 100644
--- a/subversion/svnmucc/svnmucc.c
+++ b/subversion/svnmucc/svnmucc.c
@@ -342,7 +342,7 @@ display_version(apr_pool_t *pool)
version_footer = svn_stringbuf_create(ra_desc_start, pool);
SVN_ERR(svn_ra_print_modules(version_footer, pool));
- SVN_ERR(svn_opt_print_help4(NULL, "svnmucc", TRUE, FALSE, FALSE,
+ SVN_ERR(svn_opt_print_help5(NULL, "svnmucc", TRUE, FALSE, FALSE,
version_footer->data,
NULL, NULL, NULL, NULL, NULL, pool));
@@ -632,7 +632,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
case config_inline_opt:
SVN_ERR(svn_utf_cstring_to_utf8(&opt_arg, arg, pool));
SVN_ERR(svn_cmdline__parse_config_option(config_options, opt_arg,
- "svnmucc: ",
+ "svnmucc: ",
pool));
break;
case no_auth_cache_opt:
diff --git a/subversion/svnrdump/dump_editor.c b/subversion/svnrdump/dump_editor.c
index f900e209e276..ef52b41b43dc 100644
--- a/subversion/svnrdump/dump_editor.c
+++ b/subversion/svnrdump/dump_editor.c
@@ -22,951 +22,28 @@
* ====================================================================
*/
-#include "svn_hash.h"
-#include "svn_pools.h"
-#include "svn_repos.h"
-#include "svn_path.h"
+#include "svn_types.h"
#include "svn_props.h"
-#include "svn_subst.h"
-#include "svn_dirent_uri.h"
+#include "svn_ra.h"
+#include "svn_io.h"
+#include "svn_delta.h"
#include "private/svn_repos_private.h"
-#include "private/svn_subr_private.h"
-#include "private/svn_dep_compat.h"
#include "private/svn_editor.h"
#include "svnrdump.h"
#include <assert.h>
-#define ARE_VALID_COPY_ARGS(p,r) ((p) && SVN_IS_VALID_REVNUM(r))
-
-
-/* A directory baton used by all directory-related callback functions
- * in the dump editor. */
-struct dir_baton
-{
- struct dump_edit_baton *eb;
-
- /* Pool for per-directory allocations */
- apr_pool_t *pool;
-
- /* the path to this directory */
- const char *repos_relpath; /* a relpath */
-
- /* Copyfrom info for the node, if any. */
- const char *copyfrom_path; /* a relpath */
- svn_revnum_t copyfrom_rev;
-
- /* Headers accumulated so far for this directory */
- svn_repos__dumpfile_headers_t *headers;
-
- /* Properties which were modified during change_dir_prop. */
- apr_hash_t *props;
-
- /* Properties which were deleted during change_dir_prop. */
- apr_hash_t *deleted_props;
-
- /* Hash of paths that need to be deleted, though some -might- be
- replaced. Maps const char * paths to this dir_baton. Note that
- they're full paths, because that's what the editor driver gives
- us, although they're all really within this directory. */
- apr_hash_t *deleted_entries;
-
- /* Flag to trigger dumping props. */
- svn_boolean_t dump_props;
-};
-
-/* A file baton used by all file-related callback functions in the dump
- * editor */
-struct file_baton
-{
- struct dump_edit_baton *eb;
-
- /* Pool for per-file allocations */
- apr_pool_t *pool;
-
- /* the path to this file */
- const char *repos_relpath; /* a relpath */
-
- /* Properties which were modified during change_file_prop. */
- apr_hash_t *props;
-
- /* Properties which were deleted during change_file_prop. */
- apr_hash_t *deleted_props;
-
- /* The checksum of the file the delta is being applied to */
- const char *base_checksum;
-
- /* Copy state and source information (if any). */
- svn_boolean_t is_copy;
- const char *copyfrom_path;
- svn_revnum_t copyfrom_rev;
-
- /* The action associate with this node. */
- enum svn_node_action action;
-
- /* Flags to trigger dumping props and text. */
- svn_boolean_t dump_text;
- svn_boolean_t dump_props;
-};
/* The baton used by the dump editor. */
struct dump_edit_baton {
- /* The output stream we write the dumpfile to */
- svn_stream_t *stream;
-
/* A backdoor ra session to fetch additional information during the edit. */
svn_ra_session_t *ra_session;
- /* The repository relpath of the anchor of the editor when driven
- via the RA update mechanism; NULL otherwise. (When the editor is
- driven via the RA "replay" mechanism instead, the editor is
- always anchored at the repository, we don't need to prepend an
- anchor path to the dumped node paths, and open_root() doesn't
- need to manufacture directory additions.) */
- const char *update_anchor_relpath;
-
- /* Pool for per-revision allocations */
- apr_pool_t *pool;
-
- /* Temporary file used for textdelta application along with its
- absolute path; these two variables should be allocated in the
- per-edit-session pool */
- const char *delta_abspath;
- apr_file_t *delta_file;
-
/* The revision we're currently dumping. */
svn_revnum_t current_revision;
-
- /* The baton of the directory node whose block of
- dump stream data has not been fully completed; NULL if there's no
- such item. */
- struct dir_baton *pending_db;
};
-/* Make a directory baton to represent the directory at PATH (relative
- * to the EDIT_BATON).
- *
- * COPYFROM_PATH/COPYFROM_REV are the path/revision against which this
- * directory should be compared for changes. If the copyfrom
- * information is valid, the directory will be compared against its
- * copy source.
- *
- * PB is the directory baton of this directory's parent, or NULL if
- * this is the top-level directory of the edit.
- *
- * Perform all allocations in POOL. */
-static struct dir_baton *
-make_dir_baton(const char *path,
- const char *copyfrom_path,
- svn_revnum_t copyfrom_rev,
- void *edit_baton,
- struct dir_baton *pb,
- apr_pool_t *pool)
-{
- struct dump_edit_baton *eb = edit_baton;
- struct dir_baton *new_db = apr_pcalloc(pool, sizeof(*new_db));
- const char *repos_relpath;
-
- /* Construct the full path of this node. */
- if (pb)
- repos_relpath = svn_relpath_canonicalize(path, pool);
- else
- repos_relpath = "";
-
- /* Strip leading slash from copyfrom_path so that the path is
- canonical and svn_relpath_join can be used */
- if (copyfrom_path)
- copyfrom_path = svn_relpath_canonicalize(copyfrom_path, pool);
-
- new_db->eb = eb;
- new_db->pool = pool;
- new_db->repos_relpath = repos_relpath;
- new_db->copyfrom_path = copyfrom_path
- ? svn_relpath_canonicalize(copyfrom_path, pool)
- : NULL;
- new_db->copyfrom_rev = copyfrom_rev;
- new_db->headers = NULL;
- new_db->props = apr_hash_make(pool);
- new_db->deleted_props = apr_hash_make(pool);
- new_db->deleted_entries = apr_hash_make(pool);
-
- return new_db;
-}
-
-/* Make a file baton to represent the directory at PATH (relative to
- * PB->eb). PB is the directory baton of this directory's parent, or
- * NULL if this is the top-level directory of the edit. Perform all
- * allocations in POOL. */
-static struct file_baton *
-make_file_baton(const char *path,
- struct dir_baton *pb,
- apr_pool_t *pool)
-{
- struct file_baton *new_fb = apr_pcalloc(pool, sizeof(*new_fb));
-
- new_fb->eb = pb->eb;
- new_fb->pool = pool;
- new_fb->repos_relpath = svn_relpath_canonicalize(path, pool);
- new_fb->props = apr_hash_make(pool);
- new_fb->deleted_props = apr_hash_make(pool);
- new_fb->is_copy = FALSE;
- new_fb->copyfrom_path = NULL;
- new_fb->copyfrom_rev = SVN_INVALID_REVNUM;
- new_fb->action = svn_node_action_change;
-
- return new_fb;
-}
-
-/* Append to HEADERS the required headers, and set *CONTENT to the property
- * content section, to represent the property delta of PROPS/DELETED_PROPS.
- */
-static svn_error_t *
-get_props_content(svn_repos__dumpfile_headers_t *headers,
- svn_stringbuf_t **content,
- apr_hash_t *props,
- apr_hash_t *deleted_props,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
-{
- svn_stream_t *content_stream;
- apr_hash_t *normal_props;
-
- *content = svn_stringbuf_create_empty(result_pool);
-
- content_stream = svn_stream_from_stringbuf(*content, scratch_pool);
-
- SVN_ERR(svn_rdump__normalize_props(&normal_props, props, scratch_pool));
- SVN_ERR(svn_hash_write_incremental(normal_props, deleted_props,
- content_stream, "PROPS-END",
- scratch_pool));
- SVN_ERR(svn_stream_close(content_stream));
-
- /* Prop-delta: true */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_PROP_DELTA, "true");
-
- return SVN_NO_ERROR;
-}
-
-/* A special case of dump_node(), for a delete record.
- *
- * The only thing special about this version is it only writes one blank
- * line, not two, after the headers. Why? Historical precedent for the
- * case where a delete record is used as part of a (delete + add-with-history)
- * in implementing a replacement.
- */
-static svn_error_t *
-dump_node_delete(svn_stream_t *stream,
- const char *node_relpath,
- apr_pool_t *pool)
-{
- svn_repos__dumpfile_headers_t *headers
- = svn_repos__dumpfile_headers_create(pool);
-
- assert(svn_relpath_is_canonical(node_relpath));
-
- /* Node-path: ... */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_PATH, node_relpath);
-
- /* Node-action: delete */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_ACTION, "delete");
-
- SVN_ERR(svn_repos__dump_node_record(stream, headers,
- NULL, FALSE, 0, /* props & text */
- FALSE /*content_length_always*/, pool));
- return SVN_NO_ERROR;
-}
-
-/* Set *HEADERS_P to contain some headers for the node at PATH of type KIND.
- *
- * ACTION describes what is happening to the node (see enum
- * svn_node_action).
- *
- * If the node was itself copied, IS_COPY is TRUE and the
- * path/revision of the copy source are in COPYFROM_PATH/COPYFROM_REV.
- * If IS_COPY is FALSE, yet COPYFROM_PATH/COPYFROM_REV are valid, this
- * node is part of a copied subtree.
- *
- * Iff ACTION is svn_node_action_replace and IS_COPY, then first write a
- * complete deletion record to the dump stream.
- *
- * If ACTION is svn_node_action_delete, then the node record will be
- * complete. (The caller may want to write two blank lines after the
- * header block.)
- */
-static svn_error_t *
-dump_node(svn_repos__dumpfile_headers_t **headers_p,
- struct dump_edit_baton *eb,
- const char *repos_relpath,
- struct dir_baton *db,
- struct file_baton *fb,
- enum svn_node_action action,
- svn_boolean_t is_copy,
- const char *copyfrom_path,
- svn_revnum_t copyfrom_rev,
- apr_pool_t *pool)
-{
- const char *node_relpath = repos_relpath;
- svn_repos__dumpfile_headers_t *headers
- = svn_repos__dumpfile_headers_create(pool);
-
- assert(svn_relpath_is_canonical(repos_relpath));
- assert(!copyfrom_path || svn_relpath_is_canonical(copyfrom_path));
- assert(! (db && fb));
-
- /* Add the edit root relpath prefix if necessary. */
- if (eb->update_anchor_relpath)
- node_relpath = svn_relpath_join(eb->update_anchor_relpath,
- node_relpath, pool);
-
- /* Node-path: ... */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_PATH, node_relpath);
-
- /* Node-kind: "file" | "dir" */
- if (fb)
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_KIND, "file");
- else if (db)
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_KIND, "dir");
-
-
- /* Write the appropriate Node-action header */
- switch (action)
- {
- case svn_node_action_change:
- /* We are here after a change_file_prop or change_dir_prop. They
- set up whatever dump_props they needed to- nothing to
- do here but print node action information.
-
- Node-action: change. */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_ACTION, "change");
- break;
-
- case svn_node_action_delete:
- /* Node-action: delete */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_ACTION, "delete");
- break;
-
- case svn_node_action_replace:
- if (! is_copy)
- {
- /* Node-action: replace */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_ACTION, "replace");
-
- /* Wait for a change_*_prop to be called before dumping
- anything */
- if (fb)
- fb->dump_props = TRUE;
- else if (db)
- db->dump_props = TRUE;
- break;
- }
- else
- {
- /* More complex case: is_copy is true, and copyfrom_path/
- copyfrom_rev are present: delete the original, and then re-add
- it */
- /* ### Why not write a 'replace' record? Don't know. */
-
- /* ### Unusually, we end this 'delete' node record with only a single
- blank line after the header block -- no extra blank line. */
- SVN_ERR(dump_node_delete(eb->stream, repos_relpath, pool));
-
- /* The remaining action is a non-replacing add-with-history */
- /* action = svn_node_action_add; */
- }
- /* FALL THROUGH to 'add' */
-
- case svn_node_action_add:
- /* Node-action: add */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_ACTION, "add");
-
- if (is_copy)
- {
- /* Node-copyfrom-rev / Node-copyfrom-path */
- svn_repos__dumpfile_header_pushf(
- headers, SVN_REPOS_DUMPFILE_NODE_COPYFROM_REV, "%ld", copyfrom_rev);
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_COPYFROM_PATH, copyfrom_path);
- }
- else
- {
- /* fb->dump_props (for files) is handled in close_file()
- which is called immediately.
-
- However, directories are not closed until all the work
- inside them has been done; db->dump_props (for directories)
- is handled (via dump_pending()) in all the functions that
- can possibly be called after add_directory():
-
- - add_directory()
- - open_directory()
- - delete_entry()
- - close_directory()
- - add_file()
- - open_file()
-
- change_dir_prop() is a special case. */
- if (fb)
- fb->dump_props = TRUE;
- else if (db)
- db->dump_props = TRUE;
- }
-
- break;
- }
-
- /* Return the headers so far. We don't necessarily have all the headers
- yet -- there may be property-related and content length headers to
- come, if this was not a 'delete' record. */
- *headers_p = headers;
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-dump_mkdir(struct dump_edit_baton *eb,
- const char *repos_relpath,
- apr_pool_t *pool)
-{
- svn_stringbuf_t *prop_content;
- svn_repos__dumpfile_headers_t *headers
- = svn_repos__dumpfile_headers_create(pool);
-
- /* Node-path: ... */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_PATH, repos_relpath);
-
- /* Node-kind: dir */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_KIND, "dir");
-
- /* Node-action: add */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_ACTION, "add");
-
- /* Dump the (empty) property block. */
- SVN_ERR(get_props_content(headers, &prop_content,
- apr_hash_make(pool), apr_hash_make(pool),
- pool, pool));
- SVN_ERR(svn_repos__dump_node_record(eb->stream, headers, prop_content,
- FALSE, 0, FALSE /*content_length_always*/,
- pool));
-
- /* Newlines to tie it all off. */
- SVN_ERR(svn_stream_puts(eb->stream, "\n\n"));
-
- return SVN_NO_ERROR;
-}
-
-/* Dump pending headers and properties for the directory EB->pending_db (if
- * not null), to allow starting the dump of a child node */
-static svn_error_t *
-dump_pending_dir(struct dump_edit_baton *eb,
- apr_pool_t *scratch_pool)
-{
- struct dir_baton *db = eb->pending_db;
- svn_stringbuf_t *prop_content = NULL;
-
- if (! db)
- return SVN_NO_ERROR;
-
- /* Some pending properties to dump? */
- if (db->dump_props)
- {
- SVN_ERR(get_props_content(db->headers, &prop_content,
- db->props, db->deleted_props,
- scratch_pool, scratch_pool));
- }
- SVN_ERR(svn_repos__dump_node_record(eb->stream, db->headers, prop_content,
- FALSE, 0, FALSE /*content_length_always*/,
- scratch_pool));
-
- /* No text is going to be dumped. Write a couple of newlines and
- wait for the next node/ revision. */
- SVN_ERR(svn_stream_puts(eb->stream, "\n\n"));
-
- if (db->dump_props)
- {
- /* Cleanup so that data is never dumped twice. */
- apr_hash_clear(db->props);
- apr_hash_clear(db->deleted_props);
- db->dump_props = FALSE;
- }
-
- /* Anything that was pending is pending no longer. */
- eb->pending_db = NULL;
-
- return SVN_NO_ERROR;
-}
-
-
-
-/*** Editor Function Implementations ***/
-
-static svn_error_t *
-open_root(void *edit_baton,
- svn_revnum_t base_revision,
- apr_pool_t *pool,
- void **root_baton)
-{
- struct dump_edit_baton *eb = edit_baton;
- struct dir_baton *new_db = NULL;
-
- /* Clear the per-revision pool after each revision */
- svn_pool_clear(eb->pool);
-
- if (eb->update_anchor_relpath)
- {
- int i;
- const char *parent_path = eb->update_anchor_relpath;
- apr_array_header_t *dirs_to_add =
- apr_array_make(pool, 4, sizeof(const char *));
- apr_pool_t *iterpool = svn_pool_create(pool);
-
- while (! svn_path_is_empty(parent_path))
- {
- APR_ARRAY_PUSH(dirs_to_add, const char *) = parent_path;
- parent_path = svn_relpath_dirname(parent_path, pool);
- }
-
- for (i = dirs_to_add->nelts; i; --i)
- {
- const char *dir_to_add =
- APR_ARRAY_IDX(dirs_to_add, i - 1, const char *);
-
- svn_pool_clear(iterpool);
-
- /* For parents of the source directory, we just manufacture
- the adds ourselves. */
- if (i > 1)
- {
- SVN_ERR(dump_mkdir(eb, dir_to_add, iterpool));
- }
- else
- {
- /* ... but for the source directory itself, we'll defer
- to letting the typical plumbing handle this task. */
- new_db = make_dir_baton(NULL, NULL, SVN_INVALID_REVNUM,
- edit_baton, NULL, pool);
- SVN_ERR(dump_node(&new_db->headers,
- eb, new_db->repos_relpath, new_db,
- NULL, svn_node_action_add, FALSE,
- NULL, SVN_INVALID_REVNUM, pool));
-
- /* Remember that we've started but not yet finished
- handling this directory. */
- eb->pending_db = new_db;
- }
- }
- svn_pool_destroy(iterpool);
- }
-
- if (! new_db)
- {
- new_db = make_dir_baton(NULL, NULL, SVN_INVALID_REVNUM,
- edit_baton, NULL, pool);
- }
-
- *root_baton = new_db;
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-delete_entry(const char *path,
- svn_revnum_t revision,
- void *parent_baton,
- apr_pool_t *pool)
-{
- struct dir_baton *pb = parent_baton;
-
- SVN_ERR(dump_pending_dir(pb->eb, pool));
-
- /* We don't dump this deletion immediate. Rather, we add this path
- to the deleted_entries of the parent directory baton. That way,
- we can tell (later) an addition from a replacement. All the real
- deletions get handled in close_directory(). */
- svn_hash_sets(pb->deleted_entries, apr_pstrdup(pb->pool, path), pb);
-
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-add_directory(const char *path,
- void *parent_baton,
- const char *copyfrom_path,
- svn_revnum_t copyfrom_rev,
- apr_pool_t *pool,
- void **child_baton)
-{
- struct dir_baton *pb = parent_baton;
- void *was_deleted;
- struct dir_baton *new_db;
- svn_boolean_t is_copy;
-
- SVN_ERR(dump_pending_dir(pb->eb, pool));
-
- new_db = make_dir_baton(path, copyfrom_path, copyfrom_rev, pb->eb,
- pb, pb->pool);
-
- /* This might be a replacement -- is the path already deleted? */
- was_deleted = svn_hash_gets(pb->deleted_entries, path);
-
- /* Detect an add-with-history */
- is_copy = ARE_VALID_COPY_ARGS(copyfrom_path, copyfrom_rev);
-
- /* Dump the node */
- SVN_ERR(dump_node(&new_db->headers,
- pb->eb, new_db->repos_relpath, new_db, NULL,
- was_deleted ? svn_node_action_replace : svn_node_action_add,
- is_copy,
- is_copy ? new_db->copyfrom_path : NULL,
- is_copy ? copyfrom_rev : SVN_INVALID_REVNUM,
- pool));
-
- if (was_deleted)
- /* Delete the path, it's now been dumped */
- svn_hash_sets(pb->deleted_entries, path, NULL);
-
- /* Remember that we've started, but not yet finished handling this
- directory. */
- pb->eb->pending_db = new_db;
-
- *child_baton = new_db;
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-open_directory(const char *path,
- void *parent_baton,
- svn_revnum_t base_revision,
- apr_pool_t *pool,
- void **child_baton)
-{
- struct dir_baton *pb = parent_baton;
- struct dir_baton *new_db;
- const char *copyfrom_path = NULL;
- svn_revnum_t copyfrom_rev = SVN_INVALID_REVNUM;
-
- SVN_ERR(dump_pending_dir(pb->eb, pool));
-
- /* If the parent directory has explicit comparison path and rev,
- record the same for this one. */
- if (ARE_VALID_COPY_ARGS(pb->copyfrom_path, pb->copyfrom_rev))
- {
- copyfrom_path = svn_relpath_join(pb->copyfrom_path,
- svn_relpath_basename(path, NULL),
- pb->pool);
- copyfrom_rev = pb->copyfrom_rev;
- }
-
- new_db = make_dir_baton(path, copyfrom_path, copyfrom_rev, pb->eb, pb,
- pb->pool);
-
- *child_baton = new_db;
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-close_directory(void *dir_baton,
- apr_pool_t *pool)
-{
- struct dir_baton *db = dir_baton;
- apr_hash_index_t *hi;
- svn_boolean_t this_pending;
-
- /* Remember if this directory is the one currently pending. */
- this_pending = (db->eb->pending_db == db);
-
- SVN_ERR(dump_pending_dir(db->eb, pool));
-
- /* If this directory was pending, then dump_pending() should have
- taken care of all the props and such. Of course, the only way
- that would be the case is if this directory was added/replaced.
-
- Otherwise, if stuff for this directory has already been written
- out (at some point in the past, prior to our handling other
- nodes), we might need to generate a second "change" record just
- to carry the information we've since learned about the
- directory. */
- if ((! this_pending) && (db->dump_props))
- {
- SVN_ERR(dump_node(&db->headers,
- db->eb, db->repos_relpath, db, NULL,
- svn_node_action_change, FALSE,
- NULL, SVN_INVALID_REVNUM, pool));
- db->eb->pending_db = db;
- SVN_ERR(dump_pending_dir(db->eb, pool));
- }
-
- /* Dump the deleted directory entries */
- for (hi = apr_hash_first(pool, db->deleted_entries); hi;
- hi = apr_hash_next(hi))
- {
- const char *path = apr_hash_this_key(hi);
-
- SVN_ERR(dump_node_delete(db->eb->stream, path, pool));
- /* This deletion record is complete -- write an extra newline */
- SVN_ERR(svn_stream_puts(db->eb->stream, "\n"));
- }
-
- /* ### should be unnecessary */
- apr_hash_clear(db->deleted_entries);
-
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-add_file(const char *path,
- void *parent_baton,
- const char *copyfrom_path,
- svn_revnum_t copyfrom_rev,
- apr_pool_t *pool,
- void **file_baton)
-{
- struct dir_baton *pb = parent_baton;
- struct file_baton *fb;
- void *was_deleted;
-
- SVN_ERR(dump_pending_dir(pb->eb, pool));
-
- /* Make the file baton. */
- fb = make_file_baton(path, pb, pool);
-
- /* This might be a replacement -- is the path already deleted? */
- was_deleted = svn_hash_gets(pb->deleted_entries, path);
-
- /* Detect add-with-history. */
- if (ARE_VALID_COPY_ARGS(copyfrom_path, copyfrom_rev))
- {
- fb->copyfrom_path = svn_relpath_canonicalize(copyfrom_path, fb->pool);
- fb->copyfrom_rev = copyfrom_rev;
- fb->is_copy = TRUE;
- }
- fb->action = was_deleted ? svn_node_action_replace : svn_node_action_add;
-
- /* Delete the path, it's now been dumped. */
- if (was_deleted)
- svn_hash_sets(pb->deleted_entries, path, NULL);
-
- *file_baton = fb;
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-open_file(const char *path,
- void *parent_baton,
- svn_revnum_t ancestor_revision,
- apr_pool_t *pool,
- void **file_baton)
-{
- struct dir_baton *pb = parent_baton;
- struct file_baton *fb;
-
- SVN_ERR(dump_pending_dir(pb->eb, pool));
-
- /* Make the file baton. */
- fb = make_file_baton(path, pb, pool);
-
- /* If the parent directory has explicit copyfrom path and rev,
- record the same for this one. */
- if (ARE_VALID_COPY_ARGS(pb->copyfrom_path, pb->copyfrom_rev))
- {
- fb->copyfrom_path = svn_relpath_join(pb->copyfrom_path,
- svn_relpath_basename(path, NULL),
- pb->pool);
- fb->copyfrom_rev = pb->copyfrom_rev;
- }
-
- *file_baton = fb;
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-change_dir_prop(void *parent_baton,
- const char *name,
- const svn_string_t *value,
- apr_pool_t *pool)
-{
- struct dir_baton *db = parent_baton;
- svn_boolean_t this_pending;
-
- /* This directory is not pending, but something else is, so handle
- the "something else". */
- this_pending = (db->eb->pending_db == db);
- if (! this_pending)
- SVN_ERR(dump_pending_dir(db->eb, pool));
-
- if (svn_property_kind2(name) != svn_prop_regular_kind)
- return SVN_NO_ERROR;
-
- if (value)
- svn_hash_sets(db->props,
- apr_pstrdup(db->pool, name),
- svn_string_dup(value, db->pool));
- else
- svn_hash_sets(db->deleted_props, apr_pstrdup(db->pool, name), "");
-
- /* Make sure we eventually output the props */
- db->dump_props = TRUE;
-
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-change_file_prop(void *file_baton,
- const char *name,
- const svn_string_t *value,
- apr_pool_t *pool)
-{
- struct file_baton *fb = file_baton;
-
- if (svn_property_kind2(name) != svn_prop_regular_kind)
- return SVN_NO_ERROR;
-
- if (value)
- svn_hash_sets(fb->props,
- apr_pstrdup(fb->pool, name),
- svn_string_dup(value, fb->pool));
- else
- svn_hash_sets(fb->deleted_props, apr_pstrdup(fb->pool, name), "");
-
- /* Dump the property headers and wait; close_file might need
- to write text headers too depending on whether
- apply_textdelta is called */
- fb->dump_props = TRUE;
-
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-apply_textdelta(void *file_baton, const char *base_checksum,
- apr_pool_t *pool,
- svn_txdelta_window_handler_t *handler,
- void **handler_baton)
-{
- struct file_baton *fb = file_baton;
- struct dump_edit_baton *eb = fb->eb;
- svn_stream_t *delta_filestream;
-
- /* Use a temporary file to measure the Text-content-length */
- delta_filestream = svn_stream_from_aprfile2(eb->delta_file, TRUE, pool);
-
- /* Prepare to write the delta to the delta_filestream */
- svn_txdelta_to_svndiff3(handler, handler_baton,
- delta_filestream, 0,
- SVN_DELTA_COMPRESSION_LEVEL_DEFAULT, pool);
-
- /* Record that there's text to be dumped, and its base checksum. */
- fb->dump_text = TRUE;
- fb->base_checksum = apr_pstrdup(fb->pool, base_checksum);
-
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-close_file(void *file_baton,
- const char *text_checksum,
- apr_pool_t *pool)
-{
- struct file_baton *fb = file_baton;
- struct dump_edit_baton *eb = fb->eb;
- svn_filesize_t text_content_length = 0;
- svn_stringbuf_t *propstring = NULL;
- svn_repos__dumpfile_headers_t *headers;
-
- SVN_ERR(dump_pending_dir(eb, pool));
-
- /* Start dumping this node, by collecting some basic headers for it. */
- SVN_ERR(dump_node(&headers, eb, fb->repos_relpath, NULL, fb,
- fb->action, fb->is_copy, fb->copyfrom_path,
- fb->copyfrom_rev, pool));
-
- /* Some pending properties to dump? We'll dump just the headers for
- now, then dump the actual propchange content only after dumping
- the text headers too (if present). */
- if (fb->dump_props)
- {
- SVN_ERR(get_props_content(headers, &propstring,
- fb->props, fb->deleted_props,
- pool, pool));
- }
-
- /* Dump the text headers */
- if (fb->dump_text)
- {
- /* Text-delta: true */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_TEXT_DELTA, "true");
-
- SVN_ERR(svn_io_file_size_get(&text_content_length, eb->delta_file,
- pool));
-
- if (fb->base_checksum)
- /* Text-delta-base-md5: */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_TEXT_DELTA_BASE_MD5, fb->base_checksum);
-
- /* Text-content-md5: 82705804337e04dcd0e586bfa2389a7f */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_TEXT_CONTENT_MD5, text_checksum);
- }
-
- /* Dump the headers and props now */
- SVN_ERR(svn_repos__dump_node_record(eb->stream, headers, propstring,
- fb->dump_text, text_content_length,
- FALSE /*content_length_always*/,
- pool));
-
- if (fb->dump_props)
- {
- /* Cleanup */
- fb->dump_props = FALSE;
- apr_hash_clear(fb->props);
- apr_hash_clear(fb->deleted_props);
- }
-
- /* Dump the text */
- if (fb->dump_text)
- {
- /* Seek to the beginning of the delta file, map it to a stream,
- and copy the stream to eb->stream. Then close the stream and
- truncate the file so we can reuse it for the next textdelta
- application. Note that the file isn't created, opened or
- closed here */
- svn_stream_t *delta_filestream;
- apr_off_t offset = 0;
-
- SVN_ERR(svn_io_file_seek(eb->delta_file, APR_SET, &offset, pool));
- delta_filestream = svn_stream_from_aprfile2(eb->delta_file, TRUE, pool);
- SVN_ERR(svn_stream_copy3(delta_filestream, eb->stream, NULL, NULL, pool));
-
- /* Cleanup */
- SVN_ERR(svn_stream_close(delta_filestream));
- SVN_ERR(svn_io_file_trunc(eb->delta_file, 0, pool));
- }
-
- /* Write a couple of blank lines for matching output with `svnadmin
- dump` */
- SVN_ERR(svn_stream_puts(eb->stream, "\n\n"));
-
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-close_edit(void *edit_baton, apr_pool_t *pool)
-{
- return SVN_NO_ERROR;
-}
-
static svn_error_t *
fetch_base_func(const char **filename,
void *baton,
@@ -1085,47 +162,21 @@ svn_rdump__get_dump_editor(const svn_delta_editor_t **editor,
apr_pool_t *pool)
{
struct dump_edit_baton *eb;
- svn_delta_editor_t *de;
svn_delta_shim_callbacks_t *shim_callbacks =
svn_delta_shim_callbacks_default(pool);
eb = apr_pcalloc(pool, sizeof(struct dump_edit_baton));
- eb->stream = stream;
eb->ra_session = ra_session;
- eb->update_anchor_relpath = update_anchor_relpath;
eb->current_revision = revision;
- eb->pending_db = NULL;
-
- /* Create a special per-revision pool */
- eb->pool = svn_pool_create(pool);
-
- /* Open a unique temporary file for all textdelta applications in
- this edit session. The file is automatically closed and cleaned
- up when the edit session is done. */
- SVN_ERR(svn_io_open_unique_file3(&(eb->delta_file), &(eb->delta_abspath),
- NULL, svn_io_file_del_on_close, pool, pool));
-
- de = svn_delta_default_editor(pool);
- de->open_root = open_root;
- de->delete_entry = delete_entry;
- de->add_directory = add_directory;
- de->open_directory = open_directory;
- de->close_directory = close_directory;
- de->change_dir_prop = change_dir_prop;
- de->change_file_prop = change_file_prop;
- de->apply_textdelta = apply_textdelta;
- de->add_file = add_file;
- de->open_file = open_file;
- de->close_file = close_file;
- de->close_edit = close_edit;
- /* Set the edit_baton and editor. */
- *edit_baton = eb;
- *editor = de;
+ SVN_ERR(svn_repos__get_dump_editor(editor, edit_baton,
+ stream, update_anchor_relpath, pool));
/* Wrap this editor in a cancellation editor. */
SVN_ERR(svn_delta_get_cancellation_editor(cancel_func, cancel_baton,
- de, eb, editor, edit_baton, pool));
+ *editor, *edit_baton,
+ editor, edit_baton,
+ pool));
shim_callbacks->fetch_base_func = fetch_base_func;
shim_callbacks->fetch_props_func = fetch_props_func;
diff --git a/subversion/svnrdump/load_editor.c b/subversion/svnrdump/load_editor.c
index 2ebacf79e1b5..873302513e55 100644
--- a/subversion/svnrdump/load_editor.c
+++ b/subversion/svnrdump/load_editor.c
@@ -45,15 +45,58 @@
/**
+ * A vtable that is driven by get_dumpstream_loader().
+ */
+typedef struct loader_fns_t
+{
+ /* Callback on starting a revision, to obtain an editor for the revision.
+ *
+ * This callback returns in *EDITOR and *EDIT_BATON an editor through which
+ * its caller will drive the changes for revision REVISION.
+ *
+ * This callback should call the editor's SET_TARGET_REVISION method if
+ * required.
+ *
+ * REV_PROPS holds the revision properties.
+ *
+ * POOL (and REV_PROPS) will persist until after the REVFINISH callback
+ * returns.
+ *
+ * Modelled on svn_ra_replay_revstart_callback_t.
+ */
+ svn_error_t *(*revstart)(
+ svn_revnum_t revision,
+ void *baton,
+ const svn_delta_editor_t **editor,
+ void **edit_baton,
+ apr_hash_t *rev_props,
+ apr_pool_t *pool);
+
+ /* Fetch the node props for ORIG_PATH @ ORIG_REV, a node of kind KIND.
+ *
+ * This callback is required if a non-deltas-format dump is parsed;
+ * otherwise it will not be called and may be null. If required and not
+ * provided, the loader will return SVN_ERR_UNSUPPORTED_FEATURE.
+ *
+ * Only regular props are needed. Any special kinds of property such as
+ * entry-props and DAV/WC-props will be ignored.
+ */
+ svn_error_t *(*fetch_props)(
+ apr_hash_t **props,
+ void *baton,
+ const char *orig_path,
+ svn_revnum_t orig_rev,
+ svn_node_kind_t kind,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+} loader_fns_t;
+
+/**
* General baton used by the parser functions.
*/
struct parse_baton
{
- /* Commit editor and baton used to transfer loaded revisions to
- the target repository. */
- const svn_delta_editor_t *commit_editor;
- void *commit_edit_baton;
-
/* RA session(s) for committing to the target repository. */
svn_ra_session_t *session;
svn_ra_session_t *aux_session;
@@ -72,7 +115,7 @@ struct parse_baton
/* A mapping of svn_revnum_t * dump stream revisions to their
corresponding svn_revnum_t * target repository revisions. */
- /* ### See http://subversion.tigris.org/issues/show_bug.cgi?id=3903
+ /* ### See https://issues.apache.org/jira/browse/SVN-3903
### for discussion about improving the memory costs of this mapping. */
apr_hash_t *rev_map;
@@ -87,6 +130,9 @@ struct parse_baton
/* An hash containing specific revision properties to skip while
loading. */
apr_hash_t *skip_revprops;
+
+ const loader_fns_t *callbacks;
+ void *cb_baton;
};
/**
@@ -144,8 +190,14 @@ struct revision_baton
{
svn_revnum_t rev;
apr_hash_t *revprop_table;
+ svn_revnum_t head_rev_before_commit;
apr_int32_t rev_offset;
+ /* Commit editor and baton used to transfer loaded revisions to
+ the target repository. */
+ const svn_delta_editor_t *commit_editor;
+ void *commit_edit_baton;
+
const svn_string_t *datestamp;
const svn_string_t *author;
@@ -183,204 +235,83 @@ get_revision_mapping(apr_hash_t *rev_map,
static svn_error_t *
-commit_callback(const svn_commit_info_t *commit_info,
- void *baton,
- apr_pool_t *pool)
+magic_header_record(int version,
+ void *parse_baton,
+ apr_pool_t *pool)
{
- struct revision_baton *rb = baton;
- struct parse_baton *pb = rb->pb;
-
- /* ### Don't print directly; generate a notification. */
- if (! pb->quiet)
- SVN_ERR(svn_cmdline_printf(pool, "* Loaded revision %ld.\n",
- commit_info->revision));
-
- /* Add the mapping of the dumpstream revision to the committed revision. */
- set_revision_mapping(pb->rev_map, rb->rev, commit_info->revision);
-
- /* If the incoming dump stream has non-contiguous revisions (e.g. from
- using svndumpfilter --drop-empty-revs without --renumber-revs) then
- we must account for the missing gaps in PB->REV_MAP. Otherwise we
- might not be able to map all mergeinfo source revisions to the correct
- revisions in the target repos. */
- if ((pb->last_rev_mapped != SVN_INVALID_REVNUM)
- && (rb->rev != pb->last_rev_mapped + 1))
- {
- svn_revnum_t i;
-
- for (i = pb->last_rev_mapped + 1; i < rb->rev; i++)
- {
- set_revision_mapping(pb->rev_map, i, pb->last_rev_mapped);
- }
- }
-
- /* Update our "last revision mapped". */
- pb->last_rev_mapped = rb->rev;
-
return SVN_NO_ERROR;
}
-/* Implements `svn_ra__lock_retry_func_t'. */
-static svn_error_t *
-lock_retry_func(void *baton,
- const svn_string_t *reposlocktoken,
- apr_pool_t *pool)
-{
- return svn_cmdline_printf(pool,
- _("Failed to get lock on destination "
- "repos, currently held by '%s'\n"),
- reposlocktoken->data);
-}
-
-
static svn_error_t *
-fetch_base_func(const char **filename,
- void *baton,
- const char *path,
- svn_revnum_t base_revision,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
+uuid_record(const char *uuid,
+ void *parse_baton,
+ apr_pool_t *pool)
{
- struct revision_baton *rb = baton;
- svn_stream_t *fstream;
- svn_error_t *err;
-
- if (! SVN_IS_VALID_REVNUM(base_revision))
- base_revision = rb->rev - 1;
-
- SVN_ERR(svn_stream_open_unique(&fstream, filename, NULL,
- svn_io_file_del_on_pool_cleanup,
- result_pool, scratch_pool));
-
- err = svn_ra_get_file(rb->pb->aux_session, path, base_revision,
- fstream, NULL, NULL, scratch_pool);
- if (err && err->apr_err == SVN_ERR_FS_NOT_FOUND)
- {
- svn_error_clear(err);
- SVN_ERR(svn_stream_close(fstream));
-
- *filename = NULL;
- return SVN_NO_ERROR;
- }
- else if (err)
- return svn_error_trace(err);
-
- SVN_ERR(svn_stream_close(fstream));
-
return SVN_NO_ERROR;
}
-static svn_error_t *
-fetch_props_func(apr_hash_t **props,
- void *baton,
- const char *path,
- svn_revnum_t base_revision,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
+/* Push information about another directory onto the linked list RB->db.
+ *
+ * CHILD_BATON is the baton returned by the commit editor. RELPATH is the
+ * repository-relative path of this directory. IS_ADDED is true iff this
+ * directory is being added (with or without history). If added with
+ * history then COPYFROM_PATH/COPYFROM_REV are the copyfrom source, else
+ * are NULL/SVN_INVALID_REVNUM.
+ */
+static void
+push_directory(struct revision_baton *rb,
+ void *child_baton,
+ const char *relpath,
+ svn_boolean_t is_added,
+ const char *copyfrom_path,
+ svn_revnum_t copyfrom_rev)
{
- struct revision_baton *rb = baton;
- svn_node_kind_t node_kind;
-
- if (! SVN_IS_VALID_REVNUM(base_revision))
- base_revision = rb->rev - 1;
+ struct directory_baton *child_db = apr_pcalloc(rb->pool, sizeof (*child_db));
- SVN_ERR(svn_ra_check_path(rb->pb->aux_session, path, base_revision,
- &node_kind, scratch_pool));
+ SVN_ERR_ASSERT_NO_RETURN(
+ is_added || (copyfrom_path == NULL && copyfrom_rev == SVN_INVALID_REVNUM));
- if (node_kind == svn_node_file)
- {
- SVN_ERR(svn_ra_get_file(rb->pb->aux_session, path, base_revision,
- NULL, NULL, props, result_pool));
- }
- else if (node_kind == svn_node_dir)
+ /* If this node is an existing (not newly added) child of a copied node,
+ calculate where it was copied from. */
+ if (!is_added
+ && ARE_VALID_COPY_ARGS(rb->db->copyfrom_path, rb->db->copyfrom_rev))
{
- apr_array_header_t *tmp_props;
+ const char *name = svn_relpath_basename(relpath, NULL);
- SVN_ERR(svn_ra_get_dir2(rb->pb->aux_session, NULL, NULL, props, path,
- base_revision, 0 /* Dirent fields */,
- result_pool));
- tmp_props = svn_prop_hash_to_array(*props, result_pool);
- SVN_ERR(svn_categorize_props(tmp_props, NULL, NULL, &tmp_props,
- result_pool));
- *props = svn_prop_array_to_hash(tmp_props, result_pool);
- }
- else
- {
- *props = apr_hash_make(result_pool);
+ copyfrom_path = svn_relpath_join(rb->db->copyfrom_path, name,
+ rb->pool);
+ copyfrom_rev = rb->db->copyfrom_rev;
}
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-fetch_kind_func(svn_node_kind_t *kind,
- void *baton,
- const char *path,
- svn_revnum_t base_revision,
- apr_pool_t *scratch_pool)
-{
- struct revision_baton *rb = baton;
-
- if (! SVN_IS_VALID_REVNUM(base_revision))
- base_revision = rb->rev - 1;
-
- SVN_ERR(svn_ra_check_path(rb->pb->aux_session, path, base_revision,
- kind, scratch_pool));
-
- return SVN_NO_ERROR;
-}
-
-static svn_delta_shim_callbacks_t *
-get_shim_callbacks(struct revision_baton *rb,
- apr_pool_t *pool)
-{
- svn_delta_shim_callbacks_t *callbacks =
- svn_delta_shim_callbacks_default(pool);
-
- callbacks->fetch_props_func = fetch_props_func;
- callbacks->fetch_kind_func = fetch_kind_func;
- callbacks->fetch_base_func = fetch_base_func;
- callbacks->fetch_baton = rb;
-
- return callbacks;
+ child_db->baton = child_baton;
+ child_db->relpath = relpath;
+ child_db->copyfrom_path = copyfrom_path;
+ child_db->copyfrom_rev = copyfrom_rev;
+ child_db->parent = rb->db;
+ rb->db = child_db;
}
-/* Acquire a lock (of sorts) on the repository associated with the
- * given RA SESSION. This lock is just a revprop change attempt in a
- * time-delay loop. This function is duplicated by svnsync in
- * svnsync/svnsync.c
- *
- * ### TODO: Make this function more generic and
- * expose it through a header for use by other Subversion
- * applications to avoid duplication.
+/* Called to obtain an editor for the revision described by RB.
*/
static svn_error_t *
-get_lock(const svn_string_t **lock_string_p,
- svn_ra_session_t *session,
- svn_cancel_func_t cancel_func,
- void *cancel_baton,
- apr_pool_t *pool)
+revision_start_edit(struct revision_baton *rb,
+ apr_pool_t *scratch_pool)
{
- svn_boolean_t be_atomic;
-
- SVN_ERR(svn_ra_has_capability(session, &be_atomic,
- SVN_RA_CAPABILITY_ATOMIC_REVPROPS,
- pool));
- if (! be_atomic)
- {
- /* Pre-1.7 servers can't lock without a race condition. (Issue #3546) */
- svn_error_t *err =
- svn_error_create(SVN_ERR_UNSUPPORTED_FEATURE, NULL,
- _("Target server does not support atomic revision "
- "property edits; consider upgrading it to 1.7."));
- svn_handle_warning2(stderr, err, "svnrdump: ");
- svn_error_clear(err);
- }
+ struct parse_baton *pb = rb->pb;
+ void *child_baton;
- return svn_ra__get_operational_lock(lock_string_p, NULL, session,
- SVNRDUMP_PROP_LOCK, FALSE,
- 10 /* retries */, lock_retry_func, NULL,
- cancel_func, cancel_baton, pool);
+ SVN_ERR(pb->callbacks->revstart(rb->rev,
+ pb->cb_baton,
+ &rb->commit_editor, &rb->commit_edit_baton,
+ rb->revprop_table,
+ rb->pool));
+ SVN_ERR(rb->commit_editor->open_root(rb->commit_edit_baton,
+ rb->head_rev_before_commit,
+ rb->pool, &child_baton));
+ /* child_baton corresponds to the root directory baton here */
+ push_directory(rb, child_baton, "", TRUE /*is_added*/,
+ NULL, SVN_INVALID_REVNUM);
+ return SVN_NO_ERROR;
}
static svn_error_t *
@@ -389,13 +320,11 @@ new_revision_record(void **revision_baton,
void *parse_baton,
apr_pool_t *pool)
{
+ struct parse_baton *pb = parse_baton;
struct revision_baton *rb;
- struct parse_baton *pb;
const char *rev_str;
- svn_revnum_t head_rev;
rb = apr_pcalloc(pool, sizeof(*rb));
- pb = parse_baton;
rb->pool = svn_pool_create(pool);
rb->pb = pb;
rb->db = NULL;
@@ -404,13 +333,14 @@ new_revision_record(void **revision_baton,
if (rev_str)
rb->rev = SVN_STR_TO_REV(rev_str);
- SVN_ERR(svn_ra_get_latest_revnum(pb->session, &head_rev, pool));
+ SVN_ERR(svn_ra_get_latest_revnum(pb->session, &rb->head_rev_before_commit,
+ pool));
/* FIXME: This is a lame fallback loading multiple segments of dump in
several separate operations. It is highly susceptible to race conditions.
Calculate the revision 'offset' for finding copyfrom sources.
It might be positive or negative. */
- rb->rev_offset = (apr_int32_t) ((rb->rev) - (head_rev + 1));
+ rb->rev_offset = (apr_int32_t) ((rb->rev) - (rb->head_rev_before_commit + 1));
/* Stash the oldest (non-zero) dumpstream revision seen. */
if ((rb->rev > 0) && (!SVN_IS_VALID_REVNUM(pb->oldest_dumpstream_rev)))
@@ -418,8 +348,8 @@ new_revision_record(void **revision_baton,
/* Set the commit_editor/ commit_edit_baton to NULL and wait for
them to be created in new_node_record */
- rb->pb->commit_editor = NULL;
- rb->pb->commit_edit_baton = NULL;
+ rb->commit_editor = NULL;
+ rb->commit_edit_baton = NULL;
rb->revprop_table = apr_hash_make(rb->pool);
*revision_baton = rb;
@@ -427,73 +357,14 @@ new_revision_record(void **revision_baton,
}
static svn_error_t *
-magic_header_record(int version,
- void *parse_baton,
- apr_pool_t *pool)
-{
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-uuid_record(const char *uuid,
- void *parse_baton,
- apr_pool_t *pool)
-{
- return SVN_NO_ERROR;
-}
-
-/* Push information about another directory onto the linked list RB->db.
- *
- * CHILD_BATON is the baton returned by the commit editor. RELPATH is the
- * repository-relative path of this directory. IS_ADDED is true iff this
- * directory is being added (with or without history). If added with
- * history then COPYFROM_PATH/COPYFROM_REV are the copyfrom source, else
- * are NULL/SVN_INVALID_REVNUM.
- */
-static void
-push_directory(struct revision_baton *rb,
- void *child_baton,
- const char *relpath,
- svn_boolean_t is_added,
- const char *copyfrom_path,
- svn_revnum_t copyfrom_rev)
-{
- struct directory_baton *child_db = apr_pcalloc(rb->pool, sizeof (*child_db));
-
- SVN_ERR_ASSERT_NO_RETURN(
- is_added || (copyfrom_path == NULL && copyfrom_rev == SVN_INVALID_REVNUM));
-
- /* If this node is an existing (not newly added) child of a copied node,
- calculate where it was copied from. */
- if (!is_added
- && ARE_VALID_COPY_ARGS(rb->db->copyfrom_path, rb->db->copyfrom_rev))
- {
- const char *name = svn_relpath_basename(relpath, NULL);
-
- copyfrom_path = svn_relpath_join(rb->db->copyfrom_path, name,
- rb->pool);
- copyfrom_rev = rb->db->copyfrom_rev;
- }
-
- child_db->baton = child_baton;
- child_db->relpath = relpath;
- child_db->copyfrom_path = copyfrom_path;
- child_db->copyfrom_rev = copyfrom_rev;
- child_db->parent = rb->db;
- rb->db = child_db;
-}
-
-static svn_error_t *
new_node_record(void **node_baton,
apr_hash_t *headers,
void *revision_baton,
apr_pool_t *pool)
{
struct revision_baton *rb = revision_baton;
- const struct svn_delta_editor_t *commit_editor = rb->pb->commit_editor;
- void *commit_edit_baton = rb->pb->commit_edit_baton;
+ const struct svn_delta_editor_t *commit_editor = rb->commit_editor;
struct node_baton *nb;
- svn_revnum_t head_rev_before_commit = rb->rev - rb->rev_offset - 1;
apr_hash_index_t *hi;
void *child_baton;
const char *nb_dirname;
@@ -508,7 +379,6 @@ new_node_record(void **node_baton,
/* If the creation of commit_editor is pending, create it now and
open_root on it; also create a top-level directory baton. */
-
if (!commit_editor)
{
/* The revprop_table should have been filled in with important
@@ -521,23 +391,8 @@ new_node_record(void **node_baton,
svn_hash_sets(rb->revprop_table, SVN_PROP_REVISION_AUTHOR, NULL);
svn_hash_sets(rb->revprop_table, SVN_PROP_REVISION_DATE, NULL);
- SVN_ERR(svn_ra__register_editor_shim_callbacks(rb->pb->session,
- get_shim_callbacks(rb, rb->pool)));
- SVN_ERR(svn_ra_get_commit_editor3(rb->pb->session, &commit_editor,
- &commit_edit_baton, rb->revprop_table,
- commit_callback, revision_baton,
- NULL, FALSE, rb->pool));
-
- rb->pb->commit_editor = commit_editor;
- rb->pb->commit_edit_baton = commit_edit_baton;
-
- SVN_ERR(commit_editor->open_root(commit_edit_baton,
- head_rev_before_commit,
- rb->pool, &child_baton));
-
- /* child_baton corresponds to the root directory baton here */
- push_directory(rb, child_baton, "", TRUE /*is_added*/,
- NULL, SVN_INVALID_REVNUM);
+ SVN_ERR(revision_start_edit(rb, pool));
+ commit_editor = rb->commit_editor;
}
for (hi = apr_hash_first(rb->pool, headers); hi; hi = apr_hash_next(hi))
@@ -612,7 +467,7 @@ new_node_record(void **node_baton,
rb->pool);
SVN_ERR(commit_editor->open_directory(relpath_compose,
rb->db->baton,
- head_rev_before_commit,
+ rb->head_rev_before_commit,
rb->pool, &child_baton));
push_directory(rb, child_baton, relpath_compose, TRUE /*is_added*/,
NULL, SVN_INVALID_REVNUM);
@@ -655,7 +510,7 @@ new_node_record(void **node_baton,
case svn_node_action_delete:
case svn_node_action_replace:
SVN_ERR(commit_editor->delete_entry(nb->path,
- head_rev_before_commit,
+ rb->head_rev_before_commit,
rb->db->baton, rb->pool));
if (nb->action == svn_node_action_delete)
break;
@@ -693,7 +548,7 @@ new_node_record(void **node_baton,
break;
default:
SVN_ERR(commit_editor->open_directory(nb->path, rb->db->baton,
- head_rev_before_commit,
+ rb->head_rev_before_commit,
rb->pool, &child_baton));
push_directory(rb, child_baton, nb->path, FALSE /*is_added*/,
NULL, SVN_INVALID_REVNUM);
@@ -721,9 +576,10 @@ set_revision_property(void *baton,
{
if (! svn_hash_gets(rb->pb->skip_revprops, name))
svn_hash_sets(rb->revprop_table,
- apr_pstrdup(rb->pool, name), value);
+ apr_pstrdup(rb->pool, name),
+ svn_string_dup(value, rb->pool));
}
- else if (rb->rev_offset == -1
+ else if (rb->head_rev_before_commit == 0
&& ! svn_hash_gets(rb->pb->skip_revprops, name))
{
/* Special case: set revision 0 properties directly (which is
@@ -736,9 +592,9 @@ set_revision_property(void *baton,
/* Remember any datestamp/ author that passes through (see comment
in close_revision). */
if (!strcmp(name, SVN_PROP_REVISION_DATE))
- rb->datestamp = value;
+ rb->datestamp = svn_string_dup(value, rb->pool);
if (!strcmp(name, SVN_PROP_REVISION_AUTHOR))
- rb->author = value;
+ rb->author = svn_string_dup(value, rb->pool);
return SVN_NO_ERROR;
}
@@ -781,7 +637,7 @@ set_node_property(void *baton,
prop = apr_palloc(nb->rb->pool, sizeof (*prop));
prop->name = apr_pstrdup(pool, name);
- prop->value = value;
+ prop->value = svn_string_dup(value, pool);
svn_hash_sets(nb->prop_changes, prop->name, prop);
return SVN_NO_ERROR;
@@ -856,16 +712,14 @@ remove_node_props(void *baton)
/* Add-without-history; no "old" properties to worry about. */
return SVN_NO_ERROR;
- if (nb->kind == svn_node_file)
- {
- SVN_ERR(svn_ra_get_file(nb->rb->pb->aux_session,
- orig_path, orig_rev, NULL, NULL, &props, pool));
- }
- else /* nb->kind == svn_node_dir */
- {
- SVN_ERR(svn_ra_get_dir2(nb->rb->pb->aux_session, NULL, NULL, &props,
- orig_path, orig_rev, 0, pool));
- }
+ if (! rb->pb->callbacks->fetch_props)
+ return svn_error_create(SVN_ERR_UNSUPPORTED_FEATURE, NULL,
+ _("This dumpstream reader requires a delta "
+ "format dumpstream"));
+ SVN_ERR(rb->pb->callbacks->fetch_props(&props,
+ rb->pb->cb_baton,
+ orig_path, orig_rev, nb->kind,
+ pool, pool));
for (hi = apr_hash_first(pool, props); hi; hi = apr_hash_next(hi))
{
@@ -884,7 +738,7 @@ set_fulltext(svn_stream_t **stream,
void *node_baton)
{
struct node_baton *nb = node_baton;
- const struct svn_delta_editor_t *commit_editor = nb->rb->pb->commit_editor;
+ const struct svn_delta_editor_t *commit_editor = nb->rb->commit_editor;
svn_txdelta_window_handler_t handler;
void *handler_baton;
apr_pool_t *pool = nb->rb->pool;
@@ -902,7 +756,7 @@ apply_textdelta(svn_txdelta_window_handler_t *handler,
void *node_baton)
{
struct node_baton *nb = node_baton;
- const struct svn_delta_editor_t *commit_editor = nb->rb->pb->commit_editor;
+ const struct svn_delta_editor_t *commit_editor = nb->rb->commit_editor;
apr_pool_t *pool = nb->rb->pool;
SVN_ERR(commit_editor->apply_textdelta(nb->file_baton, nb->base_checksum,
@@ -915,7 +769,7 @@ static svn_error_t *
close_node(void *baton)
{
struct node_baton *nb = baton;
- const struct svn_delta_editor_t *commit_editor = nb->rb->pb->commit_editor;
+ const struct svn_delta_editor_t *commit_editor = nb->rb->commit_editor;
apr_pool_t *pool = nb->rb->pool;
apr_hash_index_t *hi;
@@ -956,8 +810,8 @@ static svn_error_t *
close_revision(void *baton)
{
struct revision_baton *rb = baton;
- const svn_delta_editor_t *commit_editor = rb->pb->commit_editor;
- void *commit_edit_baton = rb->pb->commit_edit_baton;
+ const svn_delta_editor_t *commit_editor = rb->commit_editor;
+ void *commit_edit_baton = rb->commit_edit_baton;
svn_revnum_t committed_rev = SVN_INVALID_REVNUM;
/* Fake revision 0 */
@@ -982,20 +836,12 @@ close_revision(void *baton)
}
else
{
- svn_revnum_t head_rev_before_commit = rb->rev - rb->rev_offset - 1;
- void *child_baton;
-
/* Legitimate revision with no node information */
- SVN_ERR(svn_ra_get_commit_editor3(rb->pb->session, &commit_editor,
- &commit_edit_baton, rb->revprop_table,
- commit_callback, baton,
- NULL, FALSE, rb->pool));
-
- SVN_ERR(commit_editor->open_root(commit_edit_baton,
- head_rev_before_commit,
- rb->pool, &child_baton));
+ SVN_ERR(revision_start_edit(rb, rb->pool));
+ commit_editor = rb->commit_editor;
+ commit_edit_baton = rb->commit_edit_baton;
- SVN_ERR(commit_editor->close_directory(child_baton, rb->pool));
+ SVN_ERR(commit_editor->close_directory(rb->db->baton, rb->pool));
SVN_ERR(commit_editor->close_edit(commit_edit_baton, rb->pool));
}
@@ -1007,7 +853,7 @@ close_revision(void *baton)
{
committed_rev = get_revision_mapping(rb->pb->rev_map, rb->rev);
}
- else if (rb->rev_offset == -1)
+ else if (rb->head_rev_before_commit == 0)
{
committed_rev = 0;
}
@@ -1016,16 +862,12 @@ close_revision(void *baton)
{
if (!svn_hash_gets(rb->pb->skip_revprops, SVN_PROP_REVISION_DATE))
{
- SVN_ERR(svn_repos__validate_prop(SVN_PROP_REVISION_DATE,
- rb->datestamp, rb->pool));
SVN_ERR(svn_ra_change_rev_prop2(rb->pb->session, committed_rev,
SVN_PROP_REVISION_DATE,
NULL, rb->datestamp, rb->pool));
}
if (!svn_hash_gets(rb->pb->skip_revprops, SVN_PROP_REVISION_AUTHOR))
{
- SVN_ERR(svn_repos__validate_prop(SVN_PROP_REVISION_AUTHOR,
- rb->author, rb->pool));
SVN_ERR(svn_ra_change_rev_prop2(rb->pb->session, committed_rev,
SVN_PROP_REVISION_AUTHOR,
NULL, rb->author, rb->pool));
@@ -1037,27 +879,238 @@ close_revision(void *baton)
return SVN_NO_ERROR;
}
-svn_error_t *
-svn_rdump__load_dumpstream(svn_stream_t *stream,
- svn_ra_session_t *session,
- svn_ra_session_t *aux_session,
- svn_boolean_t quiet,
- apr_hash_t *skip_revprops,
- svn_cancel_func_t cancel_func,
- void *cancel_baton,
- apr_pool_t *pool)
+/*----------------------------------------------------------------------*/
+
+/**
+ * Baton used for commit callback (and Ev2 shims).
+ */
+struct commit_baton_t
+{
+ svn_revnum_t rev;
+ struct parse_baton *pb;
+};
+
+/*
+ * - Notification of the commit.
+ * - Update the revision number mapping to take account of the actual
+ * committed revision number.
+ */
+static svn_error_t *
+commit_callback(const svn_commit_info_t *commit_info,
+ void *baton,
+ apr_pool_t *pool)
+{
+ struct commit_baton_t *cb = baton;
+ struct parse_baton *pb = cb->pb;
+
+ /* ### Don't print directly; generate a notification. */
+ if (! pb->quiet)
+ SVN_ERR(svn_cmdline_printf(pool, "* Loaded revision %ld.\n",
+ commit_info->revision));
+
+ /* Add the mapping of the dumpstream revision to the committed revision. */
+ set_revision_mapping(pb->rev_map, cb->rev, commit_info->revision);
+
+ /* If the incoming dump stream has non-contiguous revisions (e.g. from
+ using svndumpfilter --drop-empty-revs without --renumber-revs) then
+ we must account for the missing gaps in PB->REV_MAP. Otherwise we
+ might not be able to map all mergeinfo source revisions to the correct
+ revisions in the target repos. */
+ if ((pb->last_rev_mapped != SVN_INVALID_REVNUM)
+ && (cb->rev != pb->last_rev_mapped + 1))
+ {
+ svn_revnum_t i;
+
+ for (i = pb->last_rev_mapped + 1; i < cb->rev; i++)
+ {
+ set_revision_mapping(pb->rev_map, i, pb->last_rev_mapped);
+ }
+ }
+
+ /* Update our "last revision mapped". */
+ pb->last_rev_mapped = cb->rev;
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+fetch_base_func(const char **filename,
+ void *baton,
+ const char *path,
+ svn_revnum_t base_revision,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ struct commit_baton_t *cb = baton;
+ svn_stream_t *fstream;
+ svn_error_t *err;
+
+ if (! SVN_IS_VALID_REVNUM(base_revision))
+ base_revision = cb->rev - 1;
+
+ SVN_ERR(svn_stream_open_unique(&fstream, filename, NULL,
+ svn_io_file_del_on_pool_cleanup,
+ result_pool, scratch_pool));
+
+ err = svn_ra_get_file(cb->pb->aux_session, path, base_revision,
+ fstream, NULL, NULL, scratch_pool);
+ if (err && err->apr_err == SVN_ERR_FS_NOT_FOUND)
+ {
+ svn_error_clear(err);
+ SVN_ERR(svn_stream_close(fstream));
+
+ *filename = NULL;
+ return SVN_NO_ERROR;
+ }
+ else if (err)
+ return svn_error_trace(err);
+
+ SVN_ERR(svn_stream_close(fstream));
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+fetch_props(apr_hash_t **props,
+ void *baton,
+ const char *path,
+ svn_revnum_t base_revision,
+ svn_node_kind_t node_kind,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ struct parse_baton *pb = baton;
+
+ if (node_kind == svn_node_file)
+ {
+ SVN_ERR(svn_ra_get_file(pb->aux_session, path, base_revision,
+ NULL, NULL, props, result_pool));
+ }
+ else if (node_kind == svn_node_dir)
+ {
+ apr_array_header_t *tmp_props;
+
+ SVN_ERR(svn_ra_get_dir2(pb->aux_session, NULL, NULL, props, path,
+ base_revision, 0 /* Dirent fields */,
+ result_pool));
+ tmp_props = svn_prop_hash_to_array(*props, result_pool);
+ SVN_ERR(svn_categorize_props(tmp_props, NULL, NULL, &tmp_props,
+ result_pool));
+ *props = svn_prop_array_to_hash(tmp_props, result_pool);
+ }
+ else
+ {
+ *props = apr_hash_make(result_pool);
+ }
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+fetch_props_func(apr_hash_t **props,
+ void *baton,
+ const char *path,
+ svn_revnum_t base_revision,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ struct commit_baton_t *cb = baton;
+ svn_node_kind_t node_kind;
+
+ if (! SVN_IS_VALID_REVNUM(base_revision))
+ base_revision = cb->rev - 1;
+
+ SVN_ERR(svn_ra_check_path(cb->pb->aux_session, path, base_revision,
+ &node_kind, scratch_pool));
+ SVN_ERR(fetch_props(props, cb->pb, path, base_revision, node_kind,
+ result_pool, scratch_pool));
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+fetch_kind_func(svn_node_kind_t *kind,
+ void *baton,
+ const char *path,
+ svn_revnum_t base_revision,
+ apr_pool_t *scratch_pool)
+{
+ struct commit_baton_t *cb = baton;
+
+ if (! SVN_IS_VALID_REVNUM(base_revision))
+ base_revision = cb->rev - 1;
+
+ SVN_ERR(svn_ra_check_path(cb->pb->aux_session, path, base_revision,
+ kind, scratch_pool));
+
+ return SVN_NO_ERROR;
+}
+
+static svn_delta_shim_callbacks_t *
+get_shim_callbacks(struct commit_baton_t *cb,
+ apr_pool_t *pool)
+{
+ svn_delta_shim_callbacks_t *callbacks =
+ svn_delta_shim_callbacks_default(pool);
+
+ callbacks->fetch_props_func = fetch_props_func;
+ callbacks->fetch_kind_func = fetch_kind_func;
+ callbacks->fetch_base_func = fetch_base_func;
+ callbacks->fetch_baton = cb;
+
+ return callbacks;
+}
+
+/* */
+static svn_error_t *
+revstart(svn_revnum_t revision,
+ void *baton,
+ const svn_delta_editor_t **editor_p,
+ void **edit_baton_p,
+ apr_hash_t *rev_props,
+ apr_pool_t *result_pool)
+{
+ struct parse_baton *pb = baton;
+ struct commit_baton_t *cb = apr_palloc(result_pool, sizeof(*cb));
+
+ cb->rev = revision;
+ cb->pb = pb;
+ SVN_ERR(svn_ra__register_editor_shim_callbacks(pb->session,
+ get_shim_callbacks(cb, result_pool)));
+ SVN_ERR(svn_ra_get_commit_editor3(pb->session,
+ editor_p, edit_baton_p,
+ rev_props,
+ commit_callback, cb,
+ NULL, FALSE, result_pool));
+ return SVN_NO_ERROR;
+}
+
+/* Return an implementation of the dumpstream parser API that will drive
+ * commits over the RA layer to the location described by SESSION.
+ *
+ * Use AUX_SESSION (which is opened to the same URL as SESSION)
+ * for any secondary, out-of-band RA communications required. This is
+ * needed when loading a non-deltas dump, and for Ev2.
+ *
+ * Print feedback to the console for each revision, unless QUIET is true.
+ *
+ * Ignore (don't set) any revision property whose name is a key in
+ * SKIP_REVPROPS. The values in the hash are unimportant.
+ */
+static svn_error_t *
+get_dumpstream_loader(svn_repos_parse_fns3_t **parser_p,
+ void **parse_baton_p,
+ svn_ra_session_t *session,
+ svn_ra_session_t *aux_session,
+ svn_boolean_t quiet,
+ apr_hash_t *skip_revprops,
+ apr_pool_t *pool)
{
svn_repos_parse_fns3_t *parser;
struct parse_baton *parse_baton;
- const svn_string_t *lock_string;
- svn_boolean_t be_atomic;
- svn_error_t *err;
const char *session_url, *root_url, *parent_dir;
+ static const loader_fns_t callbacks = { revstart, fetch_props };
- SVN_ERR(svn_ra_has_capability(session, &be_atomic,
- SVN_RA_CAPABILITY_ATOMIC_REVPROPS,
- pool));
- SVN_ERR(get_lock(&lock_string, session, cancel_func, cancel_baton, pool));
SVN_ERR(svn_ra_get_repos_root2(session, &root_url, pool));
SVN_ERR(svn_ra_get_session_url(session, &session_url, pool));
SVN_ERR(svn_ra_get_path_relative_to_root(session, &parent_dir,
@@ -1087,6 +1140,300 @@ svn_rdump__load_dumpstream(svn_stream_t *stream,
parse_baton->last_rev_mapped = SVN_INVALID_REVNUM;
parse_baton->oldest_dumpstream_rev = SVN_INVALID_REVNUM;
parse_baton->skip_revprops = skip_revprops;
+ parse_baton->callbacks = &callbacks;
+ parse_baton->cb_baton = parse_baton;
+
+ *parser_p = parser;
+ *parse_baton_p = parse_baton;
+ return SVN_NO_ERROR;
+}
+
+/*----------------------------------------------------------------------*/
+
+/* Dump-stream parser wrapper */
+
+struct filter_parse_baton_t
+{
+ const svn_repos_parse_fns3_t *wrapped_parser;
+ struct parse_baton *wrapped_pb;
+};
+
+struct filter_revision_baton_t
+{
+ struct filter_parse_baton_t *pb;
+ void *wrapped_rb;
+};
+
+struct filter_node_baton_t
+{
+ struct filter_revision_baton_t *rb;
+ void *wrapped_nb;
+};
+
+static svn_error_t *
+filter_magic_header_record(int version,
+ void *parse_baton,
+ apr_pool_t *pool)
+{
+ struct filter_parse_baton_t *pb = parse_baton;
+
+ SVN_ERR(pb->wrapped_parser->magic_header_record(version, pb->wrapped_pb,
+ pool));
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+filter_uuid_record(const char *uuid,
+ void *parse_baton,
+ apr_pool_t *pool)
+{
+ struct filter_parse_baton_t *pb = parse_baton;
+
+ SVN_ERR(pb->wrapped_parser->uuid_record(uuid, pb->wrapped_pb, pool));
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+filter_new_revision_record(void **revision_baton,
+ apr_hash_t *headers,
+ void *parse_baton,
+ apr_pool_t *pool)
+{
+ struct filter_parse_baton_t *pb = parse_baton;
+ struct filter_revision_baton_t *rb = apr_pcalloc(pool, sizeof (*rb));
+
+ rb->pb = pb;
+ SVN_ERR(pb->wrapped_parser->new_revision_record(&rb->wrapped_rb, headers,
+ pb->wrapped_pb, pool));
+ *revision_baton = rb;
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+filter_new_node_record(void **node_baton,
+ apr_hash_t *headers,
+ void *revision_baton,
+ apr_pool_t *pool)
+{
+ struct filter_revision_baton_t *rb = revision_baton;
+ struct filter_parse_baton_t *pb = rb->pb;
+ struct filter_node_baton_t *nb = apr_pcalloc(pool, sizeof (*nb));
+
+ nb->rb = rb;
+ SVN_ERR(pb->wrapped_parser->new_node_record(&nb->wrapped_nb, headers,
+ rb->wrapped_rb, pool));
+ *node_baton = nb;
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+filter_set_revision_property(void *revision_baton,
+ const char *name,
+ const svn_string_t *value)
+{
+ struct filter_revision_baton_t *rb = revision_baton;
+ struct filter_parse_baton_t *pb = rb->pb;
+
+ SVN_ERR(pb->wrapped_parser->set_revision_property(rb->wrapped_rb,
+ name, value));
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+filter_set_node_property(void *node_baton,
+ const char *name,
+ const svn_string_t *value)
+{
+ struct filter_node_baton_t *nb = node_baton;
+ struct filter_revision_baton_t *rb = nb->rb;
+ struct filter_parse_baton_t *pb = rb->pb;
+
+ SVN_ERR(pb->wrapped_parser->set_node_property(nb->wrapped_nb,
+ name, value));
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+filter_delete_node_property(void *node_baton,
+ const char *name)
+{
+ struct filter_node_baton_t *nb = node_baton;
+ struct filter_revision_baton_t *rb = nb->rb;
+ struct filter_parse_baton_t *pb = rb->pb;
+
+ SVN_ERR(pb->wrapped_parser->delete_node_property(nb->wrapped_nb, name));
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+filter_remove_node_props(void *node_baton)
+{
+ struct filter_node_baton_t *nb = node_baton;
+ struct filter_revision_baton_t *rb = nb->rb;
+ struct filter_parse_baton_t *pb = rb->pb;
+
+ SVN_ERR(pb->wrapped_parser->remove_node_props(nb->wrapped_nb));
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+filter_set_fulltext(svn_stream_t **stream,
+ void *node_baton)
+{
+ struct filter_node_baton_t *nb = node_baton;
+ struct filter_revision_baton_t *rb = nb->rb;
+ struct filter_parse_baton_t *pb = rb->pb;
+
+ SVN_ERR(pb->wrapped_parser->set_fulltext(stream, nb->wrapped_nb));
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+filter_apply_textdelta(svn_txdelta_window_handler_t *handler,
+ void **handler_baton,
+ void *node_baton)
+{
+ struct filter_node_baton_t *nb = node_baton;
+ struct filter_revision_baton_t *rb = nb->rb;
+ struct filter_parse_baton_t *pb = rb->pb;
+
+ SVN_ERR(pb->wrapped_parser->apply_textdelta(handler, handler_baton,
+ nb->wrapped_nb));
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+filter_close_node(void *node_baton)
+{
+ struct filter_node_baton_t *nb = node_baton;
+ struct filter_revision_baton_t *rb = nb->rb;
+ struct filter_parse_baton_t *pb = rb->pb;
+
+ SVN_ERR(pb->wrapped_parser->close_node(nb->wrapped_nb));
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+filter_close_revision(void *revision_baton)
+{
+ struct filter_revision_baton_t *rb = revision_baton;
+ struct filter_parse_baton_t *pb = rb->pb;
+
+ SVN_ERR(pb->wrapped_parser->close_revision(rb->wrapped_rb));
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+get_dumpstream_filter(svn_repos_parse_fns3_t **parser_p,
+ void **parse_baton_p,
+ const svn_repos_parse_fns3_t *wrapped_parser,
+ void *wrapped_baton,
+ apr_pool_t *pool)
+{
+ svn_repos_parse_fns3_t *parser;
+ struct filter_parse_baton_t *b;
+
+ parser = apr_pcalloc(pool, sizeof(*parser));
+ parser->magic_header_record = filter_magic_header_record;
+ parser->uuid_record = filter_uuid_record;
+ parser->new_revision_record = filter_new_revision_record;
+ parser->new_node_record = filter_new_node_record;
+ parser->set_revision_property = filter_set_revision_property;
+ parser->set_node_property = filter_set_node_property;
+ parser->delete_node_property = filter_delete_node_property;
+ parser->remove_node_props = filter_remove_node_props;
+ parser->set_fulltext = filter_set_fulltext;
+ parser->apply_textdelta = filter_apply_textdelta;
+ parser->close_node = filter_close_node;
+ parser->close_revision = filter_close_revision;
+
+ b = apr_pcalloc(pool, sizeof(*b));
+ b->wrapped_parser = wrapped_parser;
+ b->wrapped_pb = wrapped_baton;
+
+ *parser_p = parser;
+ *parse_baton_p = b;
+ return SVN_NO_ERROR;
+}
+
+/*----------------------------------------------------------------------*/
+
+/* Implements `svn_ra__lock_retry_func_t'. */
+static svn_error_t *
+lock_retry_func(void *baton,
+ const svn_string_t *reposlocktoken,
+ apr_pool_t *pool)
+{
+ return svn_cmdline_printf(pool,
+ _("Failed to get lock on destination "
+ "repos, currently held by '%s'\n"),
+ reposlocktoken->data);
+}
+
+/* Acquire a lock (of sorts) on the repository associated with the
+ * given RA SESSION. This lock is just a revprop change attempt in a
+ * time-delay loop. This function is duplicated by svnsync in
+ * svnsync/svnsync.c
+ *
+ * ### TODO: Make this function more generic and
+ * expose it through a header for use by other Subversion
+ * applications to avoid duplication.
+ */
+static svn_error_t *
+get_lock(const svn_string_t **lock_string_p,
+ svn_ra_session_t *session,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ apr_pool_t *pool)
+{
+ svn_boolean_t be_atomic;
+
+ SVN_ERR(svn_ra_has_capability(session, &be_atomic,
+ SVN_RA_CAPABILITY_ATOMIC_REVPROPS,
+ pool));
+ if (! be_atomic)
+ {
+ /* Pre-1.7 servers can't lock without a race condition. (Issue #3546) */
+ svn_error_t *err =
+ svn_error_create(SVN_ERR_UNSUPPORTED_FEATURE, NULL,
+ _("Target server does not support atomic revision "
+ "property edits; consider upgrading it to 1.7."));
+ svn_handle_warning2(stderr, err, "svnrdump: ");
+ svn_error_clear(err);
+ }
+
+ return svn_ra__get_operational_lock(lock_string_p, NULL, session,
+ SVNRDUMP_PROP_LOCK, FALSE,
+ 10 /* retries */, lock_retry_func, NULL,
+ cancel_func, cancel_baton, pool);
+}
+
+svn_error_t *
+svn_rdump__load_dumpstream(svn_stream_t *stream,
+ svn_ra_session_t *session,
+ svn_ra_session_t *aux_session,
+ svn_boolean_t quiet,
+ apr_hash_t *skip_revprops,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ apr_pool_t *pool)
+{
+ svn_repos_parse_fns3_t *parser;
+ void *parse_baton;
+ const svn_string_t *lock_string;
+ svn_error_t *err;
+
+ SVN_ERR(get_lock(&lock_string, session, cancel_func, cancel_baton, pool));
+
+ SVN_ERR(get_dumpstream_loader(&parser, &parse_baton,
+ session, aux_session,
+ quiet, skip_revprops,
+ pool));
+
+ /* Interpose a filtering layer: currently doing nothing */
+ SVN_ERR(get_dumpstream_filter(&parser, &parse_baton,
+ parser, parse_baton,
+ pool));
err = svn_repos_parse_dumpstream3(stream, parser, parse_baton, FALSE,
cancel_func, cancel_baton, pool);
diff --git a/subversion/svnrdump/svnrdump.c b/subversion/svnrdump/svnrdump.c
index 50b8a8983b66..500a5f9ea3bf 100644
--- a/subversion/svnrdump/svnrdump.c
+++ b/subversion/svnrdump/svnrdump.c
@@ -81,23 +81,31 @@ enum svn_svnrdump__longopt_t
opt_non_interactive, \
opt_force_interactive
-static const svn_opt_subcommand_desc2_t svnrdump__cmd_table[] =
+static const svn_opt_subcommand_desc3_t svnrdump__cmd_table[] =
{
- { "dump", dump_cmd, { 0 },
- N_("usage: svnrdump dump URL [-r LOWER[:UPPER]]\n\n"
+ { "dump", dump_cmd, { 0 }, {N_(
+ "usage: svnrdump dump URL [-r LOWER[:UPPER]]\n"
+ "\n"), N_(
"Dump revisions LOWER to UPPER of repository at remote URL to stdout\n"
"in a 'dumpfile' portable format. If only LOWER is given, dump that\n"
- "one revision.\n"),
- { 'r', 'q', opt_incremental, SVN_SVNRDUMP__BASE_OPTIONS } },
- { "load", load_cmd, { 0 },
- N_("usage: svnrdump load URL\n\n"
- "Load a 'dumpfile' given on stdin to a repository at remote URL.\n"),
- { 'q', opt_skip_revprop, SVN_SVNRDUMP__BASE_OPTIONS } },
- { "help", 0, { "?", "h" },
- N_("usage: svnrdump help [SUBCOMMAND...]\n\n"
- "Describe the usage of this program or its subcommands.\n"),
+ "one revision.\n"
+ )},
+ { 'r', 'q', opt_incremental, 'F', SVN_SVNRDUMP__BASE_OPTIONS },
+ {{'F', N_("write to file ARG instead of stdout")}} },
+ { "load", load_cmd, { 0 }, {N_(
+ "usage: svnrdump load URL\n"
+ "\n"), N_(
+ "Load a 'dumpfile' given on stdin to a repository at remote URL.\n"
+ )},
+ { 'q', opt_skip_revprop, 'F', SVN_SVNRDUMP__BASE_OPTIONS },
+ {{'F', N_("read from file ARG instead of stdin")}} },
+ { "help", 0, { "?", "h" }, {N_(
+ "usage: svnrdump help [SUBCOMMAND...]\n"
+ "\n"), N_(
+ "Describe the usage of this program or its subcommands.\n"
+ )},
{ 0 } },
- { NULL, NULL, { 0 }, NULL, { 0 } }
+ { NULL, NULL, { 0 }, {NULL}, { 0 } }
};
static const apr_getopt_option_t svnrdump__options[] =
@@ -158,7 +166,8 @@ static const apr_getopt_option_t svnrdump__options[] =
"valid certificate) and 'other' (all other not\n"
" "
"separately classified certificate errors).")},
- {"dumpfile", 'F', 1, N_("Read or write to a dumpfile instead of stdin/stdout")},
+ {"file", 'F', 1,
+ N_("read/write file ARG instead of stdin/stdout")},
{0, 0, 0, 0}
};
@@ -338,7 +347,7 @@ init_client_context(svn_client_ctx_t **ctx_p,
### auxiliary GETs/PROPFINDs to happening (well-ordered) on a
### single server connection.
###
- ### See http://subversion.tigris.org/issues/show_bug.cgi?id=4116.
+ ### See https://issues.apache.org/jira/browse/SVN-4116.
*/
cfg_servers = svn_hash_gets(ctx->config, SVN_CONFIG_CATEGORY_SERVERS);
svn_config_set_bool(cfg_servers, SVN_CONFIG_SECTION_GLOBAL,
@@ -423,7 +432,7 @@ dump_initial_full_revision(svn_ra_session_t *session,
our update-driven dump generation work the way a replay-driven
one would.
- See http://subversion.tigris.org/issues/show_bug.cgi?id=4101
+ See https://issues.apache.org/jira/browse/SVN-4101
*/
SVN_ERR(svn_ra_get_session_url(session, &session_url, pool));
SVN_ERR(svn_ra_get_path_relative_to_root(session, &source_relpath,
@@ -491,12 +500,11 @@ replay_revisions(svn_ra_session_t *session,
replay_baton->quiet = quiet;
/* Write the magic header and UUID */
- SVN_ERR(svn_stream_printf(output_stream, pool,
- SVN_REPOS_DUMPFILE_MAGIC_HEADER ": %d\n\n",
- SVN_REPOS_DUMPFILE_FORMAT_VERSION));
+ SVN_ERR(svn_repos__dump_magic_header_record(output_stream,
+ SVN_REPOS_DUMPFILE_FORMAT_VERSION,
+ pool));
SVN_ERR(svn_ra_get_uuid2(session, &uuid, pool));
- SVN_ERR(svn_stream_printf(output_stream, pool,
- SVN_REPOS_DUMPFILE_UUID ": %s\n\n", uuid));
+ SVN_ERR(svn_repos__dump_uuid_header_record(output_stream, uuid, pool));
/* Fake revision 0 if necessary */
if (start_revision == 0)
@@ -540,6 +548,7 @@ replay_revisions(svn_ra_session_t *session,
#endif
}
+ SVN_ERR(svn_stream_close(output_stream));
return SVN_NO_ERROR;
}
@@ -572,6 +581,7 @@ load_revisions(svn_ra_session_t *session,
quiet, skip_revprops,
check_cancel, NULL, pool));
+ SVN_ERR(svn_stream_close(output_stream));
return SVN_NO_ERROR;
}
@@ -612,7 +622,7 @@ version(const char *progname,
pool);
SVN_ERR(svn_ra_print_modules(version_footer, pool));
- return svn_opt_print_help4(NULL, ensure_appname(progname, pool),
+ return svn_opt_print_help5(NULL, ensure_appname(progname, pool),
TRUE, quiet, FALSE, version_footer->data,
NULL, NULL, NULL, NULL, NULL, pool);
}
@@ -671,7 +681,7 @@ help_cmd(apr_getopt_t *os,
"\n"
"Available subcommands:\n");
- return svn_opt_print_help4(os, "svnrdump", FALSE, FALSE, FALSE, NULL,
+ return svn_opt_print_help5(os, "svnrdump", FALSE, FALSE, FALSE, NULL,
header, svnrdump__cmd_table, svnrdump__options,
NULL, NULL, pool);
}
@@ -777,7 +787,7 @@ static svn_error_t *
sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
{
svn_error_t *err = SVN_NO_ERROR;
- const svn_opt_subcommand_desc2_t *subcommand = NULL;
+ const svn_opt_subcommand_desc3_t *subcommand = NULL;
opt_baton_t *opt_baton;
svn_revnum_t latest_revision = SVN_INVALID_REVNUM;
const char *config_dir = NULL;
@@ -915,7 +925,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
SVN_ERR(svn_utf_cstring_to_utf8(&opt_arg, opt_arg, pool));
SVN_ERR(svn_cmdline__parse_config_option(config_options,
- opt_arg,
+ opt_arg,
"svnrdump: ",
pool));
break;
@@ -937,7 +947,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_baton->help)
{
- subcommand = svn_opt_get_canonical_subcommand2(svnrdump__cmd_table,
+ subcommand = svn_opt_get_canonical_subcommand3(svnrdump__cmd_table,
"help");
}
if (subcommand == NULL)
@@ -947,8 +957,8 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_baton->version)
{
/* Use the "help" subcommand to handle the "--version" option. */
- static const svn_opt_subcommand_desc2_t pseudo_cmd =
- { "--version", help_cmd, {0}, "",
+ static const svn_opt_subcommand_desc3_t pseudo_cmd =
+ { "--version", help_cmd, {0}, {""},
{opt_version, /* must accept its own option */
'q', /* --quiet */
} };
@@ -968,7 +978,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
SVN_ERR(svn_utf_cstring_to_utf8(&first_arg, os->argv[os->ind++],
pool));
- subcommand = svn_opt_get_canonical_subcommand2(svnrdump__cmd_table,
+ subcommand = svn_opt_get_canonical_subcommand3(svnrdump__cmd_table,
first_arg);
if (subcommand == NULL)
@@ -996,11 +1006,11 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_id == 'h' || opt_id == '?')
continue;
- if (! svn_opt_subcommand_takes_option3(subcommand, opt_id, NULL))
+ if (! svn_opt_subcommand_takes_option4(subcommand, opt_id, NULL))
{
const char *optstr;
const apr_getopt_option_t *badopt =
- svn_opt_get_option_from_code2(opt_id, svnrdump__options,
+ svn_opt_get_option_from_code3(opt_id, svnrdump__options,
subcommand, pool);
svn_opt_format_option(&optstr, badopt, FALSE, pool);
if (subcommand->name[0] == '-')
diff --git a/subversion/svnrdump/svnrdump.h b/subversion/svnrdump/svnrdump.h
index b6ac7c1bf2bc..55290243db6f 100644
--- a/subversion/svnrdump/svnrdump.h
+++ b/subversion/svnrdump/svnrdump.h
@@ -77,12 +77,21 @@ svn_rdump__get_dump_editor_v2(svn_editor_t **editor,
/**
* Load the dumpstream carried in @a stream to the location described
- * by @a session. Use @a aux_session (which is opened to the same URL
- * as @a session) for any secondary, out-of-band RA communications
- * required. If @a quiet is set, suppress notifications. Use @a pool
- * for all memory allocations. Use @a cancel_func and @a cancel_baton
- * to check for user cancellation of the operation (for
- * timely-but-safe termination).
+ * by @a session.
+ *
+ * Use @a aux_session (which is opened to the same URL as @a session)
+ * for any secondary, out-of-band RA communications required. This is
+ * needed when loading a non-deltas dump, and for Ev2.
+ *
+ * Print feedback to the console for each revision, unless @a quiet is true.
+ *
+ * Ignore (don't set) any revision property whose name is a key in
+ * @a skip_revprops. The values in the hash are unimportant.
+ *
+ * Use @a cancel_func and @a cancel_baton to check for user cancellation
+ * of the operation (for timely-but-safe termination).
+ *
+ * Use @a pool for all memory allocations.
*/
svn_error_t *
svn_rdump__load_dumpstream(svn_stream_t *stream,
diff --git a/subversion/svnrdump/util.c b/subversion/svnrdump/util.c
index e612b12b48af..fe80c590af42 100644
--- a/subversion/svnrdump/util.c
+++ b/subversion/svnrdump/util.c
@@ -46,8 +46,8 @@ svn_rdump__normalize_props(apr_hash_t **normal_props,
svn_pool_clear(iterpool);
SVN_ERR(svn_repos__normalize_prop(&value, NULL, key, value,
- result_pool, iterpool));
- svn_hash_sets(*normal_props, key, value);
+ iterpool, iterpool));
+ svn_hash_sets(*normal_props, key, svn_string_dup(value, result_pool));
}
svn_pool_destroy(iterpool);
diff --git a/subversion/svnserve/logger.c b/subversion/svnserve/logger.c
index 19b6bd48a494..ccd793cbbbcd 100644
--- a/subversion/svnserve/logger.c
+++ b/subversion/svnserve/logger.c
@@ -88,19 +88,21 @@ logger__create(logger_t **logger,
return SVN_NO_ERROR;
}
-void
-logger__log_error(logger_t *logger,
- svn_error_t *err,
- repository_t *repository,
- client_info_t *client_info)
+static void
+log_message(logger_t *logger,
+ const svn_error_t *err,
+ const char *prefix,
+ repository_t *repository,
+ client_info_t *client_info)
{
if (logger && err)
{
const char *timestr, *continuation;
const char *user, *repos, *remote_host;
- char errbuf[256];
+
/* 8192 from MAX_STRING_LEN in from httpd-2.2.4/include/httpd.h */
- char errstr[8192];
+ const apr_size_t errstr_size = 8192;
+ char *errstr = apr_palloc(logger->pool, errstr_size);
svn_error_clear(svn_mutex__lock(logger->mutex));
@@ -118,21 +120,22 @@ logger__log_error(logger_t *logger,
continuation = "";
while (err)
{
+ char errbuf[256];
const char *message = svn_err_best_message(err, errbuf, sizeof(errbuf));
/* based on httpd-2.2.4/server/log.c:log_error_core */
- apr_size_t len = apr_snprintf(errstr, sizeof(errstr),
+ apr_size_t len = apr_snprintf(errstr, errstr_size,
"%" APR_PID_T_FMT
- " %s %s %s %s ERR%s %s %ld %d ",
+ " %s %s %s %s %s%s %s %ld %d ",
getpid(), timestr, remote_host, user,
- repos, continuation,
+ repos, prefix, continuation,
err->file ? err->file : "-", err->line,
err->apr_err);
len += escape_errorlog_item(errstr + len, message,
- sizeof(errstr) - len);
+ errstr_size - len);
/* Truncate for the terminator (as apr_snprintf does) */
- if (len > sizeof(errstr) - sizeof(APR_EOL_STR)) {
- len = sizeof(errstr) - sizeof(APR_EOL_STR);
+ if (len > errstr_size - sizeof(APR_EOL_STR)) {
+ len = errstr_size - sizeof(APR_EOL_STR);
}
memcpy(errstr + len, APR_EOL_STR, sizeof(APR_EOL_STR));
@@ -150,6 +153,24 @@ logger__log_error(logger_t *logger,
}
}
+void
+logger__log_error(logger_t *logger,
+ const svn_error_t *err,
+ repository_t *repository,
+ client_info_t *client_info)
+{
+ log_message(logger, err, "ERR", repository, client_info);
+}
+
+void
+logger__log_warning(logger_t *logger,
+ const svn_error_t *err,
+ repository_t *repository,
+ client_info_t *client_info)
+{
+ log_message(logger, err, "WARN", repository, client_info);
+}
+
svn_error_t *
logger__write(logger_t *logger,
const char *errstr,
diff --git a/subversion/svnserve/logger.h b/subversion/svnserve/logger.h
index aac804b310f6..d8099e74a137 100644
--- a/subversion/svnserve/logger.h
+++ b/subversion/svnserve/logger.h
@@ -64,14 +64,21 @@ logger__write(logger_t *logger,
/* Write a description of ERR with additional information from REPOSITORY
* and CLIENT_INFO to the log file managed by LOGGER. REPOSITORY as well
* as CLIENT_INFO may be NULL. If either ERR or LOGGER are NULL, this
- * becomes a no-op.
+ * becomes a no-op. Does not clear ERR.
*/
void
logger__log_error(logger_t *logger,
- svn_error_t *err,
+ const svn_error_t *err,
repository_t *repository,
client_info_t *client_info);
+/* Like logger__log_error() but for warnings. */
+void
+logger__log_warning(logger_t *logger,
+ const svn_error_t *err,
+ repository_t *repository,
+ client_info_t *client_info);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/subversion/svnserve/serve.c b/subversion/svnserve/serve.c
index 5192e7c9a66f..06b58f8dc0e9 100644
--- a/subversion/svnserve/serve.c
+++ b/subversion/svnserve/serve.c
@@ -107,15 +107,22 @@ typedef struct authz_baton_t {
svn_ra_svn_conn_t *conn;
} authz_baton_t;
-/* svn_error_create() a new error, log_server_error() it, and
- return it. */
+/* Log an error. */
static void
-log_error(svn_error_t *err, server_baton_t *server)
+log_error(const svn_error_t *err, server_baton_t *server)
{
logger__log_error(server->logger, err, server->repository,
server->client_info);
}
+/* Log a warning. */
+static void
+log_warning(const svn_error_t *err, server_baton_t *server)
+{
+ logger__log_warning(server->logger, err, server->repository,
+ server->client_info);
+}
+
/* svn_error_create() a new error, log_server_error() it, and
return it. */
static svn_error_t *
@@ -264,17 +271,23 @@ canonicalize_access_file(const char **access_file, repository_t *repository,
{
if (svn_path_is_url(*access_file))
{
- *access_file = svn_uri_canonicalize(*access_file, pool);
+ const char *canonical_url;
+ SVN_ERR(svn_uri_canonicalize_safe(&canonical_url, NULL, *access_file,
+ pool, pool));
+ *access_file = canonical_url;
}
else if (svn_path_is_repos_relative_url(*access_file))
{
const char *repos_root_url;
+ const char *canonical_url;
SVN_ERR(svn_uri_get_file_url_from_dirent(&repos_root_url, repos_root,
pool));
SVN_ERR(svn_path_resolve_repos_relative_url(access_file, *access_file,
repos_root_url, pool));
- *access_file = svn_uri_canonicalize(*access_file, pool);
+ SVN_ERR(svn_uri_canonicalize_safe(&canonical_url, NULL, *access_file,
+ pool, pool));
+ *access_file = canonical_url;
}
else
{
@@ -294,7 +307,10 @@ static svn_error_t *
load_authz_config(repository_t *repository,
const char *repos_root,
svn_config_t *cfg,
- apr_pool_t *pool)
+ svn_repos_authz_warning_func_t warning_func,
+ void *warning_baton,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
{
const char *authzdb_path;
const char *groupsdb_path;
@@ -313,17 +329,18 @@ load_authz_config(repository_t *repository,
/* Canonicalize and add the base onto the authzdb_path (if needed). */
err = canonicalize_access_file(&authzdb_path, repository,
- repos_root, pool);
+ repos_root, scratch_pool);
/* Same for the groupsdb_path if it is present. */
if (groupsdb_path && !err)
err = canonicalize_access_file(&groupsdb_path, repository,
- repos_root, pool);
+ repos_root, scratch_pool);
if (!err)
- err = svn_repos_authz_read3(&repository->authzdb, authzdb_path,
+ err = svn_repos_authz_read4(&repository->authzdb, authzdb_path,
groupsdb_path, TRUE, repository->repos,
- pool, pool);
+ warning_func, warning_baton,
+ result_pool, scratch_pool);
if (err)
return svn_error_create(SVN_ERR_AUTHZ_INVALID_CONFIG, err, NULL);
@@ -369,7 +386,7 @@ handle_config_error(svn_error_t *error,
/* Now that we've logged the error, clear it and return a
* nice, generic error to the user:
- * http://subversion.tigris.org/issues/show_bug.cgi?id=2271 */
+ * https://issues.apache.org/jira/browse/SVN-2271 */
svn_error_clear(error);
return svn_error_create(apr_err, NULL, NULL);
}
@@ -843,7 +860,7 @@ static svn_error_t *set_path(svn_ra_svn_conn_t *conn, apr_pool_t *pool,
svn_ra_svn__list_t *params, void *baton)
{
report_driver_baton_t *b = baton;
- const char *path, *lock_token, *depth_word;
+ const char *path, *lock_token, *depth_word, *canonical_relpath;
svn_revnum_t rev;
/* Default to infinity, for old clients that don't send depth. */
svn_depth_t depth = svn_depth_infinity;
@@ -854,7 +871,9 @@ static svn_error_t *set_path(svn_ra_svn_conn_t *conn, apr_pool_t *pool,
&depth_word));
if (depth_word)
depth = svn_depth_from_word(depth_word);
- path = svn_relpath_canonicalize(path, pool);
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_relpath, NULL, path,
+ pool, pool));
+ path = canonical_relpath;
if (b->from_rev && strcmp(path, "") == 0)
*b->from_rev = rev;
if (!b->err)
@@ -870,10 +889,12 @@ static svn_error_t *delete_path(svn_ra_svn_conn_t *conn, apr_pool_t *pool,
svn_ra_svn__list_t *params, void *baton)
{
report_driver_baton_t *b = baton;
- const char *path;
+ const char *path, *canonical_relpath;
SVN_ERR(svn_ra_svn__parse_tuple(params, "c", &path));
- path = svn_relpath_canonicalize(path, pool);
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_relpath, NULL, path,
+ pool, pool));
+ path = canonical_relpath;
if (!b->err)
b->err = svn_repos_delete_path(b->report_baton, path, pool);
return SVN_NO_ERROR;
@@ -883,7 +904,8 @@ static svn_error_t *link_path(svn_ra_svn_conn_t *conn, apr_pool_t *pool,
svn_ra_svn__list_t *params, void *baton)
{
report_driver_baton_t *b = baton;
- const char *path, *url, *lock_token, *fs_path, *depth_word;
+ const char *path, *url, *lock_token, *fs_path, *depth_word, *canonical_url;
+ const char *canonical_path;
svn_revnum_t rev;
svn_boolean_t start_empty;
/* Default to infinity, for old clients that don't send depth. */
@@ -895,8 +917,12 @@ static svn_error_t *link_path(svn_ra_svn_conn_t *conn, apr_pool_t *pool,
/* ### WHAT?! The link path is an absolute URL?! Didn't see that
coming... -- cmpilato */
- path = svn_relpath_canonicalize(path, pool);
- url = svn_uri_canonicalize(url, pool);
+
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_path, NULL, path,
+ pool, pool));
+ path = canonical_path;
+ SVN_ERR(svn_uri_canonicalize_safe(&canonical_url, NULL, url, pool, pool));
+ url = canonical_url;
if (depth_word)
depth = svn_depth_from_word(depth_word);
if (!b->err)
@@ -1112,11 +1138,12 @@ reparent(svn_ra_svn_conn_t *conn,
void *baton)
{
server_baton_t *b = baton;
- const char *url;
+ const char *url, *canonical_url;
const char *fs_path;
SVN_ERR(svn_ra_svn__parse_tuple(params, "c", &url));
- url = svn_uri_canonicalize(url, pool);
+ SVN_ERR(svn_uri_canonicalize_safe(&canonical_url, NULL, url, pool, pool));
+ url = canonical_url;
SVN_ERR(trivial_auth_request(conn, pool, b));
SVN_CMD_ERR(get_fs_path(svn_path_uri_decode(b->repository->repos_url, pool),
svn_path_uri_decode(url, pool),
@@ -1335,6 +1362,7 @@ add_lock_tokens(const svn_ra_svn__list_t *lock_tokens,
server_baton_t *sb,
apr_pool_t *pool)
{
+ const char *canonical_path;
int i;
svn_fs_access_t *fs_access;
@@ -1364,9 +1392,10 @@ add_lock_tokens(const svn_ra_svn__list_t *lock_tokens,
"Lock token isn't a string");
path = path_item->u.string.data;
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_path, NULL, path,
+ pool, pool));
full_path = svn_fspath__join(sb->repository->fs_path->data,
- svn_relpath_canonicalize(path, pool),
- pool);
+ canonical_path, pool);
if (! lookup_access(pool, sb, svn_authz_write, full_path, TRUE))
return error_create_and_log(SVN_ERR_RA_NOT_AUTHORIZED, NULL, NULL,
@@ -1404,6 +1433,7 @@ unlock_paths(const svn_ra_svn__list_t *lock_tokens,
int i;
apr_pool_t *subpool = svn_pool_create(pool);
apr_hash_t *targets = apr_hash_make(subpool);
+ const char *canonical_path;
svn_error_t *err;
for (i = 0; i < lock_tokens->nelts; ++i)
@@ -1416,9 +1446,10 @@ unlock_paths(const svn_ra_svn__list_t *lock_tokens,
token_item = &SVN_RA_SVN__LIST_ITEM(&item->u.list, 1);
path = path_item->u.string.data;
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_path, NULL, path,
+ subpool, subpool));
full_path = svn_fspath__join(sb->repository->fs_path->data,
- svn_relpath_canonicalize(path, subpool),
- subpool);
+ canonical_path, subpool);
token = token_item->u.string.data;
svn_hash_sets(targets, full_path, token);
}
@@ -1558,7 +1589,7 @@ get_file(svn_ra_svn_conn_t *conn,
void *baton)
{
server_baton_t *b = baton;
- const char *path, *full_path, *hex_digest;
+ const char *path, *full_path, *hex_digest, *canonical_path;
svn_revnum_t rev;
svn_fs_root_t *root;
svn_stream_t *contents;
@@ -1585,8 +1616,10 @@ get_file(svn_ra_svn_conn_t *conn,
if (wants_inherited_props == SVN_RA_SVN_UNSPECIFIED_NUMBER)
wants_inherited_props = FALSE;
- full_path = svn_fspath__join(b->repository->fs_path->data,
- svn_relpath_canonicalize(path, pool), pool);
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_path, NULL, path, pool,
+ pool));
+ full_path = svn_fspath__join(b->repository->fs_path->data, canonical_path,
+ pool);
/* Check authorizations */
SVN_ERR(must_have_access(conn, pool, b, svn_authz_read,
@@ -1743,7 +1776,7 @@ get_dir(svn_ra_svn_conn_t *conn,
void *baton)
{
server_baton_t *b = baton;
- const char *path, *full_path;
+ const char *path, *full_path, *canonical_path;
svn_revnum_t rev;
apr_hash_t *entries, *props = NULL;
apr_array_header_t *inherited_props;
@@ -1769,8 +1802,10 @@ get_dir(svn_ra_svn_conn_t *conn,
wants_inherited_props = FALSE;
SVN_ERR(parse_dirent_fields(&dirent_fields, dirent_fields_list));
- full_path = svn_fspath__join(b->repository->fs_path->data,
- svn_relpath_canonicalize(path, pool), pool);
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_path, NULL, path,
+ pool, pool));
+ full_path = svn_fspath__join(b->repository->fs_path->data, canonical_path,
+ pool);
/* Check authorizations */
SVN_ERR(must_have_access(conn, pool, b, svn_authz_read,
@@ -1917,7 +1952,7 @@ update(svn_ra_svn_conn_t *conn,
{
server_baton_t *b = baton;
svn_revnum_t rev;
- const char *target, *full_path, *depth_word;
+ const char *target, *full_path, *depth_word, *canonical_target;
svn_boolean_t recurse;
svn_tristate_t send_copyfrom_args; /* Optional; default FALSE */
svn_tristate_t ignore_ancestry; /* Optional; default FALSE */
@@ -1930,7 +1965,9 @@ update(svn_ra_svn_conn_t *conn,
SVN_ERR(svn_ra_svn__parse_tuple(params, "(?r)cb?w3?3", &rev, &target,
&recurse, &depth_word,
&send_copyfrom_args, &ignore_ancestry));
- target = svn_relpath_canonicalize(target, pool);
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_target, NULL, target,
+ pool, pool));
+ target = canonical_target;
if (depth_word)
depth = svn_depth_from_word(depth_word);
@@ -1976,7 +2013,7 @@ switch_cmd(svn_ra_svn_conn_t *conn,
server_baton_t *b = baton;
svn_revnum_t rev;
const char *target, *depth_word;
- const char *switch_url, *switch_path;
+ const char *switch_url, *switch_path, *canonical_url, *canonical_target;
svn_boolean_t recurse;
/* Default to unknown. Old clients won't send depth, but we'll
handle that by converting recurse if necessary. */
@@ -1988,9 +2025,12 @@ switch_cmd(svn_ra_svn_conn_t *conn,
SVN_ERR(svn_ra_svn__parse_tuple(params, "(?r)cbc?w?33", &rev, &target,
&recurse, &switch_url, &depth_word,
&send_copyfrom_args, &ignore_ancestry));
- target = svn_relpath_canonicalize(target, pool);
- switch_url = svn_uri_canonicalize(switch_url, pool);
-
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_target, NULL, target,
+ pool, pool));
+ target = canonical_target;
+ SVN_ERR(svn_uri_canonicalize_safe(&canonical_url, NULL, switch_url, pool,
+ pool));
+ switch_url = canonical_url;
if (depth_word)
depth = svn_depth_from_word(depth_word);
else
@@ -2028,7 +2068,7 @@ status(svn_ra_svn_conn_t *conn,
{
server_baton_t *b = baton;
svn_revnum_t rev;
- const char *target, *depth_word;
+ const char *target, *depth_word, *canonical_target;
svn_boolean_t recurse;
/* Default to unknown. Old clients won't send depth, but we'll
handle that by converting recurse if necessary. */
@@ -2037,7 +2077,9 @@ status(svn_ra_svn_conn_t *conn,
/* Parse the arguments. */
SVN_ERR(svn_ra_svn__parse_tuple(params, "cb?(?r)?w",
&target, &recurse, &rev, &depth_word));
- target = svn_relpath_canonicalize(target, pool);
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_target, NULL, target,
+ pool, pool));
+ target = canonical_target;
if (depth_word)
depth = svn_depth_from_word(depth_word);
@@ -2067,7 +2109,8 @@ diff(svn_ra_svn_conn_t *conn,
{
server_baton_t *b = baton;
svn_revnum_t rev;
- const char *target, *versus_url, *versus_path, *depth_word;
+ const char *target, *versus_url, *versus_path, *depth_word, *canonical_url;
+ const char *canonical_target;
svn_boolean_t recurse, ignore_ancestry;
svn_boolean_t text_deltas;
/* Default to unknown. Old clients won't send depth, but we'll
@@ -2090,8 +2133,12 @@ diff(svn_ra_svn_conn_t *conn,
&ignore_ancestry, &versus_url,
&text_deltas, &depth_word));
}
- target = svn_relpath_canonicalize(target, pool);
- versus_url = svn_uri_canonicalize(versus_url, pool);
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_target, NULL, target,
+ pool, pool));
+ target = canonical_target;
+ SVN_ERR(svn_uri_canonicalize_safe(&canonical_url, NULL, versus_url,
+ pool, pool));
+ versus_url = canonical_url;
if (depth_word)
depth = svn_depth_from_word(depth_word);
@@ -2216,13 +2263,15 @@ get_mergeinfo(svn_ra_svn_conn_t *conn,
for (i = 0; i < paths->nelts; i++)
{
svn_ra_svn__item_t *item = &SVN_RA_SVN__LIST_ITEM(paths, i);
- const char *full_path;
+ const char *full_path, *canonical_path;
if (item->kind != SVN_RA_SVN_STRING)
return svn_error_create(SVN_ERR_RA_SVN_MALFORMED_DATA, NULL,
_("Path is not a string"));
- full_path = svn_relpath_canonicalize(item->u.string.data, pool);
- full_path = svn_fspath__join(b->repository->fs_path->data, full_path, pool);
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_path, NULL,
+ item->u.string.data, pool, pool));
+ full_path = svn_fspath__join(b->repository->fs_path->data,
+ canonical_path, pool);
APR_ARRAY_PUSH(canonical_paths, const char *) = full_path;
}
@@ -2384,7 +2433,7 @@ log_cmd(svn_ra_svn_conn_t *conn,
svn_error_t *err, *write_err;
server_baton_t *b = baton;
svn_revnum_t start_rev, end_rev;
- const char *full_path;
+ const char *full_path, *canonical_path;
svn_boolean_t send_changed_paths, strict_node, include_merged_revisions;
apr_array_header_t *full_paths, *revprops;
svn_ra_svn__list_t *paths, *revprop_items;
@@ -2448,9 +2497,10 @@ log_cmd(svn_ra_svn_conn_t *conn,
if (elt->kind != SVN_RA_SVN_STRING)
return svn_error_create(SVN_ERR_RA_SVN_MALFORMED_DATA, NULL,
_("Log path entry not a string"));
- full_path = svn_relpath_canonicalize(elt->u.string.data, pool),
- full_path = svn_fspath__join(b->repository->fs_path->data, full_path,
- pool);
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_path, NULL,
+ elt->u.string.data, pool, pool));
+ full_path = svn_fspath__join(b->repository->fs_path->data,
+ canonical_path, pool);
APR_ARRAY_PUSH(full_paths, const char *) = full_path;
}
SVN_ERR(trivial_auth_request(conn, pool, b));
@@ -2493,13 +2543,15 @@ check_path(svn_ra_svn_conn_t *conn,
{
server_baton_t *b = baton;
svn_revnum_t rev;
- const char *path, *full_path;
+ const char *path, *full_path, *canonical_path;
svn_fs_root_t *root;
svn_node_kind_t kind;
SVN_ERR(svn_ra_svn__parse_tuple(params, "c(?r)", &path, &rev));
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_path, NULL, path,
+ pool, pool));;
full_path = svn_fspath__join(b->repository->fs_path->data,
- svn_relpath_canonicalize(path, pool), pool);
+ canonical_path, pool);
/* Check authorizations */
SVN_ERR(must_have_access(conn, pool, b, svn_authz_read,
@@ -2526,13 +2578,15 @@ stat_cmd(svn_ra_svn_conn_t *conn,
{
server_baton_t *b = baton;
svn_revnum_t rev;
- const char *path, *full_path, *cdate;
+ const char *path, *full_path, *cdate, *canonical_path;
svn_fs_root_t *root;
svn_dirent_t *dirent;
SVN_ERR(svn_ra_svn__parse_tuple(params, "c(?r)", &path, &rev));
- full_path = svn_fspath__join(b->repository->fs_path->data,
- svn_relpath_canonicalize(path, pool), pool);
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_path, NULL, path, pool,
+ pool));
+ full_path = svn_fspath__join(b->repository->fs_path->data, canonical_path,
+ pool);
/* Check authorizations */
SVN_ERR(must_have_access(conn, pool, b, svn_authz_read,
@@ -2581,7 +2635,7 @@ get_locations(svn_ra_svn_conn_t *conn,
svn_ra_svn__list_t *loc_revs_proto;
svn_ra_svn__item_t *elt;
int i;
- const char *relative_path;
+ const char *relative_path, *canonical_path;
svn_revnum_t peg_revision;
apr_hash_t *fs_locations;
const char *abs_path;
@@ -2594,7 +2648,9 @@ get_locations(svn_ra_svn_conn_t *conn,
SVN_ERR(svn_ra_svn__parse_tuple(params, "crl", &relative_path,
&peg_revision,
&loc_revs_proto));
- relative_path = svn_relpath_canonicalize(relative_path, pool);
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_path, NULL, relative_path,
+ pool, pool));
+ relative_path = canonical_path;
abs_path = svn_fspath__join(b->repository->fs_path->data, relative_path,
pool);
@@ -2680,7 +2736,7 @@ get_location_segments(svn_ra_svn_conn_t *conn,
svn_error_t *err, *write_err;
server_baton_t *b = baton;
svn_revnum_t peg_revision, start_rev, end_rev;
- const char *relative_path;
+ const char *relative_path, *canonical_path;
const char *abs_path;
authz_baton_t ab;
@@ -2691,7 +2747,9 @@ get_location_segments(svn_ra_svn_conn_t *conn,
SVN_ERR(svn_ra_svn__parse_tuple(params, "c(?r)(?r)(?r)",
&relative_path, &peg_revision,
&start_rev, &end_rev));
- relative_path = svn_relpath_canonicalize(relative_path, pool);
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_path, NULL, relative_path,
+ pool, pool));
+ relative_path = canonical_path;
abs_path = svn_fspath__join(b->repository->fs_path->data, relative_path,
pool);
@@ -2843,6 +2901,7 @@ get_file_revs(svn_ra_svn_conn_t *conn,
svn_revnum_t start_rev, end_rev;
const char *path;
const char *full_path;
+ const char *canonical_path;
apr_uint64_t include_merged_revs_param;
svn_boolean_t include_merged_revisions;
authz_baton_t ab;
@@ -2854,7 +2913,9 @@ get_file_revs(svn_ra_svn_conn_t *conn,
SVN_ERR(svn_ra_svn__parse_tuple(params, "c(?r)(?r)?B",
&path, &start_rev, &end_rev,
&include_merged_revs_param));
- path = svn_relpath_canonicalize(path, pool);
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_path, NULL, path,
+ pool, pool));
+ path = canonical_path;
SVN_ERR(trivial_auth_request(conn, pool, b));
full_path = svn_fspath__join(b->repository->fs_path->data, path, pool);
@@ -2897,14 +2958,17 @@ lock(svn_ra_svn_conn_t *conn,
const char *path;
const char *comment;
const char *full_path;
+ const char *canonical_path;
svn_boolean_t steal_lock;
svn_revnum_t current_rev;
svn_lock_t *l;
SVN_ERR(svn_ra_svn__parse_tuple(params, "c(?c)b(?r)", &path, &comment,
&steal_lock, &current_rev));
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_path, NULL, path,
+ pool, pool));;
full_path = svn_fspath__join(b->repository->fs_path->data,
- svn_relpath_canonicalize(path, pool), pool);
+ canonical_path, pool);
SVN_ERR(must_have_access(conn, pool, b, svn_authz_write,
full_path, TRUE));
@@ -2996,7 +3060,7 @@ lock_many(svn_ra_svn_conn_t *conn,
/* Parse the lock requests from PATH_REVS into TARGETS. */
for (i = 0; i < path_revs->nelts; ++i)
{
- const char *path, *full_path;
+ const char *path, *full_path, *canonical_path;
svn_revnum_t current_rev;
svn_ra_svn__item_t *item = &SVN_RA_SVN__LIST_ITEM(path_revs, i);
svn_fs_lock_target_t *target;
@@ -3010,9 +3074,10 @@ lock_many(svn_ra_svn_conn_t *conn,
SVN_ERR(svn_ra_svn__parse_tuple(&item->u.list, "c(?r)", &path,
&current_rev));
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_path, NULL, path,
+ subpool, subpool));
full_path = svn_fspath__join(b->repository->fs_path->data,
- svn_relpath_canonicalize(path, subpool),
- pool);
+ canonical_path, pool);
target = svn_fs_lock_target_create(NULL, current_rev, pool);
/* Any duplicate paths, once canonicalized, get collapsed into a
@@ -3059,7 +3124,7 @@ lock_many(svn_ra_svn_conn_t *conn,
/* Return results in the same order as the paths were supplied. */
for (i = 0; i < path_revs->nelts; ++i)
{
- const char *path, *full_path;
+ const char *path, *full_path, *canonical_path;
svn_revnum_t current_rev;
svn_ra_svn__item_t *item = &SVN_RA_SVN__LIST_ITEM(path_revs, i);
struct lock_result_t *result;
@@ -3071,9 +3136,10 @@ lock_many(svn_ra_svn_conn_t *conn,
if (write_err)
break;
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_path, NULL, path,
+ subpool, subpool));
full_path = svn_fspath__join(b->repository->fs_path->data,
- svn_relpath_canonicalize(path, subpool),
- subpool);
+ canonical_path, subpool);
result = svn_hash_gets(lmb.results, full_path);
if (!result)
@@ -3128,14 +3194,16 @@ unlock(svn_ra_svn_conn_t *conn,
void *baton)
{
server_baton_t *b = baton;
- const char *path, *token, *full_path;
+ const char *path, *token, *full_path, *canonical_path;
svn_boolean_t break_lock;
SVN_ERR(svn_ra_svn__parse_tuple(params, "c(?c)b", &path, &token,
&break_lock));
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_path, NULL, path,
+ pool, pool));
full_path = svn_fspath__join(b->repository->fs_path->data,
- svn_relpath_canonicalize(path, pool), pool);
+ canonical_path, pool);
/* Username required unless break_lock was specified. */
SVN_ERR(must_have_access(conn, pool, b, svn_authz_write,
@@ -3179,7 +3247,7 @@ unlock_many(svn_ra_svn_conn_t *conn,
for (i = 0; i < unlock_tokens->nelts; i++)
{
svn_ra_svn__item_t *item = &SVN_RA_SVN__LIST_ITEM(unlock_tokens, i);
- const char *path, *full_path, *token;
+ const char *path, *full_path, *token, *canonical_path;
svn_pool_clear(subpool);
@@ -3192,9 +3260,10 @@ unlock_many(svn_ra_svn_conn_t *conn,
if (!token)
token = "";
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_path, NULL, path,
+ subpool, subpool));
full_path = svn_fspath__join(b->repository->fs_path->data,
- svn_relpath_canonicalize(path, subpool),
- pool);
+ canonical_path, pool);
/* Any duplicate paths, once canonicalized, get collapsed into a
single path that is processed once. The result is then
@@ -3239,7 +3308,7 @@ unlock_many(svn_ra_svn_conn_t *conn,
/* Return results in the same order as the paths were supplied. */
for (i = 0; i < unlock_tokens->nelts; ++i)
{
- const char *path, *token, *full_path;
+ const char *path, *token, *full_path, *canonical_path;
svn_ra_svn__item_t *item = &SVN_RA_SVN__LIST_ITEM(unlock_tokens, i);
struct lock_result_t *result;
@@ -3250,9 +3319,10 @@ unlock_many(svn_ra_svn_conn_t *conn,
if (write_err)
break;
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_path, NULL, path,
+ subpool, subpool));
full_path = svn_fspath__join(b->repository->fs_path->data,
- svn_relpath_canonicalize(path, subpool),
- pool);
+ canonical_path, pool);
result = svn_hash_gets(lmb.results, full_path);
if (!result)
@@ -3302,12 +3372,15 @@ get_lock(svn_ra_svn_conn_t *conn,
server_baton_t *b = baton;
const char *path;
const char *full_path;
+ const char *canonical_path;
svn_lock_t *l;
SVN_ERR(svn_ra_svn__parse_tuple(params, "c", &path));
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_path, NULL, path,
+ pool, pool));
full_path = svn_fspath__join(b->repository->fs_path->data,
- svn_relpath_canonicalize(path, pool), pool);
+ canonical_path, pool);
SVN_ERR(must_have_access(conn, pool, b, svn_authz_read,
full_path, FALSE));
@@ -3333,6 +3406,7 @@ get_locks(svn_ra_svn_conn_t *conn,
server_baton_t *b = baton;
const char *path;
const char *full_path;
+ const char *canonical_path;
const char *depth_word;
svn_depth_t depth;
apr_hash_t *locks;
@@ -3356,8 +3430,10 @@ get_locks(svn_ra_svn_conn_t *conn,
return log_fail_and_flush(err, b, conn, pool);
}
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_path, NULL, path,
+ pool, pool));
full_path = svn_fspath__join(b->repository->fs_path->data,
- svn_relpath_canonicalize(path, pool), pool);
+ canonical_path, pool);
SVN_ERR(trivial_auth_request(conn, pool, b));
@@ -3494,19 +3570,34 @@ get_deleted_rev(svn_ra_svn_conn_t *conn,
void *baton)
{
server_baton_t *b = baton;
- const char *path, *full_path;
+ const char *path, *full_path, *canonical_path;
svn_revnum_t peg_revision;
svn_revnum_t end_revision;
svn_revnum_t revision_deleted;
SVN_ERR(svn_ra_svn__parse_tuple(params, "crr",
&path, &peg_revision, &end_revision));
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_path, NULL, path,
+ pool, pool));
full_path = svn_fspath__join(b->repository->fs_path->data,
- svn_relpath_canonicalize(path, pool), pool);
+ canonical_path, pool);
SVN_ERR(log_command(b, conn, pool, "get-deleted-rev"));
SVN_ERR(trivial_auth_request(conn, pool, b));
- SVN_ERR(svn_repos_deleted_rev(b->repository->fs, full_path, peg_revision,
- end_revision, &revision_deleted, pool));
+ SVN_CMD_ERR(svn_repos_deleted_rev(b->repository->fs, full_path, peg_revision,
+ end_revision, &revision_deleted, pool));
+
+ /* The protocol does not allow for a reply of SVN_INVALID_REVNUM directly.
+ Instead, return SVN_ERR_ENTRY_MISSING_REVISION. A new enough client
+ knows that this means the answer to the query is SVN_INVALID_REVNUM.
+ (An older client reports this as an error.) */
+ if (revision_deleted == SVN_INVALID_REVNUM)
+ SVN_CMD_ERR(svn_error_createf(SVN_ERR_ENTRY_MISSING_REVISION, NULL,
+ "svn protocol command 'get-deleted-rev': "
+ "path '%s' was not deleted in r%ld-%ld; "
+ "NOTE: newer clients handle this case "
+ "and do not report it as an error",
+ full_path, peg_revision, end_revision));
+
SVN_ERR(svn_ra_svn__write_cmd_response(conn, pool, "r", revision_deleted));
return SVN_NO_ERROR;
}
@@ -3518,7 +3609,7 @@ get_inherited_props(svn_ra_svn_conn_t *conn,
void *baton)
{
server_baton_t *b = baton;
- const char *path, *full_path;
+ const char *path, *full_path, *canonical_path;
svn_revnum_t rev;
svn_fs_root_t *root;
apr_array_header_t *inherited_props;
@@ -3533,9 +3624,10 @@ get_inherited_props(svn_ra_svn_conn_t *conn,
/* Parse arguments. */
SVN_ERR(svn_ra_svn__parse_tuple(params, "c(?r)", &path, &rev));
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_path, NULL, path,
+ iterpool, iterpool));
full_path = svn_fspath__join(b->repository->fs_path->data,
- svn_relpath_canonicalize(path, iterpool),
- pool);
+ canonical_path, pool);
/* Check authorizations */
SVN_ERR(must_have_access(conn, iterpool, b, svn_authz_read,
@@ -3608,7 +3700,7 @@ list(svn_ra_svn_conn_t *conn,
void *baton)
{
server_baton_t *b = baton;
- const char *path, *full_path;
+ const char *path, *full_path, *canonical_path;
svn_revnum_t rev;
svn_depth_t depth;
apr_array_header_t *patterns = NULL;
@@ -3634,8 +3726,10 @@ list(svn_ra_svn_conn_t *conn,
SVN_ERR(parse_dirent_fields(&rb.dirent_fields, dirent_fields_list));
depth = svn_depth_from_word(depth_word);
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_path, NULL, path,
+ pool, pool));
full_path = svn_fspath__join(b->repository->fs_path->data,
- svn_relpath_canonicalize(path, pool), pool);
+ canonical_path, pool);
/* Read the patterns list. */
if (patterns_list)
@@ -3793,10 +3887,13 @@ find_repos(const char *url,
repository_t *repository,
svn_repos__config_pool_t *config_pool,
apr_hash_t *fs_config,
+ svn_repos_authz_warning_func_t authz_warning_func,
+ void *authz_warning_baton,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
- const char *path, *full_path, *fs_path, *hooks_env;
+ const char *path, *full_path, *fs_path, *hooks_env, *canonical_path;
+ const char *canonical_root;
svn_stringbuf_t *url_buf;
svn_boolean_t sasl_requested;
@@ -3812,8 +3909,9 @@ find_repos(const char *url,
if (path == NULL)
path = "";
}
- path = svn_relpath_canonicalize(path, scratch_pool);
- path = svn_path_uri_decode(path, scratch_pool);
+ SVN_ERR(svn_relpath_canonicalize_safe(&canonical_path, NULL, path,
+ scratch_pool, scratch_pool));
+ path = svn_path_uri_decode(canonical_path, scratch_pool);
/* Ensure that it isn't possible to escape the root by disallowing
'..' segments. */
@@ -3822,8 +3920,9 @@ find_repos(const char *url,
"Couldn't determine repository path");
/* Join the server-configured root with the client path. */
- full_path = svn_dirent_join(svn_dirent_canonicalize(root, scratch_pool),
- path, scratch_pool);
+ SVN_ERR(svn_dirent_canonicalize_safe(&canonical_root, NULL, root,
+ scratch_pool, scratch_pool));
+ full_path = svn_dirent_join(canonical_root, path, scratch_pool);
/* Search for a repository in the full path. */
repository->repos_root = svn_repos_find_root_path(full_path, result_pool);
@@ -3844,7 +3943,7 @@ find_repos(const char *url,
svn_path_remove_components(url_buf,
svn_path_component_count(repository->fs_path->data));
repository->repos_url = url_buf->data;
- repository->authz_repos_name = svn_dirent_is_child(root,
+ repository->authz_repos_name = svn_dirent_is_child(canonical_root,
repository->repos_root,
result_pool);
if (repository->authz_repos_name == NULL)
@@ -3870,7 +3969,8 @@ find_repos(const char *url,
SVN_ERR(load_pwdb_config(repository, cfg, config_pool, result_pool));
SVN_ERR(load_authz_config(repository, repository->repos_root, cfg,
- result_pool));
+ authz_warning_func, authz_warning_baton,
+ result_pool, scratch_pool));
/* Should we use Cyrus SASL? */
SVN_ERR(svn_config_get_bool(cfg, &sasl_requested,
@@ -4092,6 +4192,16 @@ get_client_info(svn_ra_svn_conn_t *conn,
return client_info;
}
+static void
+handle_authz_warning(void *baton,
+ const svn_error_t *err,
+ apr_pool_t *scratch_pool)
+{
+ server_baton_t *const server_baton = baton;
+ log_warning(err, server_baton);
+ SVN_UNUSED(scratch_pool);
+}
+
/* Construct the server baton for CONN using PARAMS and return it in *BATON.
* It's lifetime is the same as that of CONN. SCRATCH_POOL
*/
@@ -4101,9 +4211,9 @@ construct_server_baton(server_baton_t **baton,
serve_params_t *params,
apr_pool_t *scratch_pool)
{
- svn_error_t *err, *io_err;
+ svn_error_t *err;
apr_uint64_t ver;
- const char *client_url, *ra_client_string, *client_string;
+ const char *client_url, *ra_client_string, *client_string, *canonical_url;
svn_ra_svn__list_t *caplist;
apr_pool_t *conn_pool = svn_ra_svn__get_pool(conn);
server_baton_t *b = apr_pcalloc(conn_pool, sizeof(*b));
@@ -4170,15 +4280,21 @@ construct_server_baton(server_baton_t **baton,
&ra_client_string,
&client_string));
if (ver != 2)
- return SVN_NO_ERROR;
-
- client_url = svn_uri_canonicalize(client_url, conn_pool);
+ return svn_error_createf(SVN_ERR_RA_SVN_BAD_VERSION, NULL,
+ "Unsupported ra_svn protocol version"
+ " %"APR_UINT64_T_FMT
+ " (supported versions: [2])", ver);
+
+ SVN_ERR(svn_uri_canonicalize_safe(&canonical_url, NULL, client_url,
+ conn_pool, scratch_pool));
+ client_url = canonical_url;
SVN_ERR(svn_ra_svn__set_capabilities(conn, caplist));
/* All released versions of Subversion support edit-pipeline,
* so we do not accept connections from clients that do not. */
if (! svn_ra_svn_has_capability(conn, SVN_RA_SVN_CAP_EDIT_PIPELINE))
- return SVN_NO_ERROR;
+ return svn_error_create(SVN_ERR_RA_SVN_BAD_VERSION, NULL,
+ "Missing edit-pipeline capability");
/* find_repos needs the capabilities as a list of words (eventually
they get handed to the start-commit hook). While we could add a
@@ -4214,10 +4330,14 @@ construct_server_baton(server_baton_t **baton,
}
}
+ /* (*b) has the logger, repository and client_info set, so it can
+ be used as the authz_warning_baton that eventyally gets passed
+ to log_warning(). */
err = handle_config_error(find_repos(client_url, params->root, b->vhost,
b->read_only, params->cfg,
b->repository, params->config_pool,
params->fs_config,
+ handle_authz_warning, b,
conn_pool, scratch_pool),
b);
if (!err)
@@ -4239,11 +4359,12 @@ construct_server_baton(server_baton_t **baton,
}
if (err)
{
- log_error(err, b);
- io_err = svn_ra_svn__write_cmd_failure(conn, scratch_pool, err);
- svn_error_clear(err);
- SVN_ERR(io_err);
- return svn_ra_svn__flush(conn, scratch_pool);
+ /* Report these errors to the client before closing the connection. */
+ err = svn_error_compose_create(err,
+ svn_ra_svn__write_cmd_failure(conn, scratch_pool, err));
+ err = svn_error_compose_create(err,
+ svn_ra_svn__flush(conn, scratch_pool));
+ return err;
}
SVN_ERR(svn_fs_get_uuid(b->repository->fs, &b->repository->uuid,
diff --git a/subversion/svnserve/svnserve.c b/subversion/svnserve/svnserve.c
index b4ad64fdbf67..a92c3eb1007b 100644
--- a/subversion/svnserve/svnserve.c
+++ b/subversion/svnserve/svnserve.c
@@ -479,7 +479,7 @@ static svn_error_t * version(svn_boolean_t quiet, apr_pool_t *pool)
_("\nCyrus SASL authentication is available.\n"));
#endif
- return svn_opt_print_help4(NULL, "svnserve", TRUE, quiet, FALSE,
+ return svn_opt_print_help5(NULL, "svnserve", TRUE, quiet, FALSE,
version_footer->data,
NULL, NULL, NULL, NULL, NULL, pool);
}
diff --git a/subversion/svnsync/svnsync.c b/subversion/svnsync/svnsync.c
index 9f50897273a4..7c1c0efbf7cf 100644
--- a/subversion/svnsync/svnsync.c
+++ b/subversion/svnsync/svnsync.c
@@ -89,17 +89,17 @@ enum svnsync__opt {
svnsync_opt_config_dir, \
svnsync_opt_config_options
-static const svn_opt_subcommand_desc2_t svnsync_cmd_table[] =
+static const svn_opt_subcommand_desc3_t svnsync_cmd_table[] =
{
- { "initialize", initialize_cmd, { "init" },
- N_("usage: svnsync initialize DEST_URL SOURCE_URL\n"
- "\n"
+ { "initialize", initialize_cmd, { "init" }, {N_(
+ "usage: svnsync initialize DEST_URL SOURCE_URL\n"
+ "\n"), N_(
"Initialize a destination repository for synchronization from\n"
"another repository.\n"
- "\n"
+ "\n"), N_(
"If the source URL is not the root of a repository, only the\n"
"specified part of the repository will be synchronized.\n"
- "\n"
+ "\n"), N_(
"The destination URL must point to the root of a repository which\n"
"has been configured to allow revision property changes. In\n"
"the general case, the destination repository must contain no\n"
@@ -109,65 +109,70 @@ static const svn_opt_subcommand_desc2_t svnsync_cmd_table[] =
"their counterparts in the source repository. (This is useful\n"
"when initializing a copy of a repository as a mirror of that same\n"
"repository, for example.)\n"
- "\n"
+ "\n"), N_(
"You should not commit to, or make revision property changes in,\n"
"the destination repository by any method other than 'svnsync'.\n"
"In other words, the destination repository should be a read-only\n"
- "mirror of the source repository.\n"),
+ "mirror of the source repository.\n"
+ )},
{ SVNSYNC_OPTS_DEFAULT, svnsync_opt_source_prop_encoding, 'q',
svnsync_opt_allow_non_empty, svnsync_opt_disable_locking,
svnsync_opt_steal_lock, 'M' } },
- { "synchronize", synchronize_cmd, { "sync" },
- N_("usage: svnsync synchronize DEST_URL [SOURCE_URL]\n"
- "\n"
+ { "synchronize", synchronize_cmd, { "sync" }, {N_(
+ "usage: svnsync synchronize DEST_URL [SOURCE_URL]\n"
+ "\n"), N_(
"Transfer all pending revisions to the destination from the source\n"
"with which it was initialized.\n"
- "\n"
+ "\n"), N_(
"If SOURCE_URL is provided, use that as the source repository URL,\n"
"ignoring what is recorded in the destination repository as the\n"
"source URL. Specifying SOURCE_URL is recommended in particular\n"
"if untrusted users/administrators may have write access to the\n"
- "DEST_URL repository.\n"),
+ "DEST_URL repository.\n"
+ )},
{ SVNSYNC_OPTS_DEFAULT, svnsync_opt_source_prop_encoding, 'q',
svnsync_opt_disable_locking, svnsync_opt_steal_lock, 'M' } },
- { "copy-revprops", copy_revprops_cmd, { 0 },
- N_("usage:\n"
- "\n"
+ { "copy-revprops", copy_revprops_cmd, { 0 }, {N_(
+ "usage:\n"
+ "\n"), N_(
" 1. svnsync copy-revprops DEST_URL [SOURCE_URL]\n"
" 2. svnsync copy-revprops DEST_URL REV[:REV2]\n"
- "\n"
+ "\n"), N_(
"Copy the revision properties in a given range of revisions to the\n"
"destination from the source with which it was initialized. If the\n"
"revision range is not specified, it defaults to all revisions in\n"
"the DEST_URL repository. Note also that the 'HEAD' revision is the\n"
"latest in DEST_URL, not necessarily the latest in SOURCE_URL.\n"
- "\n"
+ "\n"), N_(
"If SOURCE_URL is provided, use that as the source repository URL,\n"
"ignoring what is recorded in the destination repository as the\n"
"source URL. Specifying SOURCE_URL is recommended in particular\n"
"if untrusted users/administrators may have write access to the\n"
"DEST_URL repository.\n"
- "\n"
+ "\n"), N_(
"Unless you need to trigger the destination repositoy's revprop\n"
"change hooks for all revision properties, it is recommended to use\n"
"the --skip-unchanged option for best performance.\n"
- "\n"
- "Form 2 is deprecated syntax, equivalent to specifying \"-rREV[:REV2]\".\n"),
+ "\n"), N_(
+ "Form 2 is deprecated syntax, equivalent to specifying \"-rREV[:REV2]\".\n"
+ )},
{ SVNSYNC_OPTS_DEFAULT, svnsync_opt_source_prop_encoding, 'q', 'r',
svnsync_opt_disable_locking, svnsync_opt_steal_lock,
svnsync_opt_skip_unchanged, 'M' } },
- { "info", info_cmd, { 0 },
- N_("usage: svnsync info DEST_URL\n"
- "\n"
+ { "info", info_cmd, { 0 }, {N_(
+ "usage: svnsync info DEST_URL\n"
+ "\n"), N_(
"Print information about the synchronization destination repository\n"
- "located at DEST_URL.\n"),
+ "located at DEST_URL.\n"
+ )},
{ SVNSYNC_OPTS_DEFAULT } },
- { "help", help_cmd, { "?", "h" },
- N_("usage: svnsync help [SUBCOMMAND...]\n"
- "\n"
- "Describe the usage of this program or its subcommands.\n"),
+ { "help", help_cmd, { "?", "h" }, {N_(
+ "usage: svnsync help [SUBCOMMAND...]\n"
+ "\n"), N_(
+ "Describe the usage of this program or its subcommands.\n"
+ )},
{ 0 } },
- { NULL, NULL, { 0 }, NULL, { 0 } }
+ { NULL, NULL, { 0 }, {NULL}, { 0 } }
};
static const apr_getopt_option_t svnsync_options[] =
@@ -289,7 +294,7 @@ static const apr_getopt_option_t svnsync_options[] =
typedef struct opt_baton_t {
svn_boolean_t non_interactive;
- struct {
+ struct {
svn_boolean_t trust_server_cert_unknown_ca;
svn_boolean_t trust_server_cert_cn_mismatch;
svn_boolean_t trust_server_cert_expired;
@@ -816,7 +821,7 @@ do_initialize(svn_ra_session_t *to_session,
/* Now fill in our bookkeeping info in the dest repository. */
- SVN_ERR(svn_ra_open4(&from_session, NULL, baton->from_url, NULL,
+ SVN_ERR(svn_ra_open5(&from_session, NULL, NULL, baton->from_url, NULL,
&(baton->source_callbacks), baton,
baton->config, pool));
SVN_ERR(svn_ra_get_repos_root2(from_session, &root_url, pool));
@@ -993,7 +998,7 @@ open_source_session(svn_ra_session_t **from_session,
pool));
/* Open the session to copy the revision data. */
- SVN_ERR(svn_ra_open4(from_session, NULL, from_url, from_uuid_str->data,
+ SVN_ERR(svn_ra_open5(from_session, NULL, NULL, from_url, from_uuid_str->data,
callbacks, baton, config, pool));
return SVN_NO_ERROR;
@@ -1008,7 +1013,7 @@ open_target_session(svn_ra_session_t **target_session_p,
apr_pool_t *pool)
{
svn_ra_session_t *target_session;
- SVN_ERR(svn_ra_open4(&target_session, NULL, baton->to_url, NULL,
+ SVN_ERR(svn_ra_open5(&target_session, NULL, NULL, baton->to_url, NULL,
&(baton->sync_callbacks), baton, baton->config, pool));
SVN_ERR(check_if_session_is_at_repos_root(target_session, baton->to_url, pool));
@@ -1937,7 +1942,7 @@ help_cmd(apr_getopt_t *os, void *baton, apr_pool_t *pool)
SVN_ERR(svn_ra_print_modules(version_footer, pool));
- SVN_ERR(svn_opt_print_help4(os, "svnsync",
+ SVN_ERR(svn_opt_print_help5(os, "svnsync",
opt_baton ? opt_baton->version : FALSE,
opt_baton ? opt_baton->quiet : FALSE,
/*###opt_state ? opt_state->verbose :*/ FALSE,
@@ -1960,7 +1965,7 @@ help_cmd(apr_getopt_t *os, void *baton, apr_pool_t *pool)
static svn_error_t *
sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
{
- const svn_opt_subcommand_desc2_t *subcommand = NULL;
+ const svn_opt_subcommand_desc3_t *subcommand = NULL;
apr_array_header_t *received_opts;
opt_baton_t opt_baton;
svn_config_t *config;
@@ -2189,7 +2194,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
}
if (opt_baton.help)
- subcommand = svn_opt_get_canonical_subcommand2(svnsync_cmd_table, "help");
+ subcommand = svn_opt_get_canonical_subcommand3(svnsync_cmd_table, "help");
/* The --non-interactive and --force-interactive options are mutually
* exclusive. */
@@ -2269,8 +2274,8 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_baton.version)
{
/* Use the "help" subcommand to handle "--version". */
- static const svn_opt_subcommand_desc2_t pseudo_cmd =
- { "--version", help_cmd, {0}, "",
+ static const svn_opt_subcommand_desc3_t pseudo_cmd =
+ { "--version", help_cmd, {0}, {""},
{svnsync_opt_version, /* must accept its own option */
'q', /* --quiet */
} };
@@ -2290,7 +2295,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
SVN_ERR(svn_utf_cstring_to_utf8(&first_arg, os->argv[os->ind++],
pool));
- subcommand = svn_opt_get_canonical_subcommand2(svnsync_cmd_table,
+ subcommand = svn_opt_get_canonical_subcommand3(svnsync_cmd_table,
first_arg);
if (subcommand == NULL)
{
@@ -2308,11 +2313,11 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_id == 'h' || opt_id == '?')
continue;
- if (! svn_opt_subcommand_takes_option3(subcommand, opt_id, NULL))
+ if (! svn_opt_subcommand_takes_option4(subcommand, opt_id, NULL))
{
const char *optstr;
const apr_getopt_option_t *badopt =
- svn_opt_get_option_from_code2(opt_id, svnsync_options, subcommand,
+ svn_opt_get_option_from_code3(opt_id, svnsync_options, subcommand,
pool);
svn_opt_format_option(&optstr, badopt, FALSE, pool);
if (subcommand->name[0] == '-')
diff --git a/subversion/svnversion/svnversion.c b/subversion/svnversion/svnversion.c
index 8e4cefffe0b2..da65800467fd 100644
--- a/subversion/svnversion/svnversion.c
+++ b/subversion/svnversion/svnversion.c
@@ -38,7 +38,7 @@
static svn_error_t *
version(svn_boolean_t quiet, apr_pool_t *pool)
{
- return svn_opt_print_help4(NULL, "svnversion", TRUE, quiet, FALSE,
+ return svn_opt_print_help5(NULL, "svnversion", TRUE, quiet, FALSE,
NULL, NULL, NULL, NULL, NULL, NULL, pool);
}
diff --git a/win-tests.py b/win-tests.py
index 5aaa37c80b40..2c91acb7c227 100644
--- a/win-tests.py
+++ b/win-tests.py
@@ -24,7 +24,7 @@ Driver for running the tests on Windows.
For a list of options, run this script with the --help option.
"""
-# $HeadURL: https://svn.apache.org/repos/asf/subversion/branches/1.10.x/win-tests.py $
+# $HeadURL: https://svn.apache.org/repos/asf/subversion/branches/1.14.x/win-tests.py $
# $LastChangedRevision: 1813897 $
import os, sys, subprocess