ICU-21087 Merge maint/maint-67 to master

diff --git a/.gitignore b/.gitignore
index 9b5f16c..079c1e7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,11 +1,104 @@
-# Global ignores
-__pycache__/
+# Wildcards
+*.8
+*.a
+*.ao
+*.d
+*.dSYM
+*.db
+*.dll
+*.dylib
+*.exp
+*.lib
+*.lnk
+*.ncb
+*.o
+*.obj
+*.opendb
+*.opendf
+*.opensdf
+*.opt
+*.out
+*.pc
+*.pdb
+*.plg
 *.pyc
+*.s
+*.sdf
+*.so
+*.suo
+*.tgz
+*.user
+*.vcproj.*.*.user
+*.vcxproj.user
+*_debug
+*_release
+cygicudata*
+libicu*
+libicutest*
+libsicu*
+libsicutest*
+output-*.cpp
+perf-*.xml
+test-*.xml
 
-# Specific file name ignores
-/.git
-.vscode
-icu4c/bin
+# Directories
+.vs/
+.vscode/
+ARM/
+ARM64/
+Debug/
+Generated[!!-~]Files/
+Release/
+__pycache__/
+arm/
+arm64/
+bin/
+debug/
+doc/
+lib/
+out/
+release/
+tmp/
+x64/
+x86/
+
+# Files
+Makefile
+Makefile.local
+build-local.properties
+icupkg.inc
+ipch
+pkgdata.inc
+pkgdataMakefile
+rules.mk
+
+!icu4c/source/samples/csdet/Makefile
+
+# Directory specific wildcards
+icu4c/source/extra/uconv/resources/*.res
+icu4c/source/perf-*.xml
+icu4c/source/samples/udata/*.dat
+icu4c/source/samples/ufortune/resources/*.dat
+icu4c/source/samples/ufortune/resources/*.res
+icu4c/source/samples/uresb/*.res
+icu4c/source/test-*.xml
+icu4c/source/test/hdrtst/ht_*
+icu4c/source/test/perf/howExpensiveIs/*.xml
+icu4c/source/tools/gendict/*.1
+icu4c/source/tools/genrb/*.1
+icu4c/source/tools/genrb/derb_*
+icu4c/source/tools/genren/urename.*
+icu4c/source/tools/makeconv/*.1
+icu4c/source/tools/pkgdata/*.1
+icu4j/*.jar
+icu4j/lib/*.jar
+tools/multi/packages/*.jar
+tools/release/java/APIChangeReport*
+
+icu4c/source/tools/icuinfo/icuplugins*.txt
+!icu4c/source/tools/icuinfo/icuplugins_windows_sample.txt
+
+# Specific file names
 icu4c/binARM
 icu4c/bin32uwp
 icu4c/bin64
@@ -15,7 +108,6 @@
 icu4c/binARM64UWP
 icu4c/commondata
 icu4c/include
-icu4c/lib
 icu4c/libARM
 icu4c/lib32uwp
 icu4c/lib64
@@ -24,1048 +116,163 @@
 icu4c/libARMuwp
 icu4c/libARM64uwp
 icu4c/source/Doxyfile
-icu4c/source/Makefile
 icu4c/source/README
-icu4c/source/allinone/*.db
-icu4c/source/allinone/*.ncb
-icu4c/source/allinone/*.opendb
-icu4c/source/allinone/*.opensdf
-icu4c/source/allinone/*.opt
-icu4c/source/allinone/*.sdf
-icu4c/source/allinone/*.suo
-icu4c/source/allinone/.vs
-icu4c/source/allinone/Debug
-icu4c/source/allinone/ipch
 icu4c/source/autom4te.cache
-icu4c/source/bin
-icu4c/source/common/*.ao
-icu4c/source/common/*.d
-icu4c/source/common/*.o
-icu4c/source/common/*.plg
-icu4c/source/common/*.vcxproj.user
-icu4c/source/common/Debug
-icu4c/source/common/Generated[!!-~]Files
-icu4c/source/common/Makefile
-icu4c/source/common/Makefile.local
-icu4c/source/common/Release
-icu4c/source/common/arm
-icu4c/source/common/arm64
 icu4c/source/common/common.res
-icu4c/source/common/common.vcproj.*.*.user
-icu4c/source/common/debug
 icu4c/source/common/icucfg.h
-icu4c/source/common/libicu*.*
-icu4c/source/common/release
 icu4c/source/common/svchook.mk
-icu4c/source/common/x64
-icu4c/source/common/x86
 icu4c/source/config.cache
 icu4c/source/config.log
 icu4c/source/config.status
 icu4c/source/config/Makefile.inc
-icu4c/source/config/icu-*.pc
 icu4c/source/config/icu-config
 icu4c/source/config/icu-config.1
 icu4c/source/config/icu.pc
-icu4c/source/config/icu.pc.out
 icu4c/source/config/icucross.inc
 icu4c/source/config/icucross.mk
 icu4c/source/config/icuinfo.xml
-icu4c/source/config/pkgdata.inc
-icu4c/source/config/pkgdataMakefile
 icu4c/source/configure-local.mk
-icu4c/source/data/*.plg
-icu4c/source/data/*.vcxproj.user
-icu4c/source/data/Debug
-icu4c/source/data/Makefile
-icu4c/source/data/Release
 icu4c/source/data/build-dir
 icu4c/source/data/build-local
 icu4c/source/data/data
-icu4c/source/data/icupkg.inc
-icu4c/source/data/makedata.vcproj.*.*.user
 icu4c/source/data/obj
-icu4c/source/data/out
 icu4c/source/data/packagedata
-icu4c/source/data/pkgdataMakefile
-icu4c/source/data/rules.mk
 icu4c/source/data/uni-core-data
-icu4c/source/data/x64
-icu4c/source/data/x86
-icu4c/source/data/arm
-icu4c/source/data/arm64
 icu4c/source/dist
-icu4c/source/doc
-icu4c/source/extra/Makefile
-icu4c/source/extra/scrptrun/Makefile
 icu4c/source/extra/scrptrun/scrptrun.d
 icu4c/source/extra/scrptrun/scrptrun.o
 icu4c/source/extra/scrptrun/srtest
 icu4c/source/extra/scrptrun/srtest.d
 icu4c/source/extra/scrptrun/srtest.o
 icu4c/source/extra/scrptrun/srtest.exe
-icu4c/source/extra/uconv/*.d
-icu4c/source/extra/uconv/*.o
-icu4c/source/extra/uconv/*.vcxproj.user
-icu4c/source/extra/uconv/.vs
-icu4c/source/extra/uconv/Debug
-icu4c/source/extra/uconv/Makefile
-icu4c/source/extra/uconv/Release
-icu4c/source/extra/uconv/debug
-icu4c/source/extra/uconv/pkgdata.inc
-icu4c/source/extra/uconv/pkgdataMakefile
 icu4c/source/extra/uconv/pkgdatain.txt
-icu4c/source/extra/uconv/release
-icu4c/source/extra/uconv/resources/*.res
 icu4c/source/extra/uconv/uconv
 icu4c/source/extra/uconv/uconv.1
 icu4c/source/extra/uconv/uconv.plg
-icu4c/source/extra/uconv/uconv.vcproj.*.*.user
 icu4c/source/extra/uconv/uconvmsg
-icu4c/source/extra/uconv/x64
-icu4c/source/extra/uconv/x86
-icu4c/source/extra/uconv/ARM
-icu4c/source/extra/uconv/ARM64
-icu4c/source/i18n/*.ao
-icu4c/source/i18n/*.d
-icu4c/source/i18n/*.o
-icu4c/source/i18n/*.plg
-icu4c/source/i18n/*.vcxproj.user
-icu4c/source/i18n/Debug
-icu4c/source/i18n/Generated[!!-~]Files
-icu4c/source/i18n/Makefile
-icu4c/source/i18n/Makefile.local
-icu4c/source/i18n/Release
-icu4c/source/i18n/arm
-icu4c/source/i18n/arm64
-icu4c/source/i18n/debug
 icu4c/source/i18n/i18n.res
-icu4c/source/i18n/i18n.vcproj.*.*.user
-icu4c/source/i18n/release
-icu4c/source/i18n/x64
-icu4c/source/i18n/x86
-icu4c/source/i18n/ARM
-icu4c/source/i18n/ARM64
 icu4c/source/icudefs.local
 icu4c/source/icudefs.mk
-icu4c/source/io/*.ao
-icu4c/source/io/*.d
-icu4c/source/io/*.o
-icu4c/source/io/*.vcxproj.user
-icu4c/source/io/Debug
-icu4c/source/io/Makefile
-icu4c/source/io/Release
-icu4c/source/io/debug
 icu4c/source/io/io.res
-icu4c/source/io/io.vcproj.*.*.user
-icu4c/source/io/release
-icu4c/source/io/x64
-icu4c/source/io/x86
-icu4c/source/io/ARM
-icu4c/source/io/ARM64
-icu4c/source/layoutex/*.ao
-icu4c/source/layoutex/*.d
-icu4c/source/layoutex/*.o
-icu4c/source/layoutex/*.pdb
-icu4c/source/layoutex/*.vcxproj.user
-icu4c/source/layoutex/.vs
-icu4c/source/layoutex/Debug
-icu4c/source/layoutex/Makefile
-icu4c/source/layoutex/Release
-icu4c/source/layoutex/debug
 icu4c/source/layoutex/layoutex.res
-icu4c/source/layoutex/layoutex.vcproj.*.*.user
-icu4c/source/layoutex/release
-icu4c/source/layoutex/x64
-icu4c/source/layoutex/x86
-icu4c/source/lib
-icu4c/source/perf-*.xml
-icu4c/source/samples/*.opensdf
-icu4c/source/samples/*.sdf
-icu4c/source/samples/Makefile
-icu4c/source/samples/all/*.opensdf
-icu4c/source/samples/all/*.sdf
-icu4c/source/samples/all/.vs
 icu4c/source/samples/all/all.ncb
 icu4c/source/samples/all/all.suo
-icu4c/source/samples/break/*.vcxproj.user
-icu4c/source/samples/break/Debug
 icu4c/source/samples/break/break
 icu4c/source/samples/break/break.exe
-icu4c/source/samples/break/break.out
-icu4c/source/samples/break/break.vcproj.*.*.user
-icu4c/source/samples/break/release
-icu4c/source/samples/break/x64
-icu4c/source/samples/break/x86
-icu4c/source/samples/cal/*.d
-icu4c/source/samples/cal/*.o
-icu4c/source/samples/cal/*.pdb
-icu4c/source/samples/cal/*.vcxproj.user
-icu4c/source/samples/cal/Debug
-icu4c/source/samples/cal/Makefile
-icu4c/source/samples/cal/Release
-icu4c/source/samples/cal/cal.vcproj.*.*.user
 icu4c/source/samples/cal/icucal
 icu4c/source/samples/cal/icucal.exe
-icu4c/source/samples/cal/release
-icu4c/source/samples/cal/x64
-icu4c/source/samples/cal/x86
-icu4c/source/samples/case/*.vcxproj.user
-icu4c/source/samples/case/Debug
 icu4c/source/samples/case/case
 icu4c/source/samples/case/case.exe
-icu4c/source/samples/case/case.out
-icu4c/source/samples/case/case.vcproj.*.*.user
-icu4c/source/samples/case/release
-icu4c/source/samples/case/x64
-icu4c/source/samples/case/x86
-icu4c/source/samples/citer/*.vcxproj.user
-icu4c/source/samples/citer/Debug
-icu4c/source/samples/citer/Release
 icu4c/source/samples/citer/citer
 icu4c/source/samples/citer/citer.exe
-icu4c/source/samples/citer/citer.out
-icu4c/source/samples/citer/citer.vcproj.*.*.user
-icu4c/source/samples/citer/release
-icu4c/source/samples/citer/x64
-icu4c/source/samples/citer/x86
-icu4c/source/samples/coll/*.vcxproj.user
-icu4c/source/samples/coll/Debug
-icu4c/source/samples/coll/coll.vcproj.*.*.user
-icu4c/source/samples/coll/release
-icu4c/source/samples/coll/x64
-icu4c/source/samples/coll/x86
-icu4c/source/samples/csdet/*.vcxproj.user
-icu4c/source/samples/csdet/Debug
 icu4c/source/samples/csdet/csdet
 icu4c/source/samples/csdet/csdet.exe
-icu4c/source/samples/csdet/csdet.out
-icu4c/source/samples/csdet/csdet.vcproj.*.*.user
-icu4c/source/samples/csdet/release
-icu4c/source/samples/csdet/x64
-icu4c/source/samples/csdet/x86
-icu4c/source/samples/date/*.d
-icu4c/source/samples/date/*.o
-icu4c/source/samples/date/*.pdb
-icu4c/source/samples/date/*.vcxproj.user
-icu4c/source/samples/date/Debug
-icu4c/source/samples/date/Makefile
-icu4c/source/samples/date/Release
-icu4c/source/samples/date/date.vcproj.*.*.user
 icu4c/source/samples/date/icudate
 icu4c/source/samples/date/icudate.exe
-icu4c/source/samples/date/release
-icu4c/source/samples/date/x64
-icu4c/source/samples/date/x86
-icu4c/source/samples/datefmt/*.vcxproj.user
-icu4c/source/samples/datefmt/Debug
 icu4c/source/samples/datefmt/datefmt
-icu4c/source/samples/datefmt/datefmt.out
-icu4c/source/samples/datefmt/datefmt.vcproj.*.*.user
-icu4c/source/samples/datefmt/release
-icu4c/source/samples/datefmt/x64
-icu4c/source/samples/datefmt/x86
-icu4c/source/samples/dtitvfmtsample/x64
-icu4c/source/samples/dtitvfmtsample/x86
-icu4c/source/samples/dtptngsample/x64
-icu4c/source/samples/dtptngsample/x86
-icu4c/source/samples/layout/*.d
-icu4c/source/samples/layout/*.pdb
-icu4c/source/samples/layout/*.vcxproj.user
-icu4c/source/samples/layout/Debug
-icu4c/source/samples/layout/Makefile
-icu4c/source/samples/layout/Release
-icu4c/source/samples/layout/layout.vcproj.*.*.user
-icu4c/source/samples/layout/release
-icu4c/source/samples/layout/tmp
-icu4c/source/samples/layout/x64
-icu4c/source/samples/layout/x86
-icu4c/source/samples/legacy/*.vcxproj.user
-icu4c/source/samples/legacy/Debug
-icu4c/source/samples/legacy/legacy.vcproj.*.*.user
-icu4c/source/samples/legacy/release
-icu4c/source/samples/legacy/x64
-icu4c/source/samples/legacy/x86
-icu4c/source/samples/msgfmt/*.vcxproj.user
-icu4c/source/samples/msgfmt/Debug
 icu4c/source/samples/msgfmt/msgfmt
-icu4c/source/samples/msgfmt/msgfmt.out
-icu4c/source/samples/msgfmt/msgfmt.vcproj.*.*.user
-icu4c/source/samples/msgfmt/release
-icu4c/source/samples/msgfmt/x64
-icu4c/source/samples/msgfmt/x86
-icu4c/source/samples/numfmt/*.vcxproj.user
-icu4c/source/samples/numfmt/Debug
 icu4c/source/samples/numfmt/numfmt
 icu4c/source/samples/numfmt/numfmt.exe
-icu4c/source/samples/numfmt/numfmt.out
-icu4c/source/samples/numfmt/numfmt.vcproj.*.*.user
-icu4c/source/samples/numfmt/release
-icu4c/source/samples/numfmt/x64
-icu4c/source/samples/numfmt/x86
-icu4c/source/samples/plurfmtsample/x64
-icu4c/source/samples/plurfmtsample/x86
-icu4c/source/samples/props/*.vcxproj.user
-icu4c/source/samples/props/Debug
 icu4c/source/samples/props/props
 icu4c/source/samples/props/props.exe
-icu4c/source/samples/props/props.out
-icu4c/source/samples/props/props.vcproj.*.*.user
-icu4c/source/samples/props/release
-icu4c/source/samples/props/x64
-icu4c/source/samples/props/x86
-icu4c/source/samples/strsrch/*.vcxproj.user
-icu4c/source/samples/strsrch/Debug
-icu4c/source/samples/strsrch/release
-icu4c/source/samples/strsrch/strsrch.vcproj.*.*.user
-icu4c/source/samples/strsrch/x64
-icu4c/source/samples/strsrch/x86
-icu4c/source/samples/translit/*.vcxproj.user
-icu4c/source/samples/translit/Debug
-icu4c/source/samples/translit/release
 icu4c/source/samples/translit/translit
 icu4c/source/samples/translit/translit.exe
-icu4c/source/samples/translit/translit.out
-icu4c/source/samples/translit/translit.vcproj.*.*.user
-icu4c/source/samples/translit/x64
-icu4c/source/samples/translit/x86
-icu4c/source/samples/uciter8/*.vcxproj.user
-icu4c/source/samples/uciter8/Debug
-icu4c/source/samples/uciter8/release
 icu4c/source/samples/uciter8/uciter8
 icu4c/source/samples/uciter8/uciter8.exe
-icu4c/source/samples/uciter8/uciter8.out
-icu4c/source/samples/uciter8/uciter8.vcproj.*.*.user
-icu4c/source/samples/uciter8/x64
-icu4c/source/samples/uciter8/x86
-icu4c/source/samples/ucnv/*.vcxproj.user
-icu4c/source/samples/ucnv/Debug
 icu4c/source/samples/ucnv/convsamp
-icu4c/source/samples/ucnv/convsamp.out
 icu4c/source/samples/ucnv/data40.utf16
-icu4c/source/samples/ucnv/data46.out
-icu4c/source/samples/ucnv/release
-icu4c/source/samples/ucnv/ucnv.vcproj.*.*.user
-icu4c/source/samples/ucnv/x64
-icu4c/source/samples/ucnv/x86
-icu4c/source/samples/udata/*.dat
-icu4c/source/samples/udata/*.vcxproj.user
-icu4c/source/samples/udata/Debug
 icu4c/source/samples/udata/reader
 icu4c/source/samples/udata/reader.exe
-icu4c/source/samples/udata/reader.out
-icu4c/source/samples/udata/reader.vcproj.*.*.user
-icu4c/source/samples/udata/reader_Win32_Debug
-icu4c/source/samples/udata/reader_win32_release
-icu4c/source/samples/udata/release
 icu4c/source/samples/udata/writer
 icu4c/source/samples/udata/writer.exe
-icu4c/source/samples/udata/writer.out
-icu4c/source/samples/udata/writer.vcproj.*.*.user
-icu4c/source/samples/udata/x64
-icu4c/source/samples/udata/x86
-icu4c/source/samples/ufortune/*.vcxproj.user
-icu4c/source/samples/ufortune/Debug
-icu4c/source/samples/ufortune/Release
-icu4c/source/samples/ufortune/resources/*.a
-icu4c/source/samples/ufortune/resources/*.dat
-icu4c/source/samples/ufortune/resources/*.dll
-icu4c/source/samples/ufortune/resources/*.exp
-icu4c/source/samples/ufortune/resources/*.lib
-icu4c/source/samples/ufortune/resources/*.obj
-icu4c/source/samples/ufortune/resources/*.res
-icu4c/source/samples/ufortune/resources/*.s
 icu4c/source/samples/ufortune/ufortune
 icu4c/source/samples/ufortune/ufortune.exe
-icu4c/source/samples/ufortune/ufortune.out
-icu4c/source/samples/ufortune/ufortune.vcproj.*.*.user
-icu4c/source/samples/ufortune/x64
-icu4c/source/samples/ufortune/x86
-icu4c/source/samples/ugrep/*.vcxproj.user
-icu4c/source/samples/ugrep/debug
-icu4c/source/samples/ugrep/release
 icu4c/source/samples/ugrep/ugrep
 icu4c/source/samples/ugrep/ugrep.exe
-icu4c/source/samples/ugrep/ugrep.out
-icu4c/source/samples/ugrep/ugrep.vcproj.*.*.user
-icu4c/source/samples/ugrep/x64
-icu4c/source/samples/ugrep/x86
-icu4c/source/samples/uresb/*.res
-icu4c/source/samples/uresb/*.vcxproj.user
-icu4c/source/samples/uresb/Debug
-icu4c/source/samples/uresb/release
-icu4c/source/samples/uresb/resources.vcproj.*.*.user
-icu4c/source/samples/uresb/resources_Win32_Debug
 icu4c/source/samples/uresb/uresb
 icu4c/source/samples/uresb/uresb.exe
-icu4c/source/samples/uresb/uresb.out
-icu4c/source/samples/uresb/uresb.vcproj.*.*.user
-icu4c/source/samples/uresb/x64
-icu4c/source/samples/uresb/x86
-icu4c/source/samples/ustring/*.vcxproj.user
-icu4c/source/samples/ustring/Debug
-icu4c/source/samples/ustring/release
 icu4c/source/samples/ustring/ustring
 icu4c/source/samples/ustring/ustring.exe
-icu4c/source/samples/ustring/ustring.out
-icu4c/source/samples/ustring/ustring.vcproj.*.*.user
-icu4c/source/samples/ustring/x64
-icu4c/source/samples/ustring/x86
-icu4c/source/stubdata/*.ao
-icu4c/source/stubdata/*.d
-icu4c/source/stubdata/*.o
-icu4c/source/stubdata/*.plg
-icu4c/source/stubdata/*.vcxproj.user
-icu4c/source/stubdata/Debug
-icu4c/source/stubdata/Makefile
-icu4c/source/stubdata/Release
-icu4c/source/stubdata/cygicudata*.*
-icu4c/source/stubdata/debug
-icu4c/source/stubdata/icudt*.dll
-icu4c/source/stubdata/libicu*.*
-icu4c/source/stubdata/libsicu*.*
-icu4c/source/stubdata/release
-icu4c/source/stubdata/stubdata.vcproj.*.*.user
 icu4c/source/stubdata/stubdatabuilt.txt
-icu4c/source/stubdata/x64
-icu4c/source/stubdata/x86
-icu4c/source/stubdata/ARM
-icu4c/source/stubdata/ARM64
-icu4c/source/test-*.xml
-icu4c/source/test/Makefile
-icu4c/source/test/cintltst/*.d
-icu4c/source/test/cintltst/*.dSYM
-icu4c/source/test/cintltst/*.o
-icu4c/source/test/cintltst/*.plg
-icu4c/source/test/cintltst/*.vcxproj.user
-icu4c/source/test/cintltst/Debug
-icu4c/source/test/cintltst/Makefile
-icu4c/source/test/cintltst/Makefile.local
-icu4c/source/test/cintltst/Release
 icu4c/source/test/cintltst/cintltst
 icu4c/source/test/cintltst/cintltst.exe
-icu4c/source/test/cintltst/cintltst.vcproj.*.*.user
-icu4c/source/test/cintltst/debug
-icu4c/source/test/cintltst/release
-icu4c/source/test/cintltst/x64
-icu4c/source/test/cintltst/x86
-icu4c/source/test/cintltst/ARM
-icu4c/source/test/cintltst/ARM64
-icu4c/source/test/compat/Makefile
-icu4c/source/test/fuzzer/Makefile
-icu4c/source/test/fuzzer/*.d
-icu4c/source/test/fuzzer/*.o
-icu4c/source/test/hdrtst/Makefile
-icu4c/source/test/hdrtst/ht_*
-icu4c/source/test/intltest/*.d
-icu4c/source/test/intltest/*.o
-icu4c/source/test/intltest/*.plg
-icu4c/source/test/intltest/*.vcxproj.user
-icu4c/source/test/intltest/Debug
-icu4c/source/test/intltest/Makefile
-icu4c/source/test/intltest/Makefile.local
-icu4c/source/test/intltest/Release
-icu4c/source/test/intltest/debug
 icu4c/source/test/intltest/intltest
 icu4c/source/test/intltest/intltest.exe
-icu4c/source/test/intltest/intltest.vcproj.*.*.user
-icu4c/source/test/intltest/release
-icu4c/source/test/intltest/x64
-icu4c/source/test/intltest/x86
-icu4c/source/test/intltest/ARM
-icu4c/source/test/intltest/ARM64
-icu4c/source/test/iotest/*.d
-icu4c/source/test/iotest/*.dSYM
-icu4c/source/test/iotest/*.o
-icu4c/source/test/iotest/*.vcxproj.user
-icu4c/source/test/iotest/Debug
-icu4c/source/test/iotest/Makefile
-icu4c/source/test/iotest/Release
-icu4c/source/test/iotest/debug
 icu4c/source/test/iotest/iotest
 icu4c/source/test/iotest/iotest.exe
-icu4c/source/test/iotest/iotest.vcproj.*.*.user
-icu4c/source/test/iotest/release
-icu4c/source/test/iotest/x64
-icu4c/source/test/iotest/x86
-icu4c/source/test/iotest/ARM
-icu4c/source/test/iotest/ARM64
-icu4c/source/test/letest/*.d
-icu4c/source/test/letest/*.o
-icu4c/source/test/letest/*.opensdf
-icu4c/source/test/letest/*.sdf
-icu4c/source/test/letest/*.vcxproj.user
-icu4c/source/test/letest/Debug
-icu4c/source/test/letest/Makefile
-icu4c/source/test/letest/Release
-icu4c/source/test/letest/debug
 icu4c/source/test/letest/letest
 icu4c/source/test/letest/letest.exe
-icu4c/source/test/letest/letest.vcproj.*.*.user
-icu4c/source/test/letest/release
-icu4c/source/test/letest/x64
-icu4c/source/test/letest/x86
-icu4c/source/test/perf/*.ncb
-icu4c/source/test/perf/*.opendf
-icu4c/source/test/perf/*.sdf
-icu4c/source/test/perf/*.suo
-icu4c/source/test/perf/DateFmtPerf/*.vcxproj.user
 icu4c/source/test/perf/DateFmtPerf/DateFmtPerf
 icu4c/source/test/perf/DateFmtPerf/DateFmtPerf.d
-icu4c/source/test/perf/DateFmtPerf/Debug
-icu4c/source/test/perf/DateFmtPerf/Makefile
-icu4c/source/test/perf/DateFmtPerf/Release
-icu4c/source/test/perf/DateFmtPerf/x64
-icu4c/source/test/perf/DateFmtPerf/x86
-icu4c/source/test/perf/Makefile
-icu4c/source/test/perf/charperf/*.d
-icu4c/source/test/perf/charperf/*.o
-icu4c/source/test/perf/charperf/*.vcxproj.user
-icu4c/source/test/perf/charperf/Debug
-icu4c/source/test/perf/charperf/Makefile
-icu4c/source/test/perf/charperf/Release
 icu4c/source/test/perf/charperf/charperf
-icu4c/source/test/perf/charperf/charperf.vcproj.*.*.user
-icu4c/source/test/perf/charperf/debug
-icu4c/source/test/perf/charperf/release
-icu4c/source/test/perf/charperf/x64
-icu4c/source/test/perf/charperf/x86
-icu4c/source/test/perf/collationperf/*.d
-icu4c/source/test/perf/collationperf/Makefile
 icu4c/source/test/perf/collationperf/collperf
 icu4c/source/test/perf/collationperf/collperf.exe
-icu4c/source/test/perf/collperf/*.d
-icu4c/source/test/perf/collperf/*.o
-icu4c/source/test/perf/collperf/*.vcxproj.user
-icu4c/source/test/perf/collperf/Debug
-icu4c/source/test/perf/collperf/Makefile
-icu4c/source/test/perf/collperf/Release
 icu4c/source/test/perf/collperf/collperf
-icu4c/source/test/perf/collperf/collperf.vcproj.*.*.user
-icu4c/source/test/perf/collperf/debug
-icu4c/source/test/perf/collperf/release
-icu4c/source/test/perf/collperf/x64
-icu4c/source/test/perf/collperf/x86
-icu4c/source/test/perf/collperf2/*.vcxproj.user
-icu4c/source/test/perf/collperf2/Makefile
 icu4c/source/test/perf/collperf2/collperf2
 icu4c/source/test/perf/collperf2/collperf2.d
-icu4c/source/test/perf/collperf2/x64
-icu4c/source/test/perf/collperf2/x86
-icu4c/source/test/perf/convperf/*.vcxproj.user
-icu4c/source/test/perf/convperf/Makefile
-icu4c/source/test/perf/convperf/convperf.vcproj.*.*.user
-icu4c/source/test/perf/convperf/debug
-icu4c/source/test/perf/convperf/release
-icu4c/source/test/perf/convperf/x64
-icu4c/source/test/perf/convperf/x86
-icu4c/source/test/perf/dicttrieperf/Makefile
-icu4c/source/test/perf/howExpensiveIs/*.d
-icu4c/source/test/perf/howExpensiveIs/*.xml
-icu4c/source/test/perf/howExpensiveIs/Makefile
 icu4c/source/test/perf/howExpensiveIs/howExpensiveIs
-icu4c/source/test/perf/ipch
-icu4c/source/test/perf/leperf/Makefile
-icu4c/source/test/perf/normperf/*.d
-icu4c/source/test/perf/normperf/*.o
-icu4c/source/test/perf/normperf/*.vcxproj.user
-icu4c/source/test/perf/normperf/Debug
-icu4c/source/test/perf/normperf/Makefile
-icu4c/source/test/perf/normperf/Release
-icu4c/source/test/perf/normperf/debug
 icu4c/source/test/perf/normperf/normperf
-icu4c/source/test/perf/normperf/normperf.vcproj.*.*.user
-icu4c/source/test/perf/normperf/release
-icu4c/source/test/perf/normperf/x64
-icu4c/source/test/perf/normperf/x86
 icu4c/source/test/perf/perldriver/Common.pl
-icu4c/source/test/perf/strsrchperf/*.vcxproj.user
-icu4c/source/test/perf/strsrchperf/Makefile
-icu4c/source/test/perf/strsrchperf/x64
-icu4c/source/test/perf/strsrchperf/x86
-icu4c/source/test/perf/ubrkperf/*.d
-icu4c/source/test/perf/ubrkperf/*.o
-icu4c/source/test/perf/ubrkperf/*.vcxproj.user
-icu4c/source/test/perf/ubrkperf/Debug
-icu4c/source/test/perf/ubrkperf/Makefile
-icu4c/source/test/perf/ubrkperf/Release
-icu4c/source/test/perf/ubrkperf/debug
-icu4c/source/test/perf/ubrkperf/release
 icu4c/source/test/perf/ubrkperf/ubrkperf
-icu4c/source/test/perf/ubrkperf/ubrkperf.vcproj.*.*.user
-icu4c/source/test/perf/ubrkperf/x64
-icu4c/source/test/perf/ubrkperf/x86
-icu4c/source/test/perf/ucnvavailperf/*.vcxproj.user
-icu4c/source/test/perf/ucnvavailperf/x64
-icu4c/source/test/perf/ucnvavailperf/x86
-icu4c/source/test/perf/unisetperf/*.d
-icu4c/source/test/perf/unisetperf/*.o
-icu4c/source/test/perf/unisetperf/*.vcxproj.user
-icu4c/source/test/perf/unisetperf/Debug
-icu4c/source/test/perf/unisetperf/Makefile
-icu4c/source/test/perf/unisetperf/Release
-icu4c/source/test/perf/unisetperf/debug
-icu4c/source/test/perf/unisetperf/release
 icu4c/source/test/perf/unisetperf/unisetperf
-icu4c/source/test/perf/unisetperf/unisetperf.vcproj.*.*.user
-icu4c/source/test/perf/unisetperf/x64
-icu4c/source/test/perf/unisetperf/x86
-icu4c/source/test/perf/usetperf/*.d
-icu4c/source/test/perf/usetperf/*.o
-icu4c/source/test/perf/usetperf/*.vcxproj.user
-icu4c/source/test/perf/usetperf/Debug
-icu4c/source/test/perf/usetperf/Makefile
-icu4c/source/test/perf/usetperf/Release
-icu4c/source/test/perf/usetperf/debug
-icu4c/source/test/perf/usetperf/release
 icu4c/source/test/perf/usetperf/usetperf
-icu4c/source/test/perf/usetperf/usetperf.vcproj.*.*.user
-icu4c/source/test/perf/usetperf/x64
-icu4c/source/test/perf/usetperf/x86
-icu4c/source/test/perf/ustrperf/*.d
-icu4c/source/test/perf/ustrperf/*.o
-icu4c/source/test/perf/ustrperf/*.vcxproj.user
-icu4c/source/test/perf/ustrperf/Debug
-icu4c/source/test/perf/ustrperf/Makefile
-icu4c/source/test/perf/ustrperf/Release
 icu4c/source/test/perf/ustrperf/charperf
-icu4c/source/test/perf/ustrperf/debug
-icu4c/source/test/perf/ustrperf/release
 icu4c/source/test/perf/ustrperf/stringperf
-icu4c/source/test/perf/ustrperf/stringperf.vcproj.*.*.user
-icu4c/source/test/perf/ustrperf/x64
-icu4c/source/test/perf/ustrperf/x86
-icu4c/source/test/perf/utfperf/*.d
-icu4c/source/test/perf/utfperf/*.o
-icu4c/source/test/perf/utfperf/*.vcxproj.user
-icu4c/source/test/perf/utfperf/Debug
-icu4c/source/test/perf/utfperf/Makefile
-icu4c/source/test/perf/utfperf/Release
-icu4c/source/test/perf/utfperf/debug
-icu4c/source/test/perf/utfperf/release
 icu4c/source/test/perf/utfperf/utfperf
-icu4c/source/test/perf/utfperf/utfperf.vcproj.*.*.user
-icu4c/source/test/perf/utfperf/x64
-icu4c/source/test/perf/utfperf/x86
-icu4c/source/test/perf/utrie2perf/*.vcxproj.user
-icu4c/source/test/perf/utrie2perf/Makefile
 icu4c/source/test/perf/utrie2perf/utrie2perf
 icu4c/source/test/perf/utrie2perf/utrie2perf.d
-icu4c/source/test/perf/utrie2perf/x64
-icu4c/source/test/perf/utrie2perf/x86
-icu4c/source/test/testdata/Makefile
-icu4c/source/test/testdata/out
-icu4c/source/test/testdata/pkgdata.inc
-icu4c/source/test/testdata/pkgdataMakefile
-icu4c/source/test/testdata/rules.mk
-icu4c/source/test/testmap/*.d
-icu4c/source/test/testmap/Debug
-icu4c/source/test/testmap/Makefile
-icu4c/source/test/testmap/Release
 icu4c/source/test/testmap/testmap
 icu4c/source/test/testmap/testmap.plg
-icu4c/source/test/thaitest/Makefile
-icu4c/source/test/tmp
-icu4c/source/tools/Makefile
-icu4c/source/tools/ctestfw/*.ao
-icu4c/source/tools/ctestfw/*.d
-icu4c/source/tools/ctestfw/*.o
-icu4c/source/tools/ctestfw/*.pdb
-icu4c/source/tools/ctestfw/*.vcxproj.user
-icu4c/source/tools/ctestfw/*icutest*.dll
-icu4c/source/tools/ctestfw/*icutest*.exp
-icu4c/source/tools/ctestfw/*icutest*.lib
-icu4c/source/tools/ctestfw/*icutest*.lnk
-icu4c/source/tools/ctestfw/Debug
-icu4c/source/tools/ctestfw/Makefile
-icu4c/source/tools/ctestfw/Release
-icu4c/source/tools/ctestfw/ctestfw.vcproj.*.*.user
-icu4c/source/tools/ctestfw/debug
-icu4c/source/tools/ctestfw/libicutest*
-icu4c/source/tools/ctestfw/libsicutest*
-icu4c/source/tools/ctestfw/release
-icu4c/source/tools/ctestfw/x64
-icu4c/source/tools/ctestfw/x86
-icu4c/source/tools/ctestfw/ARM
-icu4c/source/tools/ctestfw/ARM64
-icu4c/source/tools/escapesrc/*.d
-icu4c/source/tools/escapesrc/*.o
-icu4c/source/tools/escapesrc/Makefile
-icu4c/source/tools/escapesrc/output-*.cpp
-icu4c/source/tools/genbrk/*.d
-icu4c/source/tools/genbrk/*.o
-icu4c/source/tools/genbrk/*.pdb
-icu4c/source/tools/genbrk/*.plg
-icu4c/source/tools/genbrk/*.vcxproj.user
-icu4c/source/tools/genbrk/Debug
-icu4c/source/tools/genbrk/Makefile
-icu4c/source/tools/genbrk/Release
-icu4c/source/tools/genbrk/debug
 icu4c/source/tools/genbrk/genbrk
 icu4c/source/tools/genbrk/genbrk.1
-icu4c/source/tools/genbrk/genbrk.vcproj.*.*.user
-icu4c/source/tools/genbrk/release
-icu4c/source/tools/genbrk/x64
-icu4c/source/tools/genbrk/x86
-icu4c/source/tools/genbrk/ARM
-icu4c/source/tools/genbrk/ARM64
-icu4c/source/tools/genccode/*.d
-icu4c/source/tools/genccode/*.o
-icu4c/source/tools/genccode/*.pdb
-icu4c/source/tools/genccode/*.plg
-icu4c/source/tools/genccode/*.vcxproj.user
-icu4c/source/tools/genccode/Debug
-icu4c/source/tools/genccode/Makefile
-icu4c/source/tools/genccode/Release
-icu4c/source/tools/genccode/debug
 icu4c/source/tools/genccode/genccode
 icu4c/source/tools/genccode/genccode.8
-icu4c/source/tools/genccode/genccode.vcproj.*.*.user
-icu4c/source/tools/genccode/release
-icu4c/source/tools/genccode/x64
-icu4c/source/tools/genccode/x86
-icu4c/source/tools/genccode/ARM
-icu4c/source/tools/genccode/ARM64
-icu4c/source/tools/gencfu/*.d
-icu4c/source/tools/gencfu/*.o
-icu4c/source/tools/gencfu/*.pdb
-icu4c/source/tools/gencfu/*.vcxproj.user
-icu4c/source/tools/gencfu/Debug
-icu4c/source/tools/gencfu/Makefile
-icu4c/source/tools/gencfu/Release
-icu4c/source/tools/gencfu/debug
 icu4c/source/tools/gencfu/gencfu
 icu4c/source/tools/gencfu/gencfu.1
 icu4c/source/tools/gencfu/gencfu.exe
-icu4c/source/tools/gencfu/gencfu.vcproj.*.*.user
-icu4c/source/tools/gencfu/release
-icu4c/source/tools/gencfu/x64
-icu4c/source/tools/gencfu/x86
-icu4c/source/tools/gencfu/ARM
-icu4c/source/tools/gencfu/ARM64
-icu4c/source/tools/gencmn/*.d
-icu4c/source/tools/gencmn/*.o
-icu4c/source/tools/gencmn/*.pdb
-icu4c/source/tools/gencmn/*.plg
-icu4c/source/tools/gencmn/*.vcxproj.user
-icu4c/source/tools/gencmn/Debug
-icu4c/source/tools/gencmn/Makefile
-icu4c/source/tools/gencmn/Release
-icu4c/source/tools/gencmn/debug
 icu4c/source/tools/gencmn/gencmn
 icu4c/source/tools/gencmn/gencmn.8
 icu4c/source/tools/gencmn/gencmn.[0-9]
-icu4c/source/tools/gencmn/gencmn.vcproj.*.*.user
-icu4c/source/tools/gencmn/release
-icu4c/source/tools/gencmn/x64
-icu4c/source/tools/gencmn/x86
-icu4c/source/tools/gencmn/ARM
-icu4c/source/tools/gencmn/ARM64
-icu4c/source/tools/gencnval/*.d
-icu4c/source/tools/gencnval/*.ncb
-icu4c/source/tools/gencnval/*.o
-icu4c/source/tools/gencnval/*.opt
-icu4c/source/tools/gencnval/*.pdb
-icu4c/source/tools/gencnval/*.plg
-icu4c/source/tools/gencnval/*.vcxproj.user
-icu4c/source/tools/gencnval/Debug
-icu4c/source/tools/gencnval/Makefile
-icu4c/source/tools/gencnval/Release
-icu4c/source/tools/gencnval/debug
 icu4c/source/tools/gencnval/gencnval
 icu4c/source/tools/gencnval/gencnval.1
 icu4c/source/tools/gencnval/gencnval.[0-9]
-icu4c/source/tools/gencnval/gencnval.vcproj.*.*.user
-icu4c/source/tools/gencnval/release
-icu4c/source/tools/gencnval/x64
-icu4c/source/tools/gencnval/x86
-icu4c/source/tools/gencnval/ARM
-icu4c/source/tools/gencnval/ARM64
-icu4c/source/tools/gencolusb/Makefile.local
 icu4c/source/tools/gencolusb/extract_unsafe_backwards
 icu4c/source/tools/gencolusb/verify_uset
-icu4c/source/tools/gendict/*.1
-icu4c/source/tools/gendict/*.d
-icu4c/source/tools/gendict/*.o
-icu4c/source/tools/gendict/*.pdb
-icu4c/source/tools/gendict/*.plg
-icu4c/source/tools/gendict/*.vcxproj.user
-icu4c/source/tools/gendict/Debug
-icu4c/source/tools/gendict/Makefile
-icu4c/source/tools/gendict/Release
-icu4c/source/tools/gendict/x64
-icu4c/source/tools/gendict/x86
-icu4c/source/tools/gendict/ARM
-icu4c/source/tools/gendict/ARM64
-icu4c/source/tools/gennorm2/*.d
-icu4c/source/tools/gennorm2/*.o
-icu4c/source/tools/gennorm2/*.pdb
-icu4c/source/tools/gennorm2/*.plg
-icu4c/source/tools/gennorm2/*.vcxproj.user
-icu4c/source/tools/gennorm2/Debug
-icu4c/source/tools/gennorm2/Makefile
-icu4c/source/tools/gennorm2/Release
-icu4c/source/tools/gennorm2/debug
 icu4c/source/tools/gennorm2/gennorm2
 icu4c/source/tools/gennorm2/gennorm2.[0-9]
-icu4c/source/tools/gennorm2/gennorm2.vcproj.*.*.user
-icu4c/source/tools/gennorm2/release
-icu4c/source/tools/gennorm2/x64
-icu4c/source/tools/gennorm2/x86
-icu4c/source/tools/gennorm2/ARM
-icu4c/source/tools/gennorm2/ARM64
-icu4c/source/tools/genrb/*.1
-icu4c/source/tools/genrb/*.d
-icu4c/source/tools/genrb/*.o
-icu4c/source/tools/genrb/*.pdb
-icu4c/source/tools/genrb/*.plg
-icu4c/source/tools/genrb/*.vcxproj.user
-icu4c/source/tools/genrb/Debug
-icu4c/source/tools/genrb/Makefile
-icu4c/source/tools/genrb/Makefile.local
-icu4c/source/tools/genrb/Release
-icu4c/source/tools/genrb/debug
 icu4c/source/tools/genrb/derb
 icu4c/source/tools/genrb/derb.[0-9]
-icu4c/source/tools/genrb/derb.vcproj.*.*.user
-icu4c/source/tools/genrb/derb_*
 icu4c/source/tools/genrb/genrb
 icu4c/source/tools/genrb/genrb.[0-9]
-icu4c/source/tools/genrb/genrb.vcproj.*.*.user
-icu4c/source/tools/genrb/release
 icu4c/source/tools/genrb/temp
-icu4c/source/tools/genrb/x64
-icu4c/source/tools/genrb/x86
-icu4c/source/tools/genrb/ARM
-icu4c/source/tools/genrb/ARM64
 icu4c/source/tools/genren/ICUunrenamed
-icu4c/source/tools/genren/Makefile.local
-icu4c/source/tools/genren/urename.*
-icu4c/source/tools/gensprep/*.8
-icu4c/source/tools/gensprep/*.d
-icu4c/source/tools/gensprep/*.o
-icu4c/source/tools/gensprep/*.pdb
-icu4c/source/tools/gensprep/*.vcxproj.user
-icu4c/source/tools/gensprep/Debug
-icu4c/source/tools/gensprep/Makefile
-icu4c/source/tools/gensprep/Release
-icu4c/source/tools/gensprep/debug
 icu4c/source/tools/gensprep/gensprep
 icu4c/source/tools/gensprep/gensprep.[0-9]
 icu4c/source/tools/gensprep/gensprep.plg
-icu4c/source/tools/gensprep/gensprep.vcproj.*.*.user
-icu4c/source/tools/gensprep/release
-icu4c/source/tools/gensprep/x64
-icu4c/source/tools/gensprep/x86
-icu4c/source/tools/gensprep/ARM
-icu4c/source/tools/gensprep/ARM64
-icu4c/source/tools/gentest/*.d
-icu4c/source/tools/gentest/*.o
-icu4c/source/tools/gentest/*.pdb
-icu4c/source/tools/gentest/*.vcxproj.user
-icu4c/source/tools/gentest/Debug
-icu4c/source/tools/gentest/Makefile
-icu4c/source/tools/gentest/Release
-icu4c/source/tools/gentest/debug
 icu4c/source/tools/gentest/gentest
 icu4c/source/tools/gentest/gentest.exe
-icu4c/source/tools/gentest/gentest.vcproj.*.*.user
-icu4c/source/tools/gentest/release
-icu4c/source/tools/gentest/x64
-icu4c/source/tools/gentest/x86
-icu4c/source/tools/gentest/ARM
-icu4c/source/tools/gentest/ARM64
-icu4c/source/tools/icuinfo/*.d
-icu4c/source/tools/icuinfo/*.dSYM
-icu4c/source/tools/icuinfo/*.dylib
-icu4c/source/tools/icuinfo/*.o
-icu4c/source/tools/icuinfo/*.so
-icu4c/source/tools/icuinfo/*.user
-icu4c/source/tools/icuinfo/*.vcxproj.user
-icu4c/source/tools/icuinfo/Debug
-icu4c/source/tools/icuinfo/Makefile
-icu4c/source/tools/icuinfo/Makefile.local
 icu4c/source/tools/icuinfo/icuinfo
 icu4c/source/tools/icuinfo/icuinfo.exe
-icu4c/source/tools/icuinfo/icuplugins*.txt
-!icu4c/source/tools/icuinfo/icuplugins_windows_sample.txt
-icu4c/source/tools/icuinfo/x64
-icu4c/source/tools/icuinfo/x86
-icu4c/source/tools/icuinfo/ARM
-icu4c/source/tools/icuinfo/ARM64
-icu4c/source/tools/icupkg/*.8
-icu4c/source/tools/icupkg/*.d
-icu4c/source/tools/icupkg/*.ncb
-icu4c/source/tools/icupkg/*.o
-icu4c/source/tools/icupkg/*.opt
-icu4c/source/tools/icupkg/*.pdb
-icu4c/source/tools/icupkg/*.plg
-icu4c/source/tools/icupkg/*.vcxproj.user
-icu4c/source/tools/icupkg/Debug
-icu4c/source/tools/icupkg/Makefile
-icu4c/source/tools/icupkg/Release
-icu4c/source/tools/icupkg/debug
 icu4c/source/tools/icupkg/icupkg
 icu4c/source/tools/icupkg/icupkg.[0-9]
-icu4c/source/tools/icupkg/icupkg.vcproj.*.*.user
-icu4c/source/tools/icupkg/release
-icu4c/source/tools/icupkg/x64
-icu4c/source/tools/icupkg/x86
-icu4c/source/tools/icupkg/ARM
-icu4c/source/tools/icupkg/ARM64
-icu4c/source/tools/icuswap/*.d
-icu4c/source/tools/icuswap/*.ncb
-icu4c/source/tools/icuswap/*.o
-icu4c/source/tools/icuswap/*.opt
-icu4c/source/tools/icuswap/*.pdb
-icu4c/source/tools/icuswap/*.plg
-icu4c/source/tools/icuswap/Debug
-icu4c/source/tools/icuswap/Makefile
-icu4c/source/tools/icuswap/Release
-icu4c/source/tools/icuswap/debug
 icu4c/source/tools/icuswap/icuswap
 icu4c/source/tools/icuswap/icuswap.[0-9]
-icu4c/source/tools/icuswap/icuswap.vcproj.*.*.user
-icu4c/source/tools/icuswap/release
-icu4c/source/tools/makeconv/*.1
-icu4c/source/tools/makeconv/*.d
-icu4c/source/tools/makeconv/*.o
-icu4c/source/tools/makeconv/*.pdb
-icu4c/source/tools/makeconv/*.plg
-icu4c/source/tools/makeconv/*.vcxproj.user
-icu4c/source/tools/makeconv/Debug
-icu4c/source/tools/makeconv/Makefile
-icu4c/source/tools/makeconv/Release
-icu4c/source/tools/makeconv/debug
 icu4c/source/tools/makeconv/makeconv
 icu4c/source/tools/makeconv/makeconv.[0-9]
-icu4c/source/tools/makeconv/makeconv.vcproj.*.*.user
-icu4c/source/tools/makeconv/release
-icu4c/source/tools/makeconv/x64
-icu4c/source/tools/makeconv/x86
-icu4c/source/tools/makeconv/ARM
-icu4c/source/tools/makeconv/ARM64
-icu4c/source/tools/pkgdata/*.1
-icu4c/source/tools/pkgdata/*.d
-icu4c/source/tools/pkgdata/*.ncb
-icu4c/source/tools/pkgdata/*.o
-icu4c/source/tools/pkgdata/*.opt
-icu4c/source/tools/pkgdata/*.pdb
-icu4c/source/tools/pkgdata/*.vcxproj.user
-icu4c/source/tools/pkgdata/Debug
-icu4c/source/tools/pkgdata/Makefile
-icu4c/source/tools/pkgdata/Release
-icu4c/source/tools/pkgdata/debug
-icu4c/source/tools/pkgdata/icupkg.inc
 icu4c/source/tools/pkgdata/pkgdata
 icu4c/source/tools/pkgdata/pkgdata.[0-9]
-icu4c/source/tools/pkgdata/pkgdata.vcproj.*.*.user
-icu4c/source/tools/pkgdata/release
-icu4c/source/tools/pkgdata/x64
-icu4c/source/tools/pkgdata/x86
-icu4c/source/tools/pkgdata/ARM
-icu4c/source/tools/pkgdata/ARM64
-icu4c/source/tools/toolutil/*.ao
-icu4c/source/tools/toolutil/*.d
-icu4c/source/tools/toolutil/*.ncb
-icu4c/source/tools/toolutil/*.o
-icu4c/source/tools/toolutil/*.opt
-icu4c/source/tools/toolutil/*.pdb
-icu4c/source/tools/toolutil/*.plg
-icu4c/source/tools/toolutil/*.vcxproj.user
-icu4c/source/tools/toolutil/Debug
-icu4c/source/tools/toolutil/Makefile
-icu4c/source/tools/toolutil/Release
-icu4c/source/tools/toolutil/debug
-icu4c/source/tools/toolutil/libicu*
-icu4c/source/tools/toolutil/release
-icu4c/source/tools/toolutil/toolutil.vcproj.*.*.user
-icu4c/source/tools/toolutil/x64
-icu4c/source/tools/toolutil/x86
-icu4c/source/tools/toolutil/ARM
-icu4c/source/tools/toolutil/ARM64
-icu4c/source/tools/tzcode/*.ao
-icu4c/source/tools/tzcode/*.o
-icu4c/source/tools/tzcode/.vs
-icu4c/source/tools/tzcode/Makefile
 icu4c/source/uconfig.h.prepend
-icu4j/*.jar
 icu4j/.project
-icu4j/build-local.properties
-icu4j/demos/out
-icu4j/doc
 icu4j/eclipse
-icu4j/eclipse-build/build-local.properties
-icu4j/eclipse-build/out
-icu4j/lib/*.jar
-icu4j/main/classes/charset/out
-icu4j/main/classes/collate/out
-icu4j/main/classes/core/out
-icu4j/main/classes/currdata/out
-icu4j/main/classes/langdata/out
-icu4j/main/classes/localespi/out
-icu4j/main/classes/regiondata/out
-icu4j/main/classes/translit/out
-icu4j/main/tests/charset/out
-icu4j/main/tests/collate/out
-icu4j/main/tests/core/out
-icu4j/main/tests/framework/out
-icu4j/main/tests/localespi/out
-icu4j/main/tests/packaging/out
-icu4j/main/tests/translit/out
-icu4j/out
-icu4j/perf-tests/out
-icu4j/samples/build-local.properties
-icu4j/samples/out
-icu4j/tools/build/out
-icu4j/tools/misc/out
-tools/multi/c/Makefile.local
-tools/multi/packages/*.jar
-tools/multi/packages/*.tgz
-tools/multi/proj/chello/out
-tools/multi/proj/icu4cscan/Makefile.local
 tools/multi/proj/icu4cscan/cooked
 tools/multi/proj/icu4cscan/dtdcache
 tools/multi/proj/icu4cscan/jxml
 tools/multi/proj/icu4cscan/xml
-tools/multi/proj/icu4jscan/bin
-tools/multi/proj/provider/Makefile.local
-tools/multi/proj/provider/out
-tools/multi/tmp
 tools/release/c/uconfigtest
 tools/release/c/uconfigtest.local
-tools/release/java/APIChangeReport*
-tools/release/java/Makefile.local
 tools/release/java/classes
-tools/release/java/lib
-tools/unicode/c/genprops/*.d
-tools/unicode/c/genprops/*.ncb
-tools/unicode/c/genprops/*.o
-tools/unicode/c/genprops/*.opt
-tools/unicode/c/genprops/*.pdb
-tools/unicode/c/genprops/*.plg
-tools/unicode/c/genprops/Debug
-tools/unicode/c/genprops/Makefile
-tools/unicode/c/genprops/Release
-tools/unicode/c/genprops/debug
 tools/unicode/c/genprops/genprops
 tools/unicode/c/genprops/genprops.[0-9]
-tools/unicode/c/genprops/genprops.vcproj.*.*.user
-tools/unicode/c/genprops/release
-tools/unicode/c/genprops/x64
-tools/unicode/c/genprops/x86
-tools/unicode/c/genuca/*.d
-tools/unicode/c/genuca/*.o
-tools/unicode/c/genuca/*.pdb
-tools/unicode/c/genuca/Debug
-tools/unicode/c/genuca/Makefile
-tools/unicode/c/genuca/Release
-tools/unicode/c/genuca/debug
 tools/unicode/c/genuca/genuca
 tools/unicode/c/genuca/genuca.8
-tools/unicode/c/genuca/genuca.vcproj.*.*.user
-tools/unicode/c/genuca/release
-tools/unicode/c/genuca/x64
-tools/unicode/c/genuca/x86
 tools/unicode/c/icudefs.txt
-tools/unicodetools/com/ibm/rbm/lib
diff --git a/icu4c/source/common/utrie_swap.cpp b/icu4c/source/common/utrie_swap.cpp
index 5abe7bd..6e8b138 100644
--- a/icu4c/source/common/utrie_swap.cpp
+++ b/icu4c/source/common/utrie_swap.cpp
@@ -256,20 +256,24 @@
         ds->swapArray32(ds, &inTrie->signature, 4, &outTrie->signature, pErrorCode);
         ds->swapArray16(ds, &inTrie->options, 12, &outTrie->options, pErrorCode);
 
-        /* swap the index and the data */
+        /* swap the index */
+        const uint16_t *inIndex=reinterpret_cast<const uint16_t *>(inTrie+1);
+        uint16_t *outIndex=reinterpret_cast<uint16_t *>(outTrie+1);
+        ds->swapArray16(ds, inIndex, trie.indexLength*2, outIndex, pErrorCode);
+
+        /* swap the data */
+        const uint16_t *inData=inIndex+trie.indexLength;
+        uint16_t *outData=outIndex+trie.indexLength;
         switch(valueWidth) {
         case UCPTRIE_VALUE_BITS_16:
-            ds->swapArray16(ds, inTrie+1, (trie.indexLength+dataLength)*2, outTrie+1, pErrorCode);
+            ds->swapArray16(ds, inData, dataLength*2, outData, pErrorCode);
             break;
         case UCPTRIE_VALUE_BITS_32:
-            ds->swapArray16(ds, inTrie+1, trie.indexLength*2, outTrie+1, pErrorCode);
-            ds->swapArray32(ds, (const uint16_t *)(inTrie+1)+trie.indexLength, dataLength*4,
-                                     (uint16_t *)(outTrie+1)+trie.indexLength, pErrorCode);
+            ds->swapArray32(ds, inData, dataLength*4, outData, pErrorCode);
             break;
         case UCPTRIE_VALUE_BITS_8:
-            ds->swapArray16(ds, inTrie+1, trie.indexLength*2, outTrie+1, pErrorCode);
             if(inTrie!=outTrie) {
-                uprv_memmove((outTrie+1)+trie.indexLength, (inTrie+1)+trie.indexLength, dataLength);
+                uprv_memmove(outData, inData, dataLength);
             }
             break;
         default:
diff --git a/icu4c/source/test/cintltst/ucptrietest.c b/icu4c/source/test/cintltst/ucptrietest.c
index 9d2e489..cbeb43d 100644
--- a/icu4c/source/test/cintltst/ucptrietest.c
+++ b/icu4c/source/test/cintltst/ucptrietest.c
@@ -1145,6 +1145,9 @@
     testTrieRanges("set3-initial-9", FALSE,
         setRanges3, UPRV_LENGTHOF(setRanges3),
         checkRanges3, UPRV_LENGTHOF(checkRanges3));
+    testTrieRanges("set3-initial-9-clone", TRUE,
+        setRanges3, UPRV_LENGTHOF(setRanges3),
+        checkRanges3, UPRV_LENGTHOF(checkRanges3));
 }
 
 static void
diff --git a/icu4j/demos/src/com/ibm/icu/dev/demo/rbnf/RbnfDemo.java b/icu4j/demos/src/com/ibm/icu/dev/demo/rbnf/RbnfDemo.java
index e34479d..b08c68b 100644
--- a/icu4j/demos/src/com/ibm/icu/dev/demo/rbnf/RbnfDemo.java
+++ b/icu4j/demos/src/com/ibm/icu/dev/demo/rbnf/RbnfDemo.java
@@ -45,6 +45,7 @@
 import java.util.Locale;
 
 import com.ibm.icu.dev.demo.impl.DemoApplet;
+import com.ibm.icu.math.BigDecimal;
 import com.ibm.icu.text.RuleBasedNumberFormat;
 
 public class RbnfDemo extends DemoApplet {
@@ -66,10 +67,12 @@
         new RbnfDemo().showDemo();
     }
 
+    @Override
     protected Dimension getDefaultFrameSize(DemoApplet applet, Frame f) {
         return new Dimension(430,270);
     }
 
+    @Override
     protected Frame createDemoFrame(DemoApplet applet) {
         final Frame window = new Frame("Number Spellout Demo");
         window.setSize(800, 600);
@@ -89,7 +92,7 @@
         populateRuleSetMenu();
         numberFormatter = new DecimalFormat("#,##0.##########");
         parsePosition = new ParsePosition(0);
-        theNumber = 0;
+        theNumber = BigDecimal.ZERO;
 
         numberField = new TextField();
         numberField.setFont(new Font("Serif", Font.PLAIN, 24));
@@ -100,6 +103,7 @@
         lenientParseButton = new Checkbox("Lenient parse", lenientParse);
 
         numberField.addTextListener(new TextListener() {
+            @Override
             public void textValueChanged(TextEvent e) {
                 if (!numberFieldHasFocus)
                     return;
@@ -108,22 +112,25 @@
                 parsePosition.setIndex(0);
                 Number temp = numberFormatter.parse(fieldText, parsePosition);
                 if (temp == null || parsePosition.getIndex() == 0) {
-                    theNumber = 0;
+                    theNumber = BigDecimal.ZERO;
                     textField.setText("PARSE ERROR");
                 }
                 else {
-                    theNumber = temp.doubleValue();
-                    textField.setText(spelloutFormatter.format(theNumber, ruleSetName));
+                    theNumber = new BigDecimal(temp instanceof Long ? temp.longValue() : temp.doubleValue());
+                    textField.setText(spelloutFormatter.format(
+                            theNumber.scale() == 0 ? theNumber.longValue() : theNumber.doubleValue(), ruleSetName));
                 }
             }
         } );
 
         numberField.addFocusListener(new FocusAdapter() {
+            @Override
             public void focusLost(FocusEvent e) {
                 numberFieldHasFocus = false;
                 numberField.setText(numberFormatter.format(theNumber));
             }
 
+            @Override
             public void focusGained(FocusEvent e) {
                 numberFieldHasFocus = true;
                 numberField.selectAll();
@@ -131,14 +138,15 @@
         } );
 
         textField.addKeyListener(new KeyAdapter() {
+            @Override
             public void keyTyped(KeyEvent e) {
                 if (e.getKeyChar() == '\t') {
                     String fieldText = ((TextComponent)(e.getSource())).getText();
                     parsePosition.setIndex(0);
-                    theNumber = spelloutFormatter.parse(fieldText, parsePosition)
-                                        .doubleValue();
+                    theNumber = new BigDecimal(spelloutFormatter.parse(fieldText, parsePosition)
+                                    .doubleValue());
                     if (parsePosition.getIndex() == 0) {
-                        theNumber = 0;
+                        theNumber = BigDecimal.ZERO;
                         numberField.setText("PARSE ERROR");
                         textField.selectAll();
                     }
@@ -156,11 +164,12 @@
         } );
 
         textField.addFocusListener(new FocusAdapter() {
+            @Override
             public void focusLost(FocusEvent e) {
                 String fieldText = ((TextComponent)(e.getSource())).getText();
                 parsePosition.setIndex(0);
-                theNumber = spelloutFormatter.parse(fieldText, parsePosition)
-                                .doubleValue();
+                theNumber = new BigDecimal(spelloutFormatter.parse(fieldText, parsePosition)
+                                .doubleValue());
                 if (parsePosition.getIndex() == 0)
                     numberField.setText("PARSE ERROR");
                 else
@@ -168,12 +177,14 @@
                 textField.setText(textField.getText()); // textField.repaint() didn't work right
             }
 
+            @Override
             public void focusGained(FocusEvent e) {
                 textField.selectAll();
             }
         } );
 
         rulesField.addKeyListener(new KeyAdapter() {
+            @Override
             public void keyTyped(KeyEvent e) {
                 if (e.getKeyChar() == '\t') {
                     String fieldText = ((TextComponent)(e.getSource())).getText();
@@ -201,6 +212,7 @@
         } );
 
         rulesField.addFocusListener(new FocusAdapter() {
+            @Override
             public void focusLost(FocusEvent e) {
                 String fieldText = ((TextComponent)(e.getSource())).getText();
                 if (formatterMenu.getSelectedItem().equals("Custom") || !fieldText.equals(
@@ -223,6 +235,7 @@
         } );
 
         lenientParseButton.addItemListener(new ItemListener() {
+            @Override
             public void itemStateChanged(ItemEvent e) {
                 lenientParse = lenientParseButton.getState();
                 spelloutFormatter.setLenientParseMode(lenientParse);
@@ -231,7 +244,8 @@
 
         numberField.setText(numberFormatter.format(theNumber));
         numberField.selectAll();
-        textField.setText(spelloutFormatter.format(theNumber, ruleSetName));
+        textField.setText(spelloutFormatter
+                .format(theNumber.scale() == 0 ? theNumber.longValue() : theNumber.doubleValue(), ruleSetName));
 
         Panel leftPanel = new Panel();
         leftPanel.setLayout(new BorderLayout());
@@ -247,6 +261,7 @@
         panel2.setLayout(new GridLayout(3, 3));
         Button button = new Button("+100");
         button.addActionListener( new ActionListener() {
+            @Override
             public void actionPerformed(ActionEvent e) {
                 roll(100);
             }
@@ -254,6 +269,7 @@
         panel2.add(button);
         button = new Button("+10");
         button.addActionListener( new ActionListener() {
+            @Override
             public void actionPerformed(ActionEvent e) {
                 roll(10);
             }
@@ -261,6 +277,7 @@
         panel2.add(button);
         button = new Button("+1");
         button.addActionListener( new ActionListener() {
+            @Override
             public void actionPerformed(ActionEvent e) {
                 roll(1);
             }
@@ -268,8 +285,9 @@
         panel2.add(button);
         button = new Button("<");
         button.addActionListener( new ActionListener() {
+            @Override
             public void actionPerformed(ActionEvent e) {
-                theNumber *= 10;
+                theNumber = new BigDecimal(theNumber.toString()).multiply(new BigDecimal("10"));
                 redisplay();
             }
         } );
@@ -277,14 +295,16 @@
         panel2.add(new Panel());
         button = new Button(">");
         button.addActionListener( new ActionListener() {
+            @Override
             public void actionPerformed(ActionEvent e) {
-                theNumber /= 10;
+                theNumber = new BigDecimal(theNumber.toString()).multiply(new BigDecimal("0.1"));
                 redisplay();
             }
         } );
         panel2.add(button);
         button = new Button("-100");
         button.addActionListener( new ActionListener() {
+            @Override
             public void actionPerformed(ActionEvent e) {
                 roll(-100);
             }
@@ -292,6 +312,7 @@
         panel2.add(button);
         button = new Button("-10");
         button.addActionListener( new ActionListener() {
+            @Override
             public void actionPerformed(ActionEvent e) {
                 roll(-10);
             }
@@ -299,6 +320,7 @@
         panel2.add(button);
         button = new Button("-1");
         button.addActionListener( new ActionListener() {
+            @Override
             public void actionPerformed(ActionEvent e) {
                 roll(-1);
             }
@@ -315,6 +337,7 @@
             formatterMenu.addItem(RbnfSampleRuleSets.sampleRuleSetNames[i]);
         formatterMenu.addItem("Custom");
         formatterMenu.addItemListener(new ItemListener() {
+            @Override
             public void itemStateChanged(ItemEvent e) {
                 Choice source = (Choice)(e.getSource());
                 int item = source.getSelectedIndex();
@@ -344,6 +367,7 @@
         populateRuleSetMenu();
 
         ruleSetMenu.addItemListener(new ItemListener() {
+            @Override
             public void itemStateChanged(ItemEvent e) {
                 ruleSetName = ruleSetMenu.getSelectedItem();
                 redisplay();
@@ -370,6 +394,7 @@
         final DemoApplet theApplet = applet;
         window.addWindowListener(
                 new WindowAdapter() {
+                    @Override
                     public void windowClosing(WindowEvent e) {
                         setVisible(false);
                         window.dispose();
@@ -383,13 +408,14 @@
     }
 
     void roll(int delta) {
-        theNumber += delta;
+        theNumber = theNumber.add(new BigDecimal(delta));
         redisplay();
     }
 
     void redisplay() {
         numberField.setText(numberFormatter.format(theNumber));
-        textField.setText(spelloutFormatter.format(theNumber, ruleSetName));
+        textField.setText(spelloutFormatter
+                .format(theNumber.scale() == 0 ? theNumber.longValue() : theNumber.doubleValue(), ruleSetName));
     }
 
     void makeNewSpelloutFormatter() {
@@ -444,7 +470,7 @@
 
     private boolean lenientParse = true;
 
-    private double theNumber = 0;
+    private BigDecimal theNumber = BigDecimal.ZERO;
 //    private boolean canEdit = true;
 
     private Choice formatterMenu;
@@ -471,6 +497,7 @@
         return text;
     }
 
+    @Override
     public void paint(Graphics g) {
         Font font = getFont();
         FontMetrics fm = g.getFontMetrics();
@@ -542,10 +569,12 @@
         add(sp, "ScrollPane");
     }
 
+    @Override
     public void addFocusListener(FocusListener l) {
         tf1.addFocusListener(l);
     }
 
+    @Override
     public void addKeyListener(KeyListener l) {
         tf1.addKeyListener(l);
     }
diff --git a/tools/cldr/cldr-to-icu/README.txt b/tools/cldr/cldr-to-icu/README.txt
index 1b5a493..ec9ce25 100644
--- a/tools/cldr/cldr-to-icu/README.txt
+++ b/tools/cldr/cldr-to-icu/README.txt
@@ -16,11 +16,23 @@
 Important directories
 ---------------------
 
-<CLDR_DIR>  = The top-level directory for the CLDR production data (typically
-              the "production" directory in the staging repository).
+CLDR_ROOT = The top-level direcetory for the CLDR project, containing CLDR
+            code and non-production data. Usually obtained from:
+            https://github.com/unicode-org/cldr
+
+CLDR_DIR  = The top-level directory for the CLDR production data (typically
+            the "production" directory in the staging repository). Usually
+            obtained from:
+            https://github.com/unicode-org/cldr-staging/tree/master/production
+
+In Posix systems, it's best to set these as exported shell variables, and any
+following instructions assume they have been set accordingly:
+
+$ export CLDR_ROOT=/path/to/cldr
+$ export CLDR_DIR=/path/to/cldr-staging/production
 
 Note that you should not attempt to use data from the CLDR project directory
-(were the CLDR API code exists) for conversion into ICU data. The process now
+(where the CLDR API code exists) for conversion into ICU data. The process now
 relies on a pre-processing step, and the CLDR data must come from the separate
 "staging" repository (i.e. https://github.com/unicode-org/cldr-staging) or be
 pre-processed locally into a different directory.
@@ -30,24 +42,28 @@
 -------------
 
 This project relies on the Maven build tool for managing dependencies and uses
-Ant for configuration purposes, so both will need to be installed. On a debian
+Ant for configuration purposes, so both will need to be installed. On a Debian
 based system, this should be as simple as:
 
 $ sudo apt-get install maven ant
 
-You also need to follow the instructions in lib/README.txt to install the CLDR
-JAR files, which contain the CLDR API used by these tools. This step will only
-need to be repeated if you update the code in the CLDR project you are using.
+You also need to install two additional CLDR JAR files in a local Maven
+repository, which can be achieved by either running:
+
+$ install-cldr-jars.sh "$CLDR_ROOT"
+
+from this directory, or following the instructions in lib/README.txt. This
+step must be repeated if you update the code in the CLDR project you are
+using, or are using multiple versions of the CLDR code during development.
 
 Generating all ICU data
 -----------------------
 
-$ export CLDR_DIR="<CLDR_DIR>"
 $ ant -f build-icu-data.xml
 
 
-Other Examples (assuming CLDR_DIR is set)
------------------------------------------
+Other Examples
+--------------
 
 * Outputting a subset of the supplemental data into a specified directory:
 
diff --git a/tools/cldr/cldr-to-icu/install-cldr-jars.sh b/tools/cldr/cldr-to-icu/install-cldr-jars.sh
new file mode 100755
index 0000000..aedcf9a
--- /dev/null
+++ b/tools/cldr/cldr-to-icu/install-cldr-jars.sh
@@ -0,0 +1,118 @@
+#!/bin/bash -u
+#
+#####################################################################
+### © 2020 and later: Unicode, Inc. and others.                   ###
+### License & terms of use: http://www.unicode.org/copyright.html ###
+#####################################################################
+#
+# This script will attempt to build and install the necessary CLDR JAR files
+# from a given CLDR installation root directory. The JAR files are installed
+# according to the manual instructions given in README.txt and lib/README.txt.
+#
+# The user must have installed both 'ant' and 'maven' in accordance with the
+# instructions in README.txt before attempting to run this script.
+#
+# Usage (from the directory of this script):
+#
+# ./install-cldr-jars.sh <CLDR-root-directory>
+
+# Exit with a message for fatal errors.
+function die() {
+  echo "$1"
+  echo "Exiting..."
+  exit 1
+} >&2
+
+# Runs a given command and captures output to the global log file.
+# If a command errors, the user can then view the log file.
+function run_with_logging() {
+  echo >> "${LOG_FILE}"
+  echo "Running: ${@}" >> "${LOG_FILE}"
+  echo "----------------------------------------------------------------" >> "${LOG_FILE}"
+  "${@}" >> "${LOG_FILE}" 2>&1
+  if (( $? != 0 )) ; then
+    echo "---- Previous command failed ----" >> "${LOG_FILE}"
+    echo "Error running: ${@}"
+    read -p "Show log file? " -n 1 -r
+    echo
+    if [[ "${REPLY}" =~ ^[Yy]$ ]] ; then
+      less -X "${LOG_FILE}"
+    fi
+    mv -f "${LOG_FILE}" "${ROOT_DIR}/last_log.txt"
+    echo "Log file: ${ROOT_DIR}/last_log.txt"
+    exit 1
+  fi
+  echo "---- Previous command succeeded ----" >> "${LOG_FILE}"
+}
+
+# First require that we are run from the same directory as the script.
+ROOT_DIR="$(realpath $(dirname $0))"
+if [[ "${ROOT_DIR}" != "$(realpath ${PWD})" ]] ; then
+  echo "WARNING: Shell script should be run from the project root directory"
+  echo "Current directory:"
+  echo "  ${PWD}"
+  echo "Project root direcory (where this script is):"
+  echo "  ${ROOT_DIR}"
+  read -p "Change to project root and continue? " -n 1 -r
+  echo
+  [[ "${REPLY}" =~ ^[Yy]$ ]] || die "Script must be run from the project root directory"
+  cd "$ROOT_DIR"
+fi
+
+# Check for some expected environmental things early.
+which ant > /dev/null || die "Cannot find Ant executable 'ant' in the current path."
+which mvn > /dev/null || die "Cannot find Maven executable 'mvn' in the current path."
+[[ -d "lib" ]] || die "Cannot find expected 'lib' directory in: $PWD"
+
+# Check there's one argument that points at a directory (or a symbolic link to a directory).
+(( $# == 1 )) && [[ -d "$1" ]] || die "Usage: ./install-cldr-jars.sh <CLDR-root-directory>"
+
+# Set up a log file (and be nice about tidying it up).
+LOG_FILE="$(tempfile)" || die "Cannot create temporary file!"
+trap "rm -f -- '${LOG_FILE}'" EXIT
+echo "---- LOG FILE ---- $(date '+%F %T') ----" >> "${LOG_FILE}"
+
+# Build the cldr.jar in the CLDR tools directory.
+CLDR_TOOLS_DIR="$1/tools/java"
+pushd "${CLDR_TOOLS_DIR}" > /dev/null || die "Cannot change directory to: ${CLDR_TOOLS_DIR}"
+
+echo "Building CLDR JAR file..."
+run_with_logging ant -f ./build.xml clean jar
+[[ -f "cldr.jar" ]] || die "Error creating cldr.jar file"
+[[ -f "libs/utilities.jar" ]] || die "Cannot find libs/utilities.jar"
+
+popd > /dev/null
+
+# Install both required CLDR jars in the lib/ directory.
+pushd "${ROOT_DIR}/lib" > /dev/null || die "Cannot change to lib directory"
+
+# The -B flag is "batch" mode and won't mess about with escape codes in the log file.
+echo "Installing CLDR JAR file..."
+run_with_logging mvn -B install:install-file \
+  -DgroupId=org.unicode.cldr \
+  -DartifactId=cldr-api \
+  -Dversion=0.1-SNAPSHOT \
+  -Dpackaging=jar \
+  -DgeneratePom=true \
+  -DlocalRepositoryPath=. \
+  -Dfile="${CLDR_TOOLS_DIR}/cldr.jar"
+
+echo "Installing CLDR utilities JAR file..."
+run_with_logging mvn -B install:install-file \
+  -DgroupId=com.ibm.icu \
+  -DartifactId=icu-utilities \
+  -Dversion=0.1-SNAPSHOT \
+  -Dpackaging=jar \
+  -DgeneratePom=true \
+  -DlocalRepositoryPath=. \
+  -Dfile="${CLDR_TOOLS_DIR}/libs/utilities.jar"
+
+popd > /dev/null
+
+# We are back in the root directory now.
+echo "Syncing local Maven repository..."
+run_with_logging mvn -B dependency:purge-local-repository -DsnapshotsOnly=true
+
+mv -f "${LOG_FILE}" "last_log.txt"
+echo "All done! (log file: last_log.txt)"
+trap - EXIT