This commit is contained in:
Reece Wilson 2021-06-04 19:30:11 +01:00
parent 5a75375222
commit 02aa1a021c
13593 changed files with 41834 additions and 4312969 deletions

View File

@ -1,80 +0,0 @@
# AppVeyor configuration for CI Builds of ICU4C.
image: Visual Studio 2017
platform: x64
# Don't clone the entire repo.
clone_depth: 10
# Cache things between builds to speed things up and save bandwidth.
cache:
- c:\icu-ci-cache
# Notes:
# - The VS2017 build is disabled (commented out) below, as we build both VS2015 and VS2017
# on Azure Pipelines instead, since that is much faster.
#
# - For the Cygwin build, the CYG_MIRROR URL used to use the "Cygwin Time Machine" archive
# in order to pull a previous version of Cygwin, v2.11.2-1 (with timestamp 1550062412).
# This was done as version 3 had issues and didn't build at all.
# The previous URL was:
# http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2019/02/13/045332
#
# In order to speed the builds up we use the "-X" or "--no-verify" option to skip checking
# the signatures on packages.
environment:
global:
ICU_CI_CACHE: c:\icu-ci-cache
CYG_URL: https://cygwin.com/setup-x86_64.exe
CYG_MIRROR: http://mirrors.kernel.org/sourceware/cygwin/
CYG_PACKAGES: automake,gcc-core,gcc-g++,make,pkg-config,perl,python3
CYG_ROOT: c:\cygwin-root
CYG_CACHE: '%ICU_CI_CACHE%\cygwin64-v3'
CYG_CACHED_SETUP: '%CYG_CACHE%\setup.exe'
matrix:
- BUILDSYSTEM: cygwin64-gcc
CC: gcc
CXX: g++
APPVEYOR_SAVE_CACHE_ON_ERROR: true
# - BUILDSYSTEM: VS2017
# configuration: Release
# APPVEYOR_CACHE_SKIP_RESTORE: true
# APPVEYOR_CACHE_SKIP_SAVE: true
for:
-
matrix:
only:
- BUILDSYSTEM: cygwin64-gcc
install:
- ps: >-
if ( !(Test-Path "${env:CYG_CACHED_SETUP}" -NewerThan (Get-Date).AddDays(-7)) )
{
Write-Host "Cached Cygwin setup does not exist or is older than 7 days, downloading from external site."
New-Item -Force -Type Directory $env:CYG_CACHE
Invoke-WebRequest $env:CYG_URL -OutFile $env:CYG_CACHED_SETUP
}
- cmd: >-
%CYG_CACHED_SETUP% --no-verify --quiet-mode --no-shortcuts --no-startmenu --no-desktop --upgrade-also --only-site --site "%CYG_MIRROR%" --root "%CYG_ROOT%" --local-package-dir "%CYG_CACHE%" --packages "%CYG_PACKAGES%"
# Check that we have a working Cygwin environment before building.
before_build:
- "%CYG_ROOT%\\bin\\sh -lc 'echo Hello'"
- "%CYG_ROOT%\\bin\\sh -lc 'uname -a'"
build_script:
- '%CYG_ROOT%\\bin\\bash -lc "cd $(cygpath ${APPVEYOR_BUILD_FOLDER}) && cd icu4c/source && ./runConfigureICU Cygwin && make check"'
# -
# matrix:
# only:
# - BUILDSYSTEM: VS2017
#
# build:
# project: icu4c/source/allinone/allinone.sln
#
# test_script:
# - icu4c/source/allinone/icucheck.bat x64 Release

View File

@ -1,75 +0,0 @@
# Azure Pipelines configuration for Exhaustive Tests for ICU.
#
# Note: The exhaustive test configuration is in a separate file
# so that it can be run independently from the regular builds.
#
# Only run the exhaustive tests on the master and maint branches, and
# also batch up any pending changes so that we will only have at most
# one build running at a given time (since they take a long time).
trigger:
batch: true
branches:
include:
- master
- maint/maint-*
paths:
include:
- '*'
exclude:
- .github/*
- .ci-builds/.azure-pipelines.yml
- .ci-builds/.azure-valgrind.yml
- docs/*
- tools/*
- vendor/*
- .appveyor.xml
- .cpyskip.txt
- .travis.yml
- KEYS
- README.md
jobs:
#-------------------------------------------------------------------------
# Note: The exhaustive tests can take more than 1 hour to complete.
- job: ICU4J_OpenJDK_Ubuntu_1604
displayName: 'J: Linux OpenJDK (Ubuntu 16.04)'
timeoutInMinutes: 120
pool:
vmImage: 'Ubuntu 16.04'
demands: ant
steps:
- checkout: self
lfs: true
fetchDepth: 10
- script: |
echo "Building ICU4J" && cd icu4j && ant init && ant exhaustiveCheck
displayName: 'Build and Exhaustive Tests'
env:
BUILD: ICU4J
- script: |
[ -d icu4j/out/junit-results ] && cd icu4j && cat `find out/junit-results -name "*.txt" -exec grep -l FAILED {} \;`
condition: failed() # only run if the build fails.
displayName: 'List failures (if any)'
timeoutInMinutes: 2
#-------------------------------------------------------------------------
# Note: The exhaustive tests can take more than 1 hour to complete.
- job: ICU4C_Clang_Exhaustive_Ubuntu_1604
displayName: 'C: Linux Clang Exhaustive Tests (Ubuntu 16.04)'
timeoutInMinutes: 120
pool:
vmImage: 'Ubuntu 16.04'
steps:
- checkout: self
lfs: true
fetchDepth: 10
- script: |
cd icu4c/source && ./runConfigureICU Linux && make -j2
displayName: 'Build'
- script: |
cd icu4c/source && make check-exhaustive
displayName: 'Exhaustive Tests'
env:
CC: clang
CXX: clang++
#-------------------------------------------------------------------------

View File

@ -1,395 +0,0 @@
# Azure Pipelines (VSTS) configuration for CI builds for ICU.
jobs:
#-------------------------------------------------------------------------
- job: ICU4J_OpenJDK_Ubuntu_1604
displayName: 'J: Linux OpenJDK (Ubuntu 16.04)'
timeoutInMinutes: 20
pool:
vmImage: 'ubuntu-16.04'
demands: ant
steps:
- checkout: self
lfs: true
fetchDepth: 10
- script: |
echo "Building ICU4J" && cd icu4j && ant init && ant check
displayName: 'Build and Test'
env:
BUILD: ICU4J
- script: |
[ -d icu4j/out/junit-results ] && cd icu4j && cat `find out/junit-results -name "*.txt" -exec grep -l FAILED {} \;`
condition: failed() # only run if the build fails.
displayName: 'List failures (if any)'
#-------------------------------------------------------------------------
- job: ICU4C_Clang_Ubuntu_1604
displayName: 'C: Linux Clang (Ubuntu 16.04)'
timeoutInMinutes: 30
pool:
vmImage: 'ubuntu-16.04'
steps:
- checkout: self
lfs: true
fetchDepth: 10
- script: |
cd icu4c/source && ./runConfigureICU Linux && make -j2 check
displayName: 'Build and Test'
env:
CC: clang
CXX: clang++
- script: |
cd icu4c/source/test/cintltst && LANG=C LD_LIBRARY_PATH=../../lib:../../tools/ctestfw ./cintltst /tsutil/cloctst/TestCDefaultLocale
displayName: 'Test C Default locale'
- script: |
cd icu4c/source/test/cintltst && LANG=C.UTF-8 LD_LIBRARY_PATH=../../lib:../../tools/ctestfw ./cintltst /tsutil/cloctst/TestCDefaultLocale
displayName: 'Test C.UTF-8 Default locale'
#-------------------------------------------------------------------------
- job: ICU4C_Clang_Ubuntu_1604_WarningsAsErrors
displayName: 'C: Linux Clang WarningsAsErrors (Ubuntu 16.04)'
timeoutInMinutes: 30
pool:
vmImage: 'ubuntu-16.04'
steps:
- checkout: self
lfs: true
fetchDepth: 10
- script: |
export CPPFLAGS="-Werror -Wall -Wextra -Wextra-semi -Wundef -Wnon-virtual-dtor" && cd icu4c/source && ./runConfigureICU Linux && make -j2 tests
displayName: 'Build only (WarningsAsErrors)'
env:
CC: clang
CXX: clang++
#-------------------------------------------------------------------------
- job: ICU4C_Clang_Ubuntu_DataFilter_1604
displayName: 'C: Linux Clang DataFilter (Ubuntu 16.04)'
timeoutInMinutes: 30
pool:
vmImage: 'ubuntu-16.04'
steps:
- checkout: self
lfs: true
fetchDepth: 10
- script: |
cd icu4c/source && \
ICU_DATA_FILTER_FILE=../../.ci-builds/data-filter.json ./runConfigureICU Linux && \
make -j2 tests && \
\[ ! -d data/out/build/icudt66l/translit \] && \
(cd test/intltest && LD_LIBRARY_PATH=../../lib:../../tools/ctestfw ./intltest translit/TransliteratorTest/TestBasicTransliteratorEvenWithoutData)
displayName: 'Build with Data Filter'
env:
CC: clang
CXX: clang++
#-------------------------------------------------------------------------
- job: ICU4C_Clang_Cpp14_Debug_Ubuntu_1804
displayName: 'C: Linux Clang C++14 Debug (Ubuntu 18.04)'
timeoutInMinutes: 30
pool:
vmImage: 'ubuntu-18.04'
steps:
- checkout: self
lfs: true
fetchDepth: 10
- script: |
export CXXFLAGS="-std=c++14 -Winvalid-constexpr" && cd icu4c/source && ./runConfigureICU --enable-debug --disable-release Linux --disable-layout --disable-layoutex && make -j2 check
displayName: 'Build and Test C++14'
env:
CC: clang
CXX: clang++
#-------------------------------------------------------------------------
- job: ICU4C_GCC_Ubuntu_2004
displayName: 'C: Linux GCC (Ubuntu 20.04)'
timeoutInMinutes: 30
pool:
vmImage: 'ubuntu-20.04'
steps:
- checkout: self
lfs: true
fetchDepth: 10
- script: |
cd icu4c/source && ./runConfigureICU Linux && make -j2 check
displayName: 'Build and Test'
env:
CC: gcc
CXX: g++
#-------------------------------------------------------------------------
# VS 2019 Builds
#-------------------------------------------------------------------------
- job: ICU4C_MSVC_x64_Release_Distrelease
displayName: 'C: MSVC 64-bit Release (VS 2019) + Distrelease'
timeoutInMinutes: 30
pool:
vmImage: 'windows-2019'
demands:
- msbuild
- visualstudio
- Cmd
steps:
- checkout: self
lfs: true
fetchDepth: 10
- task: VSBuild@1
displayName: 'Build Solution'
inputs:
solution: icu4c/source/allinone/allinone.sln
platform: x64
configuration: Release
- task: BatchScript@1
displayName: 'Run Tests (icucheck.bat)'
inputs:
filename: icu4c/source/allinone/icucheck.bat
arguments: 'x64 Release'
- task: PowerShell@2
displayName: 'PowerShell: Distrelease script (x64)'
inputs:
targetType: filePath
filePath: 'icu4c/packaging/distrelease.ps1'
arguments: '-arch x64'
workingDirectory: icu4c
- task: PublishBuildArtifacts@1
displayName: 'Publish x64 Artifacts: icu-windows.zip'
inputs:
PathtoPublish: 'icu4c/source/dist/icu-windows.zip'
ArtifactName: '$(Build.BuildNumber)_ICU4C_MSVC_x64_Release'
#-------------------------------------------------------------------------
- job: ICU4C_MSVC_x86_Release_Distrelease
displayName: 'C: MSVC 32-bit Release (VS 2019) + Distrelease'
timeoutInMinutes: 30
pool:
vmImage: 'windows-2019'
demands:
- msbuild
- visualstudio
- Cmd
steps:
- checkout: self
lfs: true
fetchDepth: 10
- task: VSBuild@1
displayName: 'Build Solution'
inputs:
solution: icu4c/source/allinone/allinone.sln
platform: Win32
configuration: Release
- task: BatchScript@1
displayName: 'Run Tests (icucheck.bat)'
inputs:
filename: icu4c/source/allinone/icucheck.bat
arguments: 'x86 Release'
- task: PowerShell@2
displayName: 'PowerShell: Distrelease script (x86)'
inputs:
targetType: filePath
filePath: 'icu4c/packaging/distrelease.ps1'
arguments: '-arch x86'
workingDirectory: icu4c
- task: PublishBuildArtifacts@1
displayName: 'Publish x86 Artifacts: icu-windows.zip'
inputs:
PathtoPublish: 'icu4c/source/dist/icu-windows.zip'
ArtifactName: '$(Build.BuildNumber)_ICU4C_MSVC_x86_Release'
#-------------------------------------------------------------------------
- job: ICU4C_MSVC_x64_ARM32_ARM64_Release_Distrelease
displayName: 'C: MSVC x64 ARM32 ARM64 Release (VS 2019) + Distrelease ARM64'
timeoutInMinutes: 60
pool:
vmImage: 'windows-2019'
demands:
- msbuild
- visualstudio
- Cmd
steps:
- checkout: self
lfs: true
fetchDepth: 10
- task: VSBuild@1
displayName: 'Build Solution'
inputs:
solution: icu4c/source/allinone/allinone.sln
platform: x64
configuration: Release
- task: VSBuild@1
displayName: 'Build ARM32'
inputs:
solution: icu4c/source/allinone/allinone.sln
platform: ARM
configuration: Release
- task: VSBuild@1
displayName: 'Build ARM64'
inputs:
solution: icu4c/source/allinone/allinone.sln
platform: ARM64
configuration: Release
- task: PowerShell@2
displayName: 'PowerShell: Distrelease script (ARM64)'
inputs:
targetType: filePath
filePath: 'icu4c/packaging/distrelease.ps1'
arguments: '-arch ARM64'
workingDirectory: icu4c
- task: PublishBuildArtifacts@1
displayName: 'Publish ARM64 Artifacts: icu-windows.zip'
inputs:
PathtoPublish: 'icu4c/source/dist/icu-windows.zip'
ArtifactName: '$(Build.BuildNumber)_ICU4C_MSVC_ARM64_Release'
#-------------------------------------------------------------------------
- job: ICU4C_MSVC_x64_ARM64_Debug
displayName: 'C: MSVC x64 ARM64 Debug (VS 2019)'
timeoutInMinutes: 45
pool:
vmImage: 'windows-2019'
demands:
- msbuild
- visualstudio
- Cmd
steps:
- checkout: self
lfs: true
fetchDepth: 10
- task: VSBuild@1
displayName: 'Build Solution'
inputs:
solution: icu4c/source/allinone/allinone.sln
platform: x64
configuration: Debug
- task: BatchScript@1
displayName: 'Run x64 Debug Tests (icucheck.bat)'
inputs:
filename: icu4c/source/allinone/icucheck.bat
arguments: 'x64 Debug'
- task: VSBuild@1
displayName: 'Build ARM64 Debug'
inputs:
solution: icu4c/source/allinone/allinone.sln
platform: ARM64
configuration: Debug
#-------------------------------------------------------------------------
# VS 2017 Builds
#-------------------------------------------------------------------------
- job: ICU4C_MSVC_x64_Release_VS2017
displayName: 'C: MSVC 64-bit Release (VS 2017)'
timeoutInMinutes: 30
pool:
vmImage: 'vs2017-win2016'
demands:
- msbuild
- visualstudio
- Cmd
steps:
- checkout: self
lfs: true
fetchDepth: 10
- task: VSBuild@1
displayName: 'Build Solution'
inputs:
solution: icu4c/source/allinone/allinone.sln
platform: x64
configuration: Release
- task: BatchScript@1
displayName: 'Run Tests (icucheck.bat)'
inputs:
filename: icu4c/source/allinone/icucheck.bat
arguments: 'x64 Release'
#-------------------------------------------------------------------------
- job: ICU4C_MSVC_x86_Debug_VS2017
displayName: 'C: MSVC 32-bit Debug (VS 2017)'
timeoutInMinutes: 60
pool:
vmImage: 'vs2017-win2016'
demands:
- msbuild
- visualstudio
- Cmd
steps:
- checkout: self
lfs: true
fetchDepth: 10
- task: VSBuild@1
displayName: 'Build Solution'
inputs:
solution: icu4c/source/allinone/allinone.sln
platform: Win32
configuration: Debug
- task: BatchScript@1
displayName: 'Run Tests (icucheck.bat)'
inputs:
filename: icu4c/source/allinone/icucheck.bat
arguments: 'x86 Debug'
#-------------------------------------------------------------------------
# VS2019 using the VS2015 toolset
#-------------------------------------------------------------------------
- job: ICU4C_MSVC_x64_Release_VS2015
displayName: 'C: MSVC 64-bit Release (VS 2015)'
timeoutInMinutes: 30
pool:
vmImage: 'windows-2019'
demands:
- msbuild
- visualstudio
- Cmd
steps:
- checkout: self
lfs: true
fetchDepth: 10
- task: VSBuild@1
displayName: 'Build Solution'
inputs:
solution: icu4c/source/allinone/allinone.sln
platform: x64
configuration: Release
msbuildArgs: /p:SkipUWP=true /p:DefaultPlatformToolset=v140 /p:AutodetectWin10SDK=true
- task: BatchScript@1
displayName: 'Run Tests (icucheck.bat)'
inputs:
filename: icu4c/source/allinone/icucheck.bat
arguments: 'x64 Release'
#-------------------------------------------------------------------------
- job: ICU4C_MSYS2_GCC_x86_64_Release
displayName: 'C: MSYS2 GCC x86_64 Release'
timeoutInMinutes: 45
pool:
vmImage: 'vs2017-win2016'
demands:
- Cmd
steps:
- checkout: self
lfs: true
fetchDepth: 10
- script: |
choco install -y msys2
rem refreshenv
displayName: 'Install MSYS2'
- script: |
c:\tools\msys64\usr\bin\bash.exe -lc "echo 'Hello World' && uname -a"
c:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -S mingw-w64-x86_64-toolchain"
c:\tools\msys64\usr\bin\bash.exe -lc "pacman --noconfirm -S make"
exit
displayName: 'Install mingw-w64-x86_64-toolchain'
- script: |
set MSYSTEM=MINGW64
c:\tools\msys64\usr\bin\bash.exe -lc "cd $BUILD_SOURCESDIRECTORY && cd icu4c/source && ./runConfigureICU MinGW --prefix='/tmp/build-icu' && make -j2 check"
displayName: 'Build and Test'
- script: |
set MSYSTEM=MINGW64
c:\tools\msys64\usr\bin\bash.exe -lc "cd $BUILD_SOURCESDIRECTORY && cd icu4c/source && make install && cd /tmp/build-icu && echo 'Recursive ls' && ls -lR"
displayName: 'make install'
- script: |
set MSYSTEM=MINGW64
c:\tools\msys64\usr\bin\bash.exe -lc "echo 'Run icuinfo from MSYS shell' && cd /tmp/build-icu/bin && ./icuinfo.exe"
echo 'Run icuinfo from CMD shell' && cd /d C:\tools\msys64\tmp\build-icu\bin && set PATH=C:\tools\msys64\mingw64\bin;%PATH% && icuinfo.exe"
displayName: 'run icuinfo'
#-------------------------------------------------------------------------
- job: ICU4C_Clang_MacOSX_WarningsAsErrors
displayName: 'C: macOSX Clang WarningsAsErrors (Mojave 10.14)'
timeoutInMinutes: 30
pool:
vmImage: 'macOS-10.14'
steps:
- checkout: self
lfs: true
fetchDepth: 10
- script: |
export CPPFLAGS="-Werror -Wall -Wextra -Wextra-semi -Wundef -Wnon-virtual-dtor" && cd icu4c/source && ./runConfigureICU MacOSX && make -j2 check
displayName: 'Build and Test (WarningsAsErrors)'
env:
CC: clang
CXX: clang++

View File

@ -1,73 +0,0 @@
# Azure Pipelines configuration for Valgrind for ICU4C.
#
# Note: The valgrind test configuration is in a separate file
# so that it can be run independently from the regular builds.
#
# The Ubuntu images don't have valgrind installed by default, so we need
# install it first.
#
# Only run valgrind on the master and maint branches, and
# batch up any pending changes so that we will only have at most
# one build running at a given time (since it takes time).
trigger:
batch: true
branches:
include:
- master
- maint/maint-*
paths:
include:
- '*'
exclude:
- docs/*
- icu4j/*
- tools/*
- vendor/*
- .appveyor.xml
- .cpyskip.txt
- .travis.yml
- KEYS
- README.md
jobs:
#-------------------------------------------------------------------------
- job: ICU4C_Clang_Valgrind_Ubuntu_1604
displayName: 'C: Linux Clang Valgrind (Ubuntu 16.04)'
timeoutInMinutes: 60
pool:
vmImage: 'Ubuntu 16.04'
steps:
- checkout: self
lfs: true
fetchDepth: 10
- script: |
set -ex
sudo apt -y update
sudo apt install -y valgrind
displayName: 'Install valgrind'
timeoutInMinutes: 5
- script: |
cd icu4c/source && ./runConfigureICU --enable-debug Linux --disable-renaming --disable-layout --disable-layoutex && make -j2 tests
displayName: 'Build'
timeoutInMinutes: 10
env:
CC: clang
CXX: clang++
- script: |
cd icu4c/source/test/intltest && LD_LIBRARY_PATH=../../lib:../../stubdata:../../tools/ctestfw:$LD_LIBRARY_PATH valgrind --tool=memcheck --error-exitcode=1 --leak-check=full --show-reachable=yes ./intltest
displayName: 'Valgrind intltest'
timeoutInMinutes: 45
- script: |
cd icu4c/source/test/cintltst && LD_LIBRARY_PATH=../../lib:../../stubdata:../../tools/ctestfw:$LD_LIBRARY_PATH valgrind --tool=memcheck --error-exitcode=1 --leak-check=full --show-reachable=yes ./cintltst
displayName: 'Valgrind cintltst'
timeoutInMinutes: 15
- script: |
cd icu4c/source/test/iotest && LD_LIBRARY_PATH=../../lib:../../stubdata:../../tools/ctestfw:$LD_LIBRARY_PATH valgrind --tool=memcheck --error-exitcode=1 --leak-check=full --show-reachable=yes ./iotest
displayName: 'Valgrind iotest'
timeoutInMinutes: 5
- script: |
cd icu4c/source/tools/icuinfo && LD_LIBRARY_PATH=../../lib:../../stubdata:../../tools/ctestfw:$LD_LIBRARY_PATH valgrind --tool=memcheck --error-exitcode=1 --leak-check=full --show-reachable=yes ./icuinfo
displayName: 'Valgrind icuinfo'
timeoutInMinutes: 5
#-------------------------------------------------------------------------

View File

@ -1,49 +0,0 @@
{
"localeFilter": {
"filterType": "locale",
"whitelist": [
"en",
"de",
"zh"
]
},
// Test mixed feature filter and resource filter
// Exclude translit data so we can run test for ICU-20673
// Also test for "whitelist" versus "includelist"
"featureFilters": {
"misc": {
"whitelist": ["supplementalData"]
},
"translit": "exclude",
"curr_tree": {
"filterType": "locale",
"includelist": ["my"]
},
"brkitr_rules": {
"excludelist": ["line"]
},
"brkitr_dictionaries": {
"blacklist": ["cjdict"]
}
},
"resourceFilters": [
{
"categories": ["misc"],
"files": {
"includelist": ["supplementalData"]
},
"rules": ["+/*"]
}
],
// Test fileReplacements (relative path)
"fileReplacements": {
"directory": "$SRC",
"replacements": [
{
"src": "brkitr/rules/line.txt",
"dest": "brkitr/rules/line_normal.txt"
},
"misc/dayPeriods.txt"
]
}
}

View File

@ -1,113 +0,0 @@
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (c) 2005-2011 International Business Machines
# Corporation and others. All Rights Reserved.
## see NOTE below.
## Also see: http://icu-project.org/copyright-scan.html
#
# git stuff
# .git is ignored by code.
#.git/*
.github/*
.gitignore
.gitattributes
.travis.yml
.appveyor.yml
.ci-builds/*
# PGP Keys
KEYS
# suffix matches - start with '*'. They are turned into as RE, '.brk$'
*.brk
*.bz2
*.classpath
*.csproj
*.cvsignore
*.dat
*.DS_Store
*.doc
*.gif
*.gz
*.ico
*.icu
*.intaglio
*.jar
*.jpg
*.launch
*.nrm
*.odp
*.otf
*.pdf
*.png
*.ppt
*.prefs
*.project
*.res
*.rtf
*.sln
*.sxd
*.sxg
*.sxw
*.tri2
*.vcproj
*.vcxproj
*.vcxproj.filters
*.zip
# UnicodeData.txt does not have any header.
*/UnicodeData.txt
#
# ICU4C
#
icu4c/source/aclocal.m4
icu4c/source/config.guess
icu4c/source/config.log
icu4c/source/config.status
icu4c/source/config.sub
icu4c/source/install-sh
icu4c/source/extra/uconv/samples/*
icu4c/source/samples/layout/Sample.txt
icu4c/source/samples/ucnv/data01.txt
icu4c/source/samples/ufortune/resources/res-file-list.txt
icu4c/source/test/fuzzer/*_seed_corpus.txt
icu4c/source/test/testdata/ConverterSelectorTestUTF8.txt
icu4c/source/test/testdata/encoded.utf16be
icu4c/source/test/testdata/idna_conf.txt
icu4c/source/test/testdata/ra.xlf
icu4c/source/test/testdata/re_tests.txt
icu4c/source/test/thaitest/space.txt
icu4c/source/tools/tzcode/asctime.c
icu4c/source/tools/tzcode/ialloc.c
icu4c/source/tools/tzcode/localtime.c
icu4c/source/tools/tzcode/private.h
icu4c/source/tools/tzcode/scheck.c
icu4c/source/tools/tzcode/tzfile.h
icu4c/source/tools/tzcode/tzselect.ksh
icu4c/source/tools/tzcode/zdump.c
icu4c/source/tools/tzcode/zic.c
#
# ICU4J
#
icu4j/eclipse-build/pdebuild/allElements.xml
icu4j/eclipse-build/pdebuild/customTargets.xml
icu4j/main/tests/core/src/com/ibm/icu/dev/data/IDNATestInput.txt
icu4j/main/tests/core/src/com/ibm/icu/dev/data/unicode/confusablesWholeScript.txt
icu4j/main/tests/core/src/com/ibm/icu/dev/data/unicode/UnicodeData.txt
icu4j/main/tests/core/src/com/ibm/icu/dev/test/duration/testdata/*
icu4j/perf-tests/data/conversion/*
#
# docs
#
docs/ide4c/vscode/*.json
docs/Gemfile.lock
#
# tools
#
tools/trac/IcuCodeTools/*
tools/unicodetools/*
#
# vendor
#
vendor/double-conversion/upstream/*

86
.gitattributes vendored
View File

@ -1,86 +0,0 @@
# The line "* text=auto !eol" means the following:
# For text files (auto-detected), EOLs will be converted on checkout to OS-dependent EOL (LF for Unix, CRLF for Windows).
# No EOL (end of line) conversion for binary files.
* text=auto !eol
# Note:
# "text" tells git the file is text.
# "-text" tells git the file is binary.
# The only difference between the two is that git will do EOL conversion for text files.
# "!eol" is the equivalent of "svneol=native".
*.bat text !eol
*.c text !eol diff=cpp
*.cc text !eol diff=cpp
*.classpath text !eol
*.cmd text eol=crlf
*.cpp text !eol diff=cpp
*.css text !eol diff=css
*.dsp text !eol
*.dsw text !eol
*.dtd text !eol
*.el text !eol
*.filters text !eol
*.h text !eol diff=cpp
*.htm text !eol diff=html
*.html text !eol diff=html
*.in text !eol
*.java text !eol diff=java
*.launch text !eol
*.m4 text !eol
*.mak text !eol
*.md text !eol
*.MF text !eol
*.mk text !eol
*.pl text !eol diff=perl
*.pm text !eol diff=perl
*.project text !eol
*.properties text !eol
*.props text !eol
*.py text !eol diff=python
*.rc text !eol
*.sh text eol=lf
*.sed text eol=lf
*.sln text !eol
*.stub text !eol
*.targets text !eol
*.txt text !eol
*.ucm text !eol
*.vcproj text !eol
*.vcxproj text !eol
*.xml text !eol
*.xsl text !eol
*.xslt text !eol
AUTHORS text !eol
BUILD text !eol
COPYING text !eol
Changelog text !eol
LICENSE text !eol
Makefile text !eol
README text !eol
SConscript text !eol
SConstruct text !eol
configure text !eol
# Explicitly set the following file types as binary files.
*.bin -text
*.brk -text
*.cnv -text
*.icu -text
*.res -text
*.nrm -text
*.spp -text
*.tri2 -text
*.otf -text
*.utf16be -text
# The following file types are stored in Git-LFS.
# Only .jars
*.jar filter=lfs diff=lfs merge=lfs -text
# Enable syntax highlighting on GitHub.com
.cpyskip.txt linguist-language=Ignore-List
# Use JSONC for syntax highlighting on GitHub.com
*.json linguist-language=jsonc

View File

@ -1,18 +0,0 @@
<!--
Thank you for your pull request.
Please see http://site.icu-project.org/processes/contribute for general
information on contributing to ICU.
You will be automatically asked to sign the contributors license before the PR is accepted.
- sign: https://cla-assistant.io/unicode-org/icu
- license: http://www.unicode.org/copyright.html
-->
##### Checklist
- [ ] Issue filed: https://unicode-org.atlassian.net/browse/ICU-_____
- [ ] Updated PR title and link in previous line to include Issue number
- [ ] Issue accepted
- [ ] Tests included
- [ ] Documentation is changed or added

View File

@ -1,40 +0,0 @@
name: Publish icu4j.jar/utilities.jar to GH Maven
on:
release:
types: [created]
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
lfs: true
- uses: actions/setup-java@v1
with:
java-version: 1.8
- name: icu4j ant releaseCLDR
run: ant -noinput releaseCLDR -f icu4j/build.xml
- name: deploy it
run: |
MYVERSION=$(sed -n -e 's%^\s*maven.pom.ver[ =]*%%p' < icu4j/build.properties)-$(echo ${GITHUB_REF} | cut -d/ -f3- | tr ./ _-)
echo Github Ref ${GITHUB_REF} @ ${GITHUB_SHA}, version ${MYVERSION}
mvn deploy:deploy-file -DgroupId=com.ibm.icu \
-DartifactId=icu4j-for-cldr \
-Dversion=${MYVERSION} \
-Dpackaging=jar \
-Dfile=icu4j/release_cldr/icu4j.jar \
-Dsources=icu4j/release_cldr/icu4j-src.jar \
-DrepositoryId=github \
-Durl=https://maven.pkg.github.com/${GITHUB_REPOSITORY}
mvn deploy:deploy-file -DgroupId=com.ibm.icu \
-DartifactId=utilities-for-cldr \
-Dversion=${MYVERSION} \
-Dpackaging=jar \
-Dfile=icu4j/release_cldr/utilities.jar \
-Dsources=icu4j/release_cldr/utilities-src.jar \
-DrepositoryId=github \
-Durl=https://maven.pkg.github.com/${GITHUB_REPOSITORY}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Note: can use 0.0.0-${GITHUB_SHA} as the version for hash-based.
# i.e. build on every commit

280
.gitignore vendored
View File

@ -1,280 +0,0 @@
# 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
# Directories
.idea/
.vs/
.vscode/
ARM/
ARM64/
Debug/
Generated[!!-~]Files/
Release/
__pycache__/
arm/
arm64/
bin/
debug/
doc/
lib/
!tools/cldr/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
icu4c/binARM64
icu4c/bin64uwp
icu4c/binARMUWP
icu4c/binARM64UWP
icu4c/commondata
icu4c/include
icu4c/libARM
icu4c/lib32uwp
icu4c/lib64
icu4c/libARM64
icu4c/lib64uwp
icu4c/libARMuwp
icu4c/libARM64uwp
icu4c/source/Doxyfile
icu4c/source/README
icu4c/source/autom4te.cache
icu4c/source/common/common.res
icu4c/source/common/icucfg.h
icu4c/source/common/svchook.mk
icu4c/source/config.cache
icu4c/source/config.log
icu4c/source/config.status
icu4c/source/config/Makefile.inc
icu4c/source/config/icu-config
icu4c/source/config/icu-config.1
icu4c/source/config/icu.pc
icu4c/source/config/icucross.inc
icu4c/source/config/icucross.mk
icu4c/source/config/icuinfo.xml
icu4c/source/configure-local.mk
icu4c/source/data/build-dir
icu4c/source/data/build-local
icu4c/source/data/data
icu4c/source/data/obj
icu4c/source/data/packagedata
icu4c/source/data/uni-core-data
icu4c/source/dist
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/pkgdatain.txt
icu4c/source/extra/uconv/uconv
icu4c/source/extra/uconv/uconv.1
icu4c/source/extra/uconv/uconv.plg
icu4c/source/extra/uconv/uconvmsg
icu4c/source/i18n/i18n.res
icu4c/source/icudefs.local
icu4c/source/icudefs.mk
icu4c/source/io/io.res
icu4c/source/layoutex/layoutex.res
icu4c/source/samples/all/all.ncb
icu4c/source/samples/all/all.suo
icu4c/source/samples/break/break
icu4c/source/samples/break/break.exe
icu4c/source/samples/cal/icucal
icu4c/source/samples/cal/icucal.exe
icu4c/source/samples/case/case
icu4c/source/samples/case/case.exe
icu4c/source/samples/citer/citer
icu4c/source/samples/citer/citer.exe
icu4c/source/samples/csdet/csdet
icu4c/source/samples/csdet/csdet.exe
icu4c/source/samples/date/icudate
icu4c/source/samples/date/icudate.exe
icu4c/source/samples/datefmt/datefmt
icu4c/source/samples/msgfmt/msgfmt
icu4c/source/samples/numfmt/numfmt
icu4c/source/samples/numfmt/numfmt.exe
icu4c/source/samples/props/props
icu4c/source/samples/props/props.exe
icu4c/source/samples/translit/translit
icu4c/source/samples/translit/translit.exe
icu4c/source/samples/uciter8/uciter8
icu4c/source/samples/uciter8/uciter8.exe
icu4c/source/samples/ucnv/convsamp
icu4c/source/samples/ucnv/data40.utf16
icu4c/source/samples/udata/reader
icu4c/source/samples/udata/reader.exe
icu4c/source/samples/udata/writer
icu4c/source/samples/udata/writer.exe
icu4c/source/samples/ufortune/ufortune
icu4c/source/samples/ufortune/ufortune.exe
icu4c/source/samples/ugrep/ugrep
icu4c/source/samples/ugrep/ugrep.exe
icu4c/source/samples/uresb/uresb
icu4c/source/samples/uresb/uresb.exe
icu4c/source/samples/ustring/ustring
icu4c/source/samples/ustring/ustring.exe
icu4c/source/stubdata/stubdatabuilt.txt
icu4c/source/test/cintltst/cintltst
icu4c/source/test/cintltst/cintltst.exe
icu4c/source/test/intltest/intltest
icu4c/source/test/intltest/intltest.exe
icu4c/source/test/iotest/iotest
icu4c/source/test/iotest/iotest.exe
icu4c/source/test/letest/letest
icu4c/source/test/letest/letest.exe
icu4c/source/test/perf/DateFmtPerf/DateFmtPerf
icu4c/source/test/perf/DateFmtPerf/DateFmtPerf.d
icu4c/source/test/perf/charperf/charperf
icu4c/source/test/perf/collationperf/collperf
icu4c/source/test/perf/collationperf/collperf.exe
icu4c/source/test/perf/collperf/collperf
icu4c/source/test/perf/collperf2/collperf2
icu4c/source/test/perf/collperf2/collperf2.d
icu4c/source/test/perf/howExpensiveIs/howExpensiveIs
icu4c/source/test/perf/normperf/normperf
icu4c/source/test/perf/perldriver/Common.pl
icu4c/source/test/perf/ubrkperf/ubrkperf
icu4c/source/test/perf/unisetperf/unisetperf
icu4c/source/test/perf/usetperf/usetperf
icu4c/source/test/perf/ustrperf/charperf
icu4c/source/test/perf/ustrperf/stringperf
icu4c/source/test/perf/utfperf/utfperf
icu4c/source/test/perf/utrie2perf/utrie2perf
icu4c/source/test/perf/utrie2perf/utrie2perf.d
icu4c/source/test/testmap/testmap
icu4c/source/test/testmap/testmap.plg
icu4c/source/tools/genbrk/genbrk
icu4c/source/tools/genbrk/genbrk.1
icu4c/source/tools/genccode/genccode
icu4c/source/tools/genccode/genccode.8
icu4c/source/tools/gencfu/gencfu
icu4c/source/tools/gencfu/gencfu.1
icu4c/source/tools/gencfu/gencfu.exe
icu4c/source/tools/gencmn/gencmn
icu4c/source/tools/gencmn/gencmn.8
icu4c/source/tools/gencmn/gencmn.[0-9]
icu4c/source/tools/gencnval/gencnval
icu4c/source/tools/gencnval/gencnval.1
icu4c/source/tools/gencnval/gencnval.[0-9]
icu4c/source/tools/gencolusb/extract_unsafe_backwards
icu4c/source/tools/gencolusb/verify_uset
icu4c/source/tools/gennorm2/gennorm2
icu4c/source/tools/gennorm2/gennorm2.[0-9]
icu4c/source/tools/genrb/derb
icu4c/source/tools/genrb/derb.[0-9]
icu4c/source/tools/genrb/genrb
icu4c/source/tools/genrb/genrb.[0-9]
icu4c/source/tools/genrb/temp
icu4c/source/tools/genren/ICUunrenamed
icu4c/source/tools/gensprep/gensprep
icu4c/source/tools/gensprep/gensprep.[0-9]
icu4c/source/tools/gensprep/gensprep.plg
icu4c/source/tools/gentest/gentest
icu4c/source/tools/gentest/gentest.exe
icu4c/source/tools/icuinfo/icuinfo
icu4c/source/tools/icuinfo/icuinfo.exe
icu4c/source/tools/icupkg/icupkg
icu4c/source/tools/icupkg/icupkg.[0-9]
icu4c/source/tools/icuswap/icuswap
icu4c/source/tools/icuswap/icuswap.[0-9]
icu4c/source/tools/makeconv/makeconv
icu4c/source/tools/makeconv/makeconv.[0-9]
icu4c/source/tools/pkgdata/pkgdata
icu4c/source/tools/pkgdata/pkgdata.[0-9]
icu4c/source/uconfig.h.prepend
icu4j/.project
icu4j/eclipse
tools/multi/proj/icu4cscan/cooked
tools/multi/proj/icu4cscan/dtdcache
tools/multi/proj/icu4cscan/jxml
tools/multi/proj/icu4cscan/xml
tools/release/c/uconfigtest
tools/release/c/uconfigtest.local
tools/release/java/classes
tools/unicode/c/genprops/genprops
tools/unicode/c/genprops/genprops.[0-9]
tools/unicode/c/genuca/genuca
tools/unicode/c/genuca/genuca.8
tools/unicode/c/icudefs.txt

View File

@ -1,203 +0,0 @@
matrix:
include:
# ICU4C Docs Build
# TODO: publish the latest built docs from master on GitHub pages.
# See https://gist.github.com/vidavidorra/548ffbcdae99d752da02 for ideas.
- name: "c: docs"
dist: xenial
language: cpp
addons:
apt:
update: true
packages:
- doxygen
before_script:
- cd icu4c/source
- ./runConfigureICU Linux --disable-renaming
script:
# fail if 'warning:' appears in doxygen's output, but ignore warnings from file Doxyfile.
# The Doxygen version from Travis is down-rev, and doesn't recognize some options
# in the Doxyfile config file.
# Regex note: (?! ... ) is a negative lookahead. Succeed if the pattern is not present.
- set +o pipefail && make doc 2>&1 | tee doxygen.log && ( ! grep -P 'warning:(?! .* file Doxyfile)' doxygen.log )
- name: "j"
language: java
addons:
apt:
packages:
- ant
- ant-optional
env: BUILD=ICU4J
before_script:
- cd icu4j
- ant init
script:
- ant check
after_failure:
- cat `find out/junit-results -name "*.txt" -exec grep -l FAILED {} \;`
- name: "c: linux gcc 8 Wextra"
dist: bionic
language: cpp
addons:
apt:
packages:
- g++-8
env: PREFIX=/tmp/icu-prefix CC=gcc-8 CXX=g++-8 CXXFLAGS="-Wextra"
before_script:
- mkdir build
- cd build
- ../icu4c/source/runConfigureICU Linux --disable-debug --enable-release --disable-layoutex --prefix="${PREFIX}" || (tail -100 config.log ; false)
- make -j2
script:
- make -j2 check
- make install
- PATH="${PREFIX}/bin:$PATH" make -C test/hdrtst check
# gcc debug build.
# Includes dependency checker.
# Note - the dependency checker needs to be run on both a debug and an optimized build.
# This one (gcc) for debug, and linux clang (below) for optimized.
#
# Test both out-of-source and in-source builds. This one (gcc) for out-of-source,
# and linux clang (below) for in-source.
#
# Invokes test/hdrtst to check public headers compliance.
- name: "c: linux gcc (debug)"
dist: xenial
language: cpp
compiler: gcc
env: PREFIX=/tmp/icu-prefix
before_script:
- mkdir build
- cd build
- ../icu4c/source/runConfigureICU --enable-debug --disable-release Linux --prefix="${PREFIX}" --enable-tracing
- make -j2
script:
- make -j2 check
- ( cd ../icu4c/source/test/depstest && ./depstest.py ../../../../build/ )
- make install
- PATH="${PREFIX}/bin:$PATH" make -C test/hdrtst check
# clang release build with some options to enforce useful constraints.
# Includes dependency checker on an in-source, optimized build.
# Includes checking @draft etc. API tags vs. ifndef guards like
# U_HIDE_DRAFT_API and U_FORCE_HIDE_DRAFT_API.
# (FORCE guards make this tool pass but won't compile to working code.
# See the testtagsguards.sh script for details.)
- name: "c: linux clang"
dist: xenial
language: cpp
env:
- CPPFLAGS="-DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1"
- CFLAGS="-Wimplicit-fallthrough"
- CXXFLAGS="-Wimplicit-fallthrough"
compiler: clang
before_install:
- sudo apt-get -y install doxygen # for make dist
before_script:
- cd icu4c/source
- ./runConfigureICU Linux
- make -j2
script:
- make -j2 check
- ( cd test/depstest && python3 depstest.py ../../../source/ )
- ( cd .. && source/test/hdrtst/testtagsguards.sh )
- make dist # not sure if this is -j safe everywhere.
- name: "c: osx clang"
language: cpp
env: BUILD=MACINTOSH
os: osx
compiler: clang
# Use the macOS target to test Python 2 in data build script.
# TODO(ICU-20301): Change this back to the default Python version 3.
script: cd icu4c/source && PYTHON=python2 ./runConfigureICU MacOSX && make -j2 check
# out of source gcc 8 build with c++14, runs icuinfo
- name: "c: linux gcc 8 c++14"
dist: bionic
language: cpp
addons:
apt:
packages:
- g++-8
env: PREFIX=/tmp/icu-prefix CC=gcc-8 CXX=g++-8 CXXFLAGS="-std=c++14"
before_script:
- mkdir build && cd build
- ../icu4c/source/runConfigureICU Linux --disable-layout --disable-layoutex --prefix="${PREFIX}"
- make -j2
script:
- make -j2 check && make install
- cd "${PREFIX}/bin" && LD_LIBRARY_PATH=../lib ./icuinfo
# Clang Linux with address sanitizer.
# Note - the 'sudo: true' option forces Travis to use a Virtual machine on GCE instead of
# a Container on EC2 or Packet. Asan builds of ICU fail otherwise.
- name: "c: linux asan (debug)"
language: cpp
env:
- CPPFLAGS="-fsanitize=address"
- LDFLAGS="-fsanitize=address"
os: linux
dist: xenial
sudo: true
compiler: clang
before_script:
- cd icu4c/source
- ./runConfigureICU --enable-debug --disable-release Linux --disable-renaming --enable-tracing
- make -j2
script:
- make -j2 check
# Clang Linux with thread sanitizer.
#
- name: "c: linux tsan (debug)"
language: cpp
env:
- INTLTEST_OPTS="utility/MultithreadTest"
- CPPFLAGS="-fsanitize=thread"
- LDFLAGS=-fsanitize=thread
os: linux
dist: xenial
sudo: true
compiler: clang
script:
- cd icu4c/source
- ./runConfigureICU --enable-debug --disable-release Linux --disable-renaming
- make -j2
- make -j2 -C test
- make -j2 -C test/intltest check
# copyright scan / future linter
- name: "lint"
script:
- perl tools/scripts/cpysearch/cpyscan.pl
- name: "j: icu4c release tools"
language: "java"
script:
- mvn -f tools/release/java/pom.xml package dependency:analyze
cache:
directories:
- $HOME/.m2
# Check compilation of internal headers.
- name: "internal header compilation check"
language: cpp
os: linux
before_script:
- cd icu4c/source
script:
- test/hdrtst/testinternalheaders.sh
# Check source files for valid UTF-8 and for absence of BOM.
- name: "UTF-8 and BOM check"
os: linux
script:
- tools/scripts/icu-file-utf8-check.py

900
KEYS
View File

@ -1,900 +0,0 @@
This file contains the PGP keys of ICU developers.
Compare to http://www.apache.org/dist/ant/KEYS and read https://www.apache.org/dev/openpgp.html for background
To import these keys:
gpg --import KEYS
To update this file:
replace $KEYID is your key's ID:
(gpg --list-sigs $KEYID && gpg --armor --export $KEYID ) >> KEYS
pub 2048R/825EA2CD 2010-11-02
uid ICU Project @IBM (International Components for Unicode Development at IBM) <icuintl@us.ibm.com>
sig 3 825EA2CD 2010-11-02 ICU Project @IBM (International Components for Unicode Development at IBM) <icuintl@us.ibm.com>
sig 3 FD8FABF1 2013-12-12 Steven R. Loomis (ICU Project) <srl@icu-project.org>
sig 0F0DE47D 2014-09-17 Steven R. Loomis (CODE SIGNING KEY) <srl@icu-project.org>
sub 2048R/1D06B1BF 2010-11-02
sig 825EA2CD 2010-11-02 ICU Project @IBM (International Components for Unicode Development at IBM) <icuintl@us.ibm.com>
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.14 (GNU/Linux)
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
AZA1XWLRgZ3+5+vD
=NkHr
-----END PGP PUBLIC KEY BLOCK-----
pub 4096R/0F0DE47D 2014-09-17 [expires: 2019-09-16]
uid Steven R. Loomis (CODE SIGNING KEY) <srl@icu-project.org>
sig 3 0F0DE47D 2014-09-17 Steven R. Loomis (CODE SIGNING KEY) <srl@icu-project.org>
sig FD8FABF1 2014-09-17 Steven R. Loomis (ICU Project) <srl@icu-project.org>
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.14 (GNU/Linux)
mQINBFQZ3doBEACpnA2AbRRVxu9TeDTnjHtz6h5NyMyGZIPZOX7Iv2bNS0JSAS/H
9f2WP9+3ANHuKI32rYh0snKpWjYsgUCxZ8x2Wp4cu8YnTvvpL6a5fn5n04dTyd4s
/gPLb51qHIL8L6MDfK2ARgukntzfLR2CoL+RwGLDOjNlnoGNw65XEdjkzZ65s05Q
/YHdlMYJE6gQ7VzJf7JYO6z6MpclLSj106TDs0hmOSetRm66nt+G7q1iY/jMXSMm
bs3CFe4MNoVlRnl2THFZWjGSrVNYkenKexrjJ5HD9sm2nFF5pXgMQBoyOE5gic/b
H5hMeh3v4vmhxRL5GPmI9Ir25LwqYCaWZDu6TC8mDDJj82YQMOzvElpRU/5V8KVc
R7e4FN7D6tXDPb8IMgHb1U7zEnKYAc+uAS5NQ6Vq/S3NoueEQNk+rwqy44yIigtD
iOJOnLvf1JFUPNFUxRu2JUy7YzvvcyGG9PY7bxQEb/MLwa424GWRTHV4Yw+hHP6D
+XgylCyd36wfwgF48+gFeDza9gMPPDgGqJu059PjEEG9ELgBFkTVjM0+rqq1M6Jk
+WPFRgM9ioccwdVIvfVZNnkp+EUjpl/PHLYlFvP0orkK3SGc1jaqW5m3Y6P60RzM
7OovZqtqUDTEfMZ4bQKT4EdLayBPFALvz4TgndxrZwoPi2QGmFU9Dy+snwARAQAB
tDlTdGV2ZW4gUi4gTG9vbWlzIChDT0RFIFNJR05JTkcgS0VZKSA8c3JsQGljdS1w
cm9qZWN0Lm9yZz6JAj4EEwECACgFAlQZ3doCGwMFCQlmAYAGCwkIBwMCBhUIAgkK
CwQWAgMBAh4BAheAAAoJEKqprpwPDeR9St0P/RJzlQDOgtD/rq8ThV5clhcgzCQU
J34bC9+SdvQVtG6cOu+/mE9fjPcRuMSC2saj3e6KdfdCF51ZUelFgg7Nf4VjzKXK
egYFe11CJSYFt0YQyT3CwlX5a6lKv9BH4RJPdAjeACSNCLvuZYlkxfAFPAwJFMAH
CeiY6P7Llm2sHHIIubK+yFviZiD1ic92ADt2llM06VwniCS2Cs0kx4NAl70jd/vW
B/j9+k+PphZFA2IUuB80qnTdrEb+nVLQ9n0SMFwFm89bEm8IhXe0Lb//jl5ZbZCr
afn02GvdSqU73jqOfEHS7hHemB1KSM4hEdWGFRhUf0+Xpc31aOsnKY5Wu89A8Sz/
sKp554qAhGmBGeEjkKbw0t+k4liP+LW2efmVBt+/6msF+TGq0Rr5vFQEUNCYeIzz
DS5nKDlKvRwgx/41RnSUYiLJS9GkCB6skxIQZvW2G7rnkGQkgmP3/tkTTX0EP0rT
GlW4ivfp+AKoYozkZ5FNLXC06yzCSKYL0z9uoL38uR6opXo4768byzzkBOvSut3Q
V9gbvAtZvwEibwOt0A4UhbIyv96+Oi2WI66q37Wl33F/QIsxpC9UjXju1RrAajOv
0gY8VMxwuWHN8ewslykX5rohxgA7mkTf/YeELSiYEM1WpmKmj30uJapgDwVRpsTC
dfSvIc/nOLji4u0iiQEcBBABAgAGBQJUGfLZAAoJEKyl2+H9j6vx+58IAMIzjJTv
9n7Yq2iyncFyg7fmPmlKo28l6cIrmveGtzLWgO7pXw9hZy8mTwUAhg9nMnNbnjDw
qSA+YH8rNy0MB/AaTj46faE/RlqB8bCUlnLlRk9b6IxKODOVAarFk0ltCUeNt1IP
w8YziwUaJewmb2//tEjwG4RuliQeo8EPcg2MejsxctNJ1gWQxZFOSMk2M6I9NwW6
xMUmqGzzKdPChdwzOBaHK2f4lB3IlPqpJVqAWuXdINzi91tCIKfo508hJSpzGm/n
Lq4yQHJPjQjxTldFBxC8Ji5yYIQ2ZcWLaYndWH4aVbAkEelU3eIp44mU4tqhqCP6
zJJjdh87G81yUoE=
=pu4w
-----END PGP PUBLIC KEY BLOCK-----
pub 2048R/FD8FABF1 2013-12-12 [expires: 2020-10-03]
uid Steven R. Loomis (ICU Project) <srl@icu-project.org>
sig 3 FD8FABF1 2017-10-04 Steven R. Loomis (ICU Project) <srl@icu-project.org>
uid [jpeg image of size 10375]
sig 3 FD8FABF1 2017-10-04 Steven R. Loomis (ICU Project) <srl@icu-project.org>
sig 3 FD8FABF1 2013-12-12 Steven R. Loomis (ICU Project) <srl@icu-project.org>
sig 3 FD8FABF1 2013-12-12 Steven R. Loomis (ICU Project) <srl@icu-project.org>
sub 2048R/A6EB1469 2013-12-12 [expires: 2019-10-04]
sig FD8FABF1 2017-10-04 Steven R. Loomis (ICU Project) <srl@icu-project.org>
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQENBFKpD3cBCADklZIzuPsYrEy08rASB+MRnFF8hqDDUkDHuvS0bJwEDge2EEHT
l9rnUOt3SGtSrokeniQbwut26vuY/V59SSpwClytbHovIRJ/ovjq3nUasCRPOxDL
mlmftkRGrO6WYH6hSzmRy2x3NTgQOlE/YRtOya3CAVlkiybpYXL3L1mJA4e80NpF
V4UG7vyfw44OHFeO6mInqkcxVgKkxwp3wBbck3FEySEZT0DTT+sQHI52fgUftb+P
xBH1s58lLAub4o2z1hnImPN/BR0lZpiNj59vzNlqmcnRHTpa6KIz+Qeep9dwLL7i
71lMfCsEgVyDZxkQxFpNoRYRHRkfvBEY7JLpABEBAAG0NFN0ZXZlbiBSLiBMb29t
aXMgKElDVSBQcm9qZWN0KSA8c3JsQGljdS1wcm9qZWN0Lm9yZz6JAT4EEwECACgC
GwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheABQJZ1XNBBQkMz/5KAAoJEKyl2+H9
j6vxKIEH/0aFGlFOtgXNHKEG7F1mVxhjNyFlZD5O/9t8oI46vYCgVfwsn6BsHFpv
9yAtzA6z26Zt2NsPjH6dVRfc3sGCojBIKQ/lxnyQqjAYaEbVVQ/3jhAhgnm+uAF4
3Rr54g+6FL7aHB33nDy9FmRtmQsyVf1OySR7VXbHpwEVzWeLrgmPKR1t8P1hdiSo
YfroXVAPy2pynXUWgWbMbuqAcTj0iAQQ7LuVOVZ8bYA922LRgUxg/ZPxiGGm2g3M
LF/QVWMH6FAHtSf9DOaFjZqQuypkUoOZZuFfNMvKaYIe+XviZRtWls5M6H8wOz6c
bFrLBV5XBBwKbOXULpDv/3+oehDO22vR/wAAKJ3/AAAomAEQAAEBAAAAAAAAAAAA
AAAA/9j/4AAQSkZJRgABAQEASABIAAD/4hscSUNDX1BST0ZJTEUAAQEAABsMYXBw
bAIQAABtbnRyUkdCIFhZWiAH3QALAAUADwAzADFhY3NwQVBQTAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGwAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFkZXNjAAABUAAAAGJkc2NtAAAB
tAAABA5jcHJ0AAAFxAAAACN3dHB0AAAF6AAAABRyWFlaAAAF/AAAABRnWFlaAAAG
EAAAABRiWFlaAAAGJAAAABRyVFJDAAAGOAAACAxhYXJnAAAORAAAACB2Y2d0AAAO
ZAAABhJuZGluAAAUeAAABj5jaGFkAAAauAAAACxtbW9kAAAa5AAAAChiVFJDAAAG
OAAACAxnVFJDAAAGOAAACAxhYWJnAAAORAAAACBhYWdnAAAORAAAACBkZXNjAAAA
AAAAAAhEaXNwbGF5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWx1
YwAAAAAAAAAhAAAADGhySFIAAAAUAAABnGtvS1IAAAAMAAABsG5iTk8AAAASAAAB
vGlkAAAAAAASAAABzmh1SFUAAAAUAAAB4GNzQ1oAAAAWAAAB9GRhREsAAAAcAAAC
CnVrVUEAAAAcAAACJmFyAAAAAAAUAAACQml0SVQAAAAUAAACVnJvUk8AAAASAAAC
am5sTkwAAAAWAAACfGhlSUwAAAAWAAACkmVzRVMAAAASAAACamZpRkkAAAAQAAAC
qHpoVFcAAAAMAAACuHZpVk4AAAAOAAACxHNrU0sAAAAWAAAC0npoQ04AAAAMAAAC
uHJ1UlUAAAAkAAAC6GZyRlIAAAAWAAADDG1zAAAAAAASAAADImNhRVMAAAAYAAAD
NHRoVEgAAAAMAAADTGRlREUAAAAQAAADWGVuVVMAAAASAAADaHB0QlIAAAAYAAAD
enBsUEwAAAASAAADkmVsR1IAAAAiAAADpHN2U0UAAAAQAAADxnRyVFIAAAAUAAAD
1mphSlAAAAAOAAAD6nB0UFQAAAAWAAAD+ABMAEMARAAgAHUAIABiAG8AagBpzuy3
7AAgAEwAQwBEAEYAYQByAGcAZQAtAEwAQwBEAEwAQwBEACAAVwBhAHIAbgBhAFMA
egDtAG4AZQBzACAATABDAEQAQgBhAHIAZQB2AG4A/QAgAEwAQwBEAEwAQwBEAC0A
ZgBhAHIAdgBlAHMAawDmAHIAbQQaBD4EOwRMBD4EQAQ+BDIEOAQ5ACAATABDAEQg
DwBMAEMARAAgBkUGRAZIBkYGKQBMAEMARAAgAGMAbwBsAG8AcgBpAEwAQwBEACAA
YwBvAGwAbwByAEsAbABlAHUAcgBlAG4ALQBMAEMARCAPAEwAQwBEACAF5gXRBeIF
1QXgBdkAVgDkAHIAaQAtAEwAQwBEX2mCcgAgAEwAQwBEAEwAQwBEACAATQDgAHUA
RgBhAHIAZQBiAG4A6QAgAEwAQwBEBCYEMgQ1BEIEPQQ+BDkAIAQWBBoALQQ0BDgE
QQQ/BDsENQQ5AEwAQwBEACAAYwBvAHUAbABlAHUAcgBXAGEAcgBuAGEAIABMAEMA
RABMAEMARAAgAGUAbgAgAGMAbwBsAG8AcgBMAEMARAAgDioONQBGAGEAcgBiAC0A
TABDAEQAQwBvAGwAbwByACAATABDAEQATABDAEQAIABDAG8AbABvAHIAaQBkAG8A
SwBvAGwAbwByACAATABDAEQDiAOzA8cDwQPJA7wDtwAgA78DuAPMA70DtwAgAEwA
QwBEAEYA5AByAGcALQBMAEMARABSAGUAbgBrAGwAaQAgAEwAQwBEMKsw6TD8ACAA
TABDAEQATABDAEQAIABhACAAQwBvAHIAZQBzAAB0ZXh0AAAAAENvcHlyaWdodCBB
cHBsZSBJbmMuLCAyMDEzAABYWVogAAAAAAAA81IAAQAAAAEWz1hZWiAAAAAAAABq
egAAPKoAAAYFWFlaIAAAAAAAAGhwAACq+AAAH7dYWVogAAAAAAAAI+wAABheAACt
cWN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANgA7AEAARQBKAE8A
VABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCjAKgArQCyALcAvADBAMYA
ywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIB
WQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHpAfIB+gIDAgwC
FAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUD
AAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBME
IAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcF
dwWGBZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUH
BwcZBysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I
0gjnCPsJEAklCToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK
3ArzCwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0N
Jg1ADVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YP
sw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQS
hBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgV
mxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY
+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHsc
oxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kflB+/H+ogFSBBIGwg
mCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPwJB8kTSR8JKsk
2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkGKTgp
aymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYu
TC6CLrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0Yz
fzO4M/E0KzRlNJ402DUTNU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5
BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+
4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5F
EkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NL
mkviTCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFS
fFLHUxNTX1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZ
uFoHWlZaplr1W0VblVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxh
T2GiYfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxp
Q2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpx
lXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6
RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSD
V4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCLlov8jGOM
yo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSVX5XJljSW
n5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg
2KFHobaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamqHKqPqwKr
davprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2
ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB
48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXN
tc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ
8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3m
lucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnz
p/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf//cGFy
YQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACg52Y2d0AAAAAAAAAAAAAwEAAAIA
AAAIACQAVwCkAQYBRgGTAe8CTAK0AycDoAQnBLoFWAYABrUHeAhGCRsJ+ArhC9IM
zg3RDxQQaBG8ExkUdhXZF0kYuBotG6YdKx6vIDghyiNgJPomkygwKdUrZSzsLnUv
9zF5Mvk0bzXjN084sToMO2M8tD3+P0VAhUHFQvlEHkVFRmpHkUi2SdxLAUwmTUlO
bU+PULFR01L2VBlVPFZSV2pYf1mWWq1bw1zZXe5fAmAWYSliPGNOZGFldGaBZ4Bo
gmmDaoRrhmyJbYpujG+OcJFxk3KVc5d0m3WVdnJ3UHgteQt56nrIe6Z8hn1nfkh/
KoANgPGB1oK7g5+EhYVxhmOHX4hniXuKoYvXjR2Ob4/PkTySkJOylNaV+JcbmECZ
ZpqOm7mc6Z4cn1KgjaHKovikDqUmpj+nWah3qZiqvKvlrRKuQ694sLGx67MftFC1
frart9W4/boku0q8b72Vvr2/5cEPwjbDUcRhxWPGVsc7yBLI3MmbylXLDcvFzILN
Rs4Rzt/PrdB80UrSGdLn07PUf9VJ1hLW2teZ2FHZBtm82nTbLtvo3KXdYt4h3uDf
n+Bf4R/h3+Kc41bkDuTD5XPmIObL53LoGOi86WTqD+rC63XsKOzd7ZLuSO7/77jw
c/Ev8ezywfOp9JL1dvZa9z/4Kvkf+iP7QvyG/gv//wAAAAcAHgBKAIsA4wEqAW4B
wAIZAnQC2gNHA70EQQTSBW0GEQa9B3QINgkACdUKrQuODIENlg7MEAARPBJ6E7oV
AxZPF6MY+BpUG7QdGh6GH/IhZCLWJE0lxycvKJMp9ytXLLMuCy9gMLAx+DM8NHc1
rTbeOAo5MDpWO3c8kD2dPqw/ukDKQdlC6UP5RQpGGkcqSD1JTkpgS3FMg02UTp5P
qVCyUbtSxlPQVNlV4lbqV/NY+1oDWwtcFF0dXiFfIWAfYR1iG2MZZBZlE2YPZwpo
BWkAaftq9WvwbOdt2G7Ib7ZwpHGQcntzZHRLdTF2Fnb6d954wnmmeod7Z3xKfS5+
FX8Cf/OA6oHpgvCD/YUShi2HTYhuiYuKp4vEjOKOAY8hkEORZpKNk7WU4JYNlzyY
ZZmHmqqbzJzxnhefP6BpoZaixqP5pS6mZqegqNqqFKtOrIatvq72sCyxZLKbs9W1
D7ZLt4m4x7oBuzq8cL2jvtG/+cEbwjbDTMRcxWnGcsdtyFrJQ8oryxPL+8zizcjO
rs+T0HjRXtJD0yTUAdTd1bnWlNdv2ErZJdn/2tnbstyM3WbeQN8b3/fg1OGx4o3j
auRH5STmAebd57nolOlp6j3rEevl7Lvtku5q70TwIPD98dzyu/Oc9I71lPas99X5
C/pG+3n8mf2c/oD/Sf//AAAABQAWADUAZACkAPUBLQFqAbACAAJTArADFgOBA/UE
cAT1BYMGHAa+B2UIEwjGCX4KQwsqDCYNJg4lDy4QNxFHElcTbhSGFaUWxxfxGRka
SBt5HK0d4x8bIEQhaiKNI7Ak0yXwJwsoISk1KkArSCxKLUcuQS82MCoxHDIGMukz
yTSqNY02bzdQODM5FDn1Otc7uDyaPXw+Xj9AQCJBBUHpQs5Ds0SYRX5GY0dISCxJ
EEn1StlLvEyhTYZOaU9IUCdRBlHlUsRTolSBVV5WO1cZV/ZY01mvWo1baVxCXRtd
817MX6Rge2FSYihi/mPTZKllfmZTZyhn+mjLaZxqbWs9bA1s3G2rbnlvRXAScN5x
qXJ1cztz/3TBdYN2Q3cCd794e3kyeed6m3tKe/h8rH1xflp/R4A0gSKCEIL/g+2E
2oXHhrOHnYiIiXCKaotpjGiNaI5pj2mQaJFmkmKTXZRVlUyWQZdEmFOZZ5p7m5Gc
pp26ns2f3aDrofejAKQHpR6mU6ePqMyqC6tNrJGt2q8osHmxzrMntIO13LckuGi5
prrcvAu9Mr5Sv2zAgMGRwp/DrcS4xcLGy8fWyOLJ78r+zA/NI846z1PQb9GN0rLT
2dUB1irXU9h92ana1twF3TXeZ9+b4O/iheQo5d/nv+nQ7CHuuPGn9N/4XPwV//8A
AG5kaW4AAAAAAAAGNgAAmj0AAFllAABRRwAAjYQAACXWAAAXCgAAUA0AAFQ5AAKK
PQACRR4AAYzMAAMBAAACAAAACwAiAD0AWgB3AJUAswDRAPABEAEwAVEBcgGUAa8B
ywHoAgYCJAJDAmMCgwKjAsQC5gMIAysDTgNxA5UDugPfBAQEKgRQBHcEngTGBO8F
GAVBBWsFmAXHBfYGJgZXBooGvQbyBycHXweXB9IIDghMCI0IzwkTCVkJoQnsCjgK
hwrXCykLgQveDDsMmgz6DVwNwA4lDowO9Q9gD8wQOhCqERwRjxIEEnoS8hNyE/IU
dRT5FX8WBxaRFx0XrBg8GM8ZZBn7GpQbLxvLHGwdGR3GHnYfKB/cIJEhSiIEIsAj
fiQ/JQIlxyaNJ1koRyk3KisrISwaLRYuFC8TMBUxGDIdMyM0LDU6Nkc3UThWOVI6
RTsvPA885j22PoA/RkAIQMVBgEJRQ0JEM0UnRh1HE0gLSQNJ+0rzS+lM303UTshP
u1CuUaZSwFPaVPVWEVctWEhZYlp7W5JcqF27Xs5f32DwYgBjFmQzZVJmdmecaMdp
9WsmbFptkW7JcANxPXJ5c7R08HY6d5F4+np5fBR90H+2gcGD5YYNiCqKLYwnjiSQ
JJIolDKWQ5hbmn2cpp7voV6jzKY4qKKrCq1yr9yySbS5ty65sLxFvvHBt8SXx43K
lM2L0F/TN9YQ2Orbwt6W4WjkOOa26PrrVO258B7yevTC9uv46fq6/Fj9uv7p//8A
AAANACcARgBnAIcAqADKAOwBDwEyAVcBfAGfAb4B3QH+Ah8CQQJkAogCrALRAvYD
HANDA2oDkgO6A+MEDAQ2BGEEjAS4BOUFEgVABW4FoQXUBgkGPgZ1Bq4G5wcjB2AH
nwffCCMIaAiwCPoJRwmWCegKPQqTCuwLRwurDA8MdgzeDUcNsw4gDo8O/w9yD+YQ
WxDTEUwRxxJEEsITRhPMFFQU3xVrFfkWiRccF7EYSBjhGXwaGhq5G1ob/RymHVQe
BB63H2wgJCDeIZsiWyMeI+MkqiV0JkEnDyfnKMQppSqJK3IsXi1PLkUvPzA9MT8y
RDNMNFo1bDZ+N5E4oTmuOrc7uzy5PbM+qD+aQIpBd0JoQ11EVUVORkhHREhBST5K
PEs6TDhNNk40TzNQMVEvUjlTSFRYVWpWfFePWKNZtlrJW9xc7l4AXxJgI2E1YkZj
WWRuZYRmnme5aNdp9msYbDttYG6Gb6xw03H6cyJ0SnV0dqN31XkKekN7gXzFfhF/
ZIDBgiaDlIULhomIDomzi3KNNI76kMOSkpRlljyYGJn3m9mdv5+6obujv6XIp9Wp
56v9rhiwNrJZtH62pLjMuvW9Ib9RwYPDusX0yDTKd8zDzybRi9Pz1lrYwdsl3Yjf
6eJK5KrnCukv6y7tFu7n8KryZ/Qr9gT4BPpD/OP//wAAABIANQBbAIMArADVAP4B
KQFVAYMBqwHRAfgCIQJKAnUCoALNAvoDKQNYA4gDuQPqBB0EUASEBLkE7wUmBV4F
mgXYBhgGWgadBuIHKgd0B8EIEAhjCLkJEwlxCdIKNwqfCwoLewvzDG4M6w1qDe0O
cQ75D4MQEBCgETIRxxJeEvgTlBQyFNIVdRYaFsIXbRgbGMwZfxo2Gu8bqhxpHS8d
+B7DH5IgZCE5IhIi7iPNJK8llSZ9J2koXClSKkwrSSxLLVAuWi9nMHgxjTKlM8A0
5TYNNzk4aTmdOtY8FD1YPqA/7UE+QptEBEVxRuZIY0nrS4BNIU7RUIxSF1NkVLJW
AldUWKhZ/1tbXLleHV+FYPFiYmO6ZRBmaGfBaRxqe2vdbURur3AgcZdzE3SUdfp3
VniyehB7b3zQfjV/nYEKgnyD9IVyhvWIfonTix2MaI2zjv+QSZGTktyUI5VplqyX
75kvmm+brpzsni6fgqDbojqjoaUQpoioC6mZqzGs1K6AsDKx6rOmtWi3Lrj3usC8
i75VwB/B6MOvxXTHN8j5yrrMec4uz+TRm9NU1Q3WyNiD2j7b+d20327hKeLj5J7m
Ked+6M7qF+tZ7JHtuu7V7+fw4/Hb8r/zoPRw9UH1//a993P4I/jU+Xj6HfrA+1z7
+PyS/Sf9vP5Q/uD/b///AABzZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7
ov///aMAAAPcAADAbG1tb2QAAAAAAAAGEAAAnKUAAAAAw7GoAAAAAAAAAAAAAAAA
AAAAAAD/4QCARXhpZgAATU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAA
SgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAABIAAAA
AQAAAEgAAAABAAKgAgAEAAAAAQAAADugAwAEAAAAAQAAAFMAAAAA/9sAQwACAQEC
AQECAgECAgICAgMFAwMDAwMGBAQDBQcGBwcHBgYGBwgLCQcICggGBgkNCQoLCwwM
DAcJDQ4NDA4LDAwL/9sAQwECAgIDAgMFAwMFCwgGCAsLCwsLCwsLCwsLCwsLCwsL
CwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsL/8AAEQgAUwA7AwEiAAIR
AQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMC
BAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJ
ChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3
eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS
09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAA
AAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEH
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
DyXQOcA=
=x0WA
-----END PGP PUBLIC KEY BLOCK-----
pub rsa4096 2015-11-15 [SC]
FFA9129A180D765B7A5BEA1C9B432B27D1BA20D7
uid [desconocida] Fredrik Roubert <fredrik@roubert.name>
sig C191C1EE0DED33EA 2015-11-23 [ID de usuario no encontrado]
sig 216D7E92EB61819E 2015-11-25 [ID de usuario no encontrado]
sig 1C2C9D2A7564DC9F 2015-12-02 [ID de usuario no encontrado]
sig A42898C74BF155DB 2015-12-03 [ID de usuario no encontrado]
sig 3 C44AB8B850327DF9 2015-11-15 [ID de usuario no encontrado]
sig 4719E4FC1E16C930 2015-12-02 [ID de usuario no encontrado]
sig 4484F5552D1E8BB4 2015-12-02 [ID de usuario no encontrado]
sig 6C6580E77BD756C4 2015-12-02 [ID de usuario no encontrado]
sig 7F61756177978F76 2015-12-08 [ID de usuario no encontrado]
sig 47712171F2ED62FB 2016-04-06 [ID de usuario no encontrado]
sig 2 80D88B22D4330331 2015-11-21 [ID de usuario no encontrado]
sig 3 9C187BA29B2157F8 2015-12-01 [ID de usuario no encontrado]
sig 3 6DFD2ACE211BAAD0 2015-11-23 [ID de usuario no encontrado]
sig 3 4445C665FFAD9AE0 2015-11-23 [ID de usuario no encontrado]
sig 3 2DFF526BB17F76C6 2016-06-11 [ID de usuario no encontrado]
sig 3 9B432B27D1BA20D7 2015-11-15 Fredrik Roubert <fredrik@roubert.name>
uid [desconocida] Fredrik Roubert <roubert@google.com>
sig C191C1EE0DED33EA 2015-11-23 [ID de usuario no encontrado]
sig 216D7E92EB61819E 2015-11-25 [ID de usuario no encontrado]
sig 1C2C9D2A7564DC9F 2015-12-02 [ID de usuario no encontrado]
sig A42898C74BF155DB 2015-12-03 [ID de usuario no encontrado]
sig 3 C44AB8B850327DF9 2015-11-15 [ID de usuario no encontrado]
sig 4719E4FC1E16C930 2015-12-02 [ID de usuario no encontrado]
sig 4484F5552D1E8BB4 2015-12-02 [ID de usuario no encontrado]
sig 6C6580E77BD756C4 2015-12-02 [ID de usuario no encontrado]
sig 7F61756177978F76 2015-12-08 [ID de usuario no encontrado]
sig 47712171F2ED62FB 2016-04-06 [ID de usuario no encontrado]
sig 2 80D88B22D4330331 2015-11-21 [ID de usuario no encontrado]
sig 3 9C187BA29B2157F8 2015-12-01 [ID de usuario no encontrado]
sig 3 6DFD2ACE211BAAD0 2015-11-23 [ID de usuario no encontrado]
sig 3 4445C665FFAD9AE0 2015-11-23 [ID de usuario no encontrado]
sig 3 2DFF526BB17F76C6 2016-06-11 [ID de usuario no encontrado]
sig 3 9B432B27D1BA20D7 2015-11-15 Fredrik Roubert <fredrik@roubert.name>
sub rsa4096 2015-11-15 [E]
sig 9B432B27D1BA20D7 2015-11-15 Fredrik Roubert <fredrik@roubert.name>
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
=vIM2
-----END PGP PUBLIC KEY BLOCK-----
pub rsa4096 2018-06-28 [SC]
827320CB5E847C916CF49D06147473802F35F6CB
uid [ultimate] Jeff Genovy <jefgen@microsoft.com>
sig 3 147473802F35F6CB 2019-12-04 Jeff Genovy <jefgen@microsoft.com>
uid [ultimate] Jeff Genovy <Jeff.Genovy@microsoft.com>
sig 3 147473802F35F6CB 2019-12-04 Jeff Genovy <jefgen@microsoft.com>
sub rsa4096 2018-06-28 [E]
sig 147473802F35F6CB 2018-06-28 Jeff Genovy <jefgen@microsoft.com>
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBFs1QYIBEACyx/qJBfSY1EbCQ4aJTY4QE2R/u2cqCa/mpPMDje+GDZ6SyBwj
PrXx7W7kQcwTTGrylJd1A6Wnx4PwAS3cCl7vSExYOsEbxKUcZiHVweMQBDNHFfL6
bmdsXrHD0ypWqyCmbWdSGdwXfYhlX3UlntoETgHBrwZ+qf6Uu70cDm7cKPEoPlWz
2eg6evT0vgtD1Y/47x5zAyCVqgC+rsEJKVdK3X3QSoUerFiYRUEZDXBc9KfHrn2I
+St9fflVz6cNFExuc2x4H3b2vOwjZJqFO/cq47ppYXmOwbPQtH2r3hFpNxOIlQih
h9MfWNiVKRICJZLZFicnFyANJVxK3ApK2Xhw4gJUjkhyXMZcpW891ETyOyuNjuDP
cL0U6SqggfH0aubIfqBhgZqwTCp64Ckq28tjFqR3r7YqEFpiRu5mtO0gvk3sWl69
bxXm0OxKLhhiVu0is3tokQU4M7zl7J8MHygBCkowoun/aw9Vis6K8ibItHb4CjTi
SGGjNRbJxcPFq2YrU/c26T4IwtL+Mv59toXO0rJuwcaommkQ+G5zlBNViciyrOC4
OzMiOkOrtYa6qaChAPfGrWL9ZETOBtVzZGpqLhYvTwP6Q7bDFoogtCq6iCU09FRU
Q0fe3eJCeMFmVh84SWsdIe/GasXtWhvjlcmqnpz59Tzym8ZCDxhFaQt6CwARAQAB
tCdKZWZmIEdlbm92eSA8SmVmZi5HZW5vdnlAbWljcm9zb2Z0LmNvbT6JAk4EEwEI
ADgCGwMFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AWIQSCcyDLXoR8kWz0nQYUdHOA
LzX2ywUCXegVDAAKCRAUdHOALzX2y8NKD/9Ac7MhdVXmaoIjTNBQA/ZbZTipzLkC
RxCiUai2ThMHIZKSyWFszVySHSvw0Cj8ZFUuDW61HliT6uYS/t3M93Wh1fTC4+qd
Y0u0RVffhWIYxoW5pzo5p00L6Lb3oMfY6QuvLgvQd6iP0gXMQyUr/hC1kVOFJ9TX
16ylf4GwSpJhKPXF+Heu5jVgDw2Qx/22/xl6xSsPRqTU4rc5HOQmHr5EfU3LjmXX
PtSBXcknV1TSA/0Nbdxm5vpYQ2tdDnq/c0RU0B7L/mxOy8gH6wWR8qM3x0vpCnV1
hu9U7Rh6ldOpd5FEVBeDluNQZMIEQHBAZ174UCkvcS/x0RgBa3ZwjgBGYpanonJ1
qPcEqN4qWt3uXWuVxtNyM0rFgtpJ6fhF6rGyHo7nasI68a9XEbUh5IsKcDttTZgz
blLgHHs0IyXyHG2DYG8wr18viiLo8Vt5QpLPIQT9tAgnRoiD83kO1IUTktksz/jE
sGzf2gbgGTYWomM11W8iMXL6flBdhY5oasiP6jwPTtpLjmqCLZkz9hEJ7NBgOi3+
Aqeu0PMwets0WQW6S2OzlHDGqprWQvVqOSa0XRXSJT7ZSlGImMMZMiUMpVukJjCT
N2z8lOxpw2s9AL9jfvCD7TodpfmGd1SHNTNRv/Ivt2eHrMhfJ29zabIfPb1nPChK
b1EpNlfgeNl64bQiSmVmZiBHZW5vdnkgPGplZmZnZW5vdnlAZ21haWwuY29tPokC
TgQTAQgAOAIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBIJzIMtehHyRbPSd
BhR0c4AvNfbLBQJd6BUQAAoJEBR0c4AvNfbL1YYQAJ6MocZlLZ2107lYKOCPcCRy
dnR4xi0t1jPOoSV6KNyC/frRppVzBodPGjAY6RfRM5jq6IVhqD6Nf9HEYydbn1oe
FdD/mCXLiqtI2AOvVCzMJctoKo2NlxcnHQGJCvIEjMts6lWi4wDqAgTxOL6hov6Y
HzsFjcDTZ3cVU51nFHM1tHLjYFYMALDy7CJ87k1GB3mTSAX0SIC7FVJmDWO3ooVP
rqMofUvnlzBfHfJUfDsrOFeZZWHy4DXqHpMMebY9WLJv9W0LwgcLKugS+uxy98Zr
QcQgHLh7Nl3yuYtftWL1bqAmBx4kTjQ3DAXDa3WYZQhV0DEZzRQP5pvlqkQoKp+x
y//SzoFni55bJpH36F3Arp3flgFBpqy68ll3Y0/aOJ+jLD0O6/xQYPfG4Pu/Fly4
28GQegfq6I/o+bc1k55ncT4+jpNb2a8n9TaFIs/uM2guowUisqt6WkB9jXrC7a0Z
Cybt5iNBOuQVIZyz+BQvRMxkt7uESDPgo8cVAzr6DfX+GdBVAcZjm3piXWkaDxlE
mOOW5HMW/3uOD2SAVH3+mPdvC37yFkPuTEoDbsgKRMIGolb3NVJVUu8+Hxyg0818
h0G/zpE8XGNzAL52NrEsGyu8jN3L1BRFeClrP+xDas1I7lcohUXUHSnxJnA1GbKZ
P2jq1DDDE3o06Ld3BFGntCJKZWZmIEdlbm92eSA8amVmZ2VuQG1pY3Jvc29mdC5j
b20+iQJOBBMBCAA4AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAFiEEgnMgy16E
fJFs9J0GFHRzgC819ssFAl3oFREACgkQFHRzgC819suQhQ//eepmASOFTA5CRegl
Y9hzF0RP6+9kq+KTSbstbbQQuR4Vd2m0QeF4gT8vcIHEIfxVn6sfJFf2k4v/TKGE
OFHXw8Wl4/XvquVpfp8x8pZ/XVd+/K9F1o6WZ/o2UUleEecIJENeSzJ69/WbGozE
8HkSTaA4BR/G5bAzX79Rm0JfiS9l8ZyapkcPfSGO/Jcz1pkBfacAPyyDMxYFos6O
y038D/2qSCLI3TxS/kS2FANpCpXwNUjvR04WfbMWnaVnOih/gqau7ZVQ20lpKZOY
E4GcQtXVbaTR9vJ1tayA8FVpSO/4nqjD3CdI9JLkq7MGLnkHOdL/YtD0k+HtW8dr
5p8m+tgjTmt7dAiCIXI+a8M4jjoIx/qAdHOOH/4T92s+zNYXd7CBkRp/6ipalfn+
QnyFgL0r0z1P7hSwFckWKsbvT2CIFRgJOwoTAMJ26HsIqt9ZkMMwPwth+nYKRlw4
WgmbZeoHZp0tpyqa7LTqNxVVxdx4rcgTL+jOOJMw+cQv4opv/pN7rWyFP6jCy5Wg
DzmyrPZR/zEhH0h0cRLblq7Fuvl3t/pXxgWSAVYmAvTQyIwRWC0Nvec/AVRGE5uF
koXM6nl27ZtGc7PwmqJZePi54RDIy7LCI09zdmu50JALfxkQ0Yg4EVFy+gf979jy
ey7Fz42xM7+BTjQ6lXdmuSnIbFe5Ag0EWzVBggEQAL8RWXQwK1jupZkKCoGSSmuc
FO9MdCS/744340u9TU0oFY8mmqOppoOiVi9EKIOWVHJ5a5DixsIdNkTAtmXM4a6u
sr5wB555+KTkmofJ8nzHQM7gEaaHt9JErNo0f7Fzi9VEJ+G1XHFjW80HvQ9krpSj
Lz3x0CbD4KjRRJWoUrKiBvNJjk2Xox28pA9F7lHWLgGTgZFrtCWMaViOcZqBZfAl
pXYFR4hacddsDrRw4r4cl3NlfQ+SS4PL2kCcH1gx5AlhRkygtiJfYrHDvHpBk6rz
r/IMojXOUAYV8TFQRyhsz/Cpx6rAun+aOXQlL4eDuNtWnxEeoHoNRAnAtUobP8iv
cNqY1F3ZWaaY/MmNtw/FiDmYePzLz9p8FhBHKvE20Yt6UrUX+E9fPPSQDZxdtTzy
LOWRUtOhMJIPigQRipFWng9d79Rf/goX5fcSPja/eqZaKkosYVlJW09+MxLkNO2W
/UDmoVsvhnUK77I8BxqgrZUI8uj+d2cO+WQfL/RlGJ7a+icspycT8nTeEfCqjarQ
wzNY5PLo6FN+N8dLVRyrQsPwwfWstA/6DJaRHgwhz6UdV7wYOBtI35xIZ8Cy71tT
PycgOiUmatM8M5/INvqqPmQwl3VQdvrsD8MV3dP/U3edCSeVDKhqFXps47zdh/Ji
gTssKOz6Lafg8Uo3314zABEBAAGJAjYEGAEIACAWIQSCcyDLXoR8kWz0nQYUdHOA
LzX2ywUCWzVBggIbDAAKCRAUdHOALzX2yx0qD/9Wr1rnH2GZMwOCpwAplRegw/I5
PNS36fOYs2YEv6/g3OdgSrGu2ZL+VqhCRTaqE7UrJDIsV9JORRptgg48nw5IGQlq
NyyxMEJxu7KlpgRcKC6o1hZ+zqkLyQGdcd29i8AWBKU++MUunVMUplVuQa2mDRon
KpN2lg4y2djfXvLOiKo7kLXnM8S+42gB34+X8HqFhfTXwz0Q/oroHayrU4ncTEob
D81bOSQ2agn0Yi5GNCS6FR1Vmbto3j5HgvLbn9WkT8cM+nBr7F2zsZtG1Op+SKZK
KJ9/eHkMJ/9XgZMcaEPJzD938+AscFUZeAL0QUS8MRlyYLFQKvQHiZDGgwfDcFGs
7X9kZbMdx8nKRej8wqMOcro/TfogKSJj04L3qtsa5Cs71oVeUBalIlEcVkZIWUNS
HzwDFcJtfh1lbjRm9ALLTEHwhoZ6/OxRRbixEUlGZGCn754Jt2JrcQGm+wqL/w2P
ryG1zQFz5bcfxofFF/YxpHOsrMXb2GkAC1Wg9ypGfQ1RStGCe2q+6Qwo+csO7lyQ
mGdooN2u+X2SXbBq+F2JxQe2X65SAWrFsmflN1vsY22IWExQE9kA63twjQu3iAF/
mrLU2gvbaFZtV1HwYC3bCNqlx68rchjSQwOI5sdocwWsWbvJ28yi5I0PcBmyBa0Y
TMuS5W4GIP4f7uR1uQ==
=Veoq
-----END PGP PUBLIC KEY BLOCK-----
pub rsa4096 2020-02-24 [SC] [caduca: 2021-02-23]
4569BBC09DA846FC91CBD21CE1BBA44593CF2AE0
uid [ absoluta ] Steven R. Loomis (codesign-qormi) <srloomis@us.ibm.com>
sig 3 E1BBA44593CF2AE0 2020-02-24 Steven R. Loomis (codesign-qormi) <srloomis@us.ibm.com>
sig 44CE7BF2825EA2CD 2020-02-28 ICU Project @IBM (International Components for Unicode Development at IBM) <icuintl@us.ibm.com>
uid [ absoluta ] Steven R. Loomis (qormi signing key) <srl295@gmail.com>
sig 3 E1BBA44593CF2AE0 2020-02-24 Steven R. Loomis (codesign-qormi) <srloomis@us.ibm.com>
sig 44CE7BF2825EA2CD 2020-02-28 ICU Project @IBM (International Components for Unicode Development at IBM) <icuintl@us.ibm.com>
sub rsa2048 2020-02-24 [E] [caduca: 2021-02-23]
sig E1BBA44593CF2AE0 2020-02-24 Steven R. Loomis (codesign-qormi) <srloomis@us.ibm.com>
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
=DEHc
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -1,39 +0,0 @@
# International Components for Unicode
This is the repository for the [International Components for Unicode](http://site.icu-project.org).
The ICU project is under the stewardship of [The Unicode Consortium](https://www.unicode.org).
- Source: https://github.com/unicode-org/icu
- Bugs: https://unicode-org.atlassian.net/projects/ICU
- API Docs: https://unicode-org.github.io/icu-docs/
- User Guide: https://unicode-org.github.io/icu/
![ICU Logo](./tools/images/iculogo_64.png)
### Build Status (`master` branch)
Build | Status
------|-------
TravisCI | [![Build Status](https://travis-ci.org/unicode-org/icu.svg?branch=master)](https://travis-ci.org/unicode-org/icu)
Azure Pipelines | [![Build Status](https://dev.azure.com/ms/icu/_apis/build/status/unicode-org/CI?branchName=master)](https://dev.azure.com/ms/icu/_build/latest?definitionId=360&branchName=master)
Azure Pipelines (Exhaustive Tests) | [![Build Status](https://dev.azure.com/ms/icu/_apis/build/status/unicode-org/CI-Exhaustive-Main?branchName=master)](https://dev.azure.com/ms/icu/_build/latest?definitionId=361&branchName=master)
Azure Pipelines (Valgrind ICU4C) | [![Build Status](https://dev.azure.com/ms/icu/_apis/build/status/unicode-org/CI-Valgrind-Main?branchName=master)](https://dev.azure.com/ms/icu/_build/latest?definitionId=362&branchName=master)
AppVeyor | [![Build status](https://ci.appveyor.com/api/projects/status/6ev1ssb6efahsvs2/branch/master?svg=true)](https://ci.appveyor.com/project/unicode-org/icu/branch/master)
Fuzzing | [![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/icu.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:icu)
### Subdirectories and Information
- [`icu4c/`](./icu4c/) [ICU for C/C++](./icu4c/readme.html)
- [`icu4j/`](./icu4j/) [ICU for Java](./icu4j/readme.html)
- [`tools/`](./tools/) Tools
- [`vendor/`](./vendor/) Vendor dependencies
### License
Please see [./icu4c/LICENSE](./icu4c/LICENSE) (C and J are under an identical license file.)
> Copyright © 2016 and later Unicode, Inc. and others. All Rights Reserved.
Unicode and the Unicode Logo are registered trademarks
of Unicode, Inc. in the U.S. and other countries.
[Terms of Use and License](http://www.unicode.org/copyright.html)

BIN
build_bin/genbrk Executable file

Binary file not shown.

BIN
build_bin/genccode Executable file

Binary file not shown.

BIN
build_bin/gencfu Executable file

Binary file not shown.

BIN
build_bin/gencmn Executable file

Binary file not shown.

BIN
build_bin/gencnval Executable file

Binary file not shown.

BIN
build_bin/gendict Executable file

Binary file not shown.

BIN
build_bin/gennorm2 Executable file

Binary file not shown.

BIN
build_bin/genrb Executable file

Binary file not shown.

BIN
build_bin/gensprep Executable file

Binary file not shown.

BIN
build_bin/icupkg Executable file

Binary file not shown.

BIN
build_bin/makeconv Executable file

Binary file not shown.

BIN
build_bin/pkgdata Executable file

Binary file not shown.

1
build_lib/libicudata.so Symbolic link
View File

@ -0,0 +1 @@
libicudata.so.68.1

1
build_lib/libicudata.so.68 Symbolic link
View File

@ -0,0 +1 @@
libicudata.so.68.1

BIN
build_lib/libicudata.so.68.1 Executable file

Binary file not shown.

1
build_lib/libicui18n.so Symbolic link
View File

@ -0,0 +1 @@
libicui18n.so.68.1

1
build_lib/libicui18n.so.68 Symbolic link
View File

@ -0,0 +1 @@
libicui18n.so.68.1

BIN
build_lib/libicui18n.so.68.1 Executable file

Binary file not shown.

1
build_lib/libicutu.so Symbolic link
View File

@ -0,0 +1 @@
libicutu.so.68.1

1
build_lib/libicutu.so.68 Symbolic link
View File

@ -0,0 +1 @@
libicutu.so.68.1

BIN
build_lib/libicutu.so.68.1 Executable file

Binary file not shown.

1
build_lib/libicuuc.so Symbolic link
View File

@ -0,0 +1 @@
libicuuc.so.68.1

1
build_lib/libicuuc.so.68 Symbolic link
View File

@ -0,0 +1 @@
libicuuc.so.68.1

BIN
build_lib/libicuuc.so.68.1 Executable file

Binary file not shown.

207
common/Makefile Normal file
View File

@ -0,0 +1,207 @@
# Copyright (C) 2016 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#******************************************************************************
#
# Copyright (C) 1999-2016, International Business Machines
# Corporation and others. All Rights Reserved.
#
#******************************************************************************
## Makefile.in for ICU - icuuc.so
## Stephen F. Booth
## Source directory information
srcdir = .
top_srcdir = ..
top_builddir = ..
## All the flags and other definitions are included here.
include $(top_builddir)/icudefs.mk
## Build directory information
subdir = common
# for service hook
LOCALSVC_CPP=localsvc.cpp
SVC_HOOK_INC=$(top_builddir)/common/svchook.mk
## Extra files to remove for 'make clean'
CLEANFILES = *~ $(DEPS) $(IMPORT_LIB) $(MIDDLE_IMPORT_LIB) $(FINAL_IMPORT_LIB) $(SVC_HOOK_INC)
## Target information
TARGET_STUBNAME=$(COMMON_STUBNAME)
ifneq ($(ENABLE_STATIC),)
TARGET = $(LIBDIR)/$(LIBSICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(A)
endif
ifneq ($(ENABLE_SHARED),)
SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET) $(SHARED_OBJECT)
ifeq ($(ENABLE_SO_VERSION_DATA),1)
SO_VERSION_DATA = common.res
endif
ifeq ($(OS390BATCH),1)
BATCH_TARGET = $(BATCH_COMMON_TARGET)
BATCH_LIBS = $(BATCH_LIBICUDT) -lm
endif # OS390BATCH
endif # ENABLE_SHARED
ALL_TARGETS = $(TARGET) $(ALL_SO_TARGETS) $(BATCH_TARGET)
DYNAMICCPPFLAGS = $(SHAREDLIBCPPFLAGS)
DYNAMICCFLAGS = $(SHAREDLIBCFLAGS)
DYNAMICCXXFLAGS = $(SHAREDLIBCXXFLAGS)
CFLAGS += $(LIBCFLAGS)
CXXFLAGS += $(LIBCXXFLAGS)
ifeq ($(OS390BATCH),1)
CFLAGS += -WI
CXXFLAGS += -WI
endif
CPPFLAGS += -I$(srcdir) $(LIBCPPFLAGS) $(CPPFLAGSICUUC)
# we want DEFS here
DEFS += -DU_COMMON_IMPLEMENTATION
LDFLAGS += $(LDFLAGSICUUC)
# for plugin configuration
CPPFLAGS += "-DDEFAULT_ICU_PLUGINS=\"$(libdir)/icu\" "
# for icu data location
ifeq ($(PKGDATA_MODE),common)
CPPFLAGS += "-DU_ICU_DATA_DEFAULT_DIR=\"$(ICUDATA_DIR)\""
endif
# $(LIBICUDT) is either stub data or the real DLL common data.
LIBS = $(LIBICUDT) $(DEFAULT_LIBS)
SOURCES = $(shell cat $(srcdir)/sources.txt)
OBJECTS = $(SOURCES:.cpp=.o)
## Header files to install
HEADERS = $(srcdir)/unicode/*.h
STATIC_OBJECTS = $(OBJECTS:.o=.$(STATIC_O))
DEPS = $(OBJECTS:.o=.d)
-include Makefile.local
-include $(SVC_HOOK_INC)
## List of phony targets
.PHONY : all all-local install install-local clean clean-local \
distclean distclean-local install-library install-headers dist \
dist-local check check-local check-exhaustive
## Clear suffix list
.SUFFIXES :
## List of standard targets
all: all-local
install: install-local
clean: clean-local
distclean : distclean-local
dist: dist-local
check: all check-local
check-exhaustive: check
all-local: $(ALL_TARGETS)
install-local: install-headers install-library
install-library: all-local
$(MKINSTALLDIRS) $(DESTDIR)$(libdir)
ifneq ($(ENABLE_STATIC),)
$(INSTALL-L) $(TARGET) $(DESTDIR)$(libdir)
endif
ifneq ($(ENABLE_SHARED),)
# For MinGW, do we want the DLL to go in the bin location?
ifeq ($(MINGW_MOVEDLLSTOBINDIR),YES)
$(MKINSTALLDIRS) $(DESTDIR)$(bindir)
$(INSTALL-L) $(FINAL_SO_TARGET) $(DESTDIR)$(bindir)
else
$(INSTALL-L) $(FINAL_SO_TARGET) $(DESTDIR)$(libdir)
ifneq ($(FINAL_SO_TARGET),$(SO_TARGET))
cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(SO_TARGET)) && ln -s $(notdir $(FINAL_SO_TARGET)) $(notdir $(SO_TARGET))
ifneq ($(FINAL_SO_TARGET),$(MIDDLE_SO_TARGET))
cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(MIDDLE_SO_TARGET)) && ln -s $(notdir $(FINAL_SO_TARGET)) $(notdir $(MIDDLE_SO_TARGET))
endif
endif
endif
ifneq ($(IMPORT_LIB_EXT),)
$(INSTALL-L) $(FINAL_IMPORT_LIB) $(DESTDIR)$(libdir)
ifneq ($(IMPORT_LIB),$(FINAL_IMPORT_LIB))
cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(IMPORT_LIB)) && ln -s $(notdir $(FINAL_IMPORT_LIB)) $(notdir $(IMPORT_LIB))
endif
ifneq ($(MIDDLE_IMPORT_LIB),$(FINAL_IMPORT_LIB))
cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(MIDDLE_IMPORT_LIB)) && ln -s $(notdir $(FINAL_IMPORT_LIB)) $(notdir $(MIDDLE_IMPORT_LIB))
endif
endif
endif
$(SVC_HOOK_INC):
@echo generating $@
@-test -f $(top_srcdir)/common/$(LOCALSVC_CPP) && ( echo "have $(LOCALSVC_CPP) - U_LOCAL_SERVICE_HOOK=1" ; \
echo 'CPPFLAGS +=-DU_LOCAL_SERVICE_HOOK=1' > $@ ; \
echo 'OBJECTS += $(LOCALSVC_CPP:%.cpp=%.o)' >> $@ \
) ; true
@echo "# Autogenerated by Makefile" >> $@
install-headers:
$(MKINSTALLDIRS) $(DESTDIR)$(includedir)/unicode
@for file in $(HEADERS); do \
echo "$(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/unicode"; \
$(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/unicode || exit; \
done
dist-local:
clean-local:
test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
$(RMV) $(OBJECTS) $(STATIC_OBJECTS) $(ALL_TARGETS) $(SO_VERSION_DATA)
distclean-local: clean-local
$(RMV) Makefile icucfg.h $(SVC_HOOK_INC)
check-local:
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(SVC_HOOK_INC)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
ifneq ($(ENABLE_STATIC),)
$(TARGET): $(STATIC_OBJECTS)
$(AR) $(ARFLAGS) $(AR_OUTOPT)$@ $^
$(RANLIB) $@
endif
ifneq ($(ENABLE_SHARED),)
$(SHARED_OBJECT): $(OBJECTS) $(SO_VERSION_DATA)
$(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(LIBS)
ifeq ($(ENABLE_RPATH),YES)
ifneq ($(wildcard $(libdir)/$(MIDDLE_SO_TARGET)),)
$(warning RPATH warning: --enable-rpath means test programs may use existing $(libdir)/$(MIDDLE_SO_TARGET))
endif
endif
ifeq ($(OS390BATCH),1)
$(BATCH_TARGET):$(OBJECTS)
$(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(BATCH_LIBS)
endif # OS390BATCH
endif # ENABLE_SHARED
ifeq (,$(MAKECMDGOALS))
-include $(DEPS)
else
ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
-include $(DEPS)
endif
endif

4
common/appendable.d Normal file
View File

@ -0,0 +1,4 @@
appendable.o appendable.d : appendable.cpp unicode/utypes.h unicode/umachine.h \
unicode/ptypes.h unicode/platform.h unicode/uconfig.h \
unicode/uvernum.h unicode/urename.h unicode/uversion.h \
unicode/appendable.h unicode/uobject.h unicode/utf16.h unicode/utf.h

9
common/bmpset.d Normal file
View File

@ -0,0 +1,9 @@
bmpset.o bmpset.d : bmpset.cpp unicode/utypes.h unicode/umachine.h unicode/ptypes.h \
unicode/platform.h unicode/uconfig.h unicode/uvernum.h \
unicode/urename.h unicode/uversion.h unicode/uniset.h unicode/ucpmap.h \
unicode/unifilt.h unicode/unifunct.h unicode/uobject.h \
unicode/unimatch.h unicode/unistr.h unicode/char16ptr.h unicode/rep.h \
unicode/std_string.h unicode/stringpiece.h unicode/bytestream.h \
unicode/uset.h unicode/uchar.h unicode/stringoptions.h \
unicode/localpointer.h unicode/utf8.h unicode/utf.h unicode/utf16.h \
cmemory.h bmpset.h uassert.h

15
common/brkeng.d Normal file
View File

@ -0,0 +1,15 @@
brkeng.o brkeng.d : brkeng.cpp unicode/utypes.h unicode/umachine.h unicode/ptypes.h \
unicode/platform.h unicode/uconfig.h unicode/uvernum.h \
unicode/urename.h unicode/uversion.h unicode/uchar.h \
unicode/stringoptions.h unicode/ucpmap.h unicode/uniset.h \
unicode/unifilt.h unicode/unifunct.h unicode/uobject.h \
unicode/unimatch.h unicode/unistr.h unicode/char16ptr.h unicode/rep.h \
unicode/std_string.h unicode/stringpiece.h unicode/bytestream.h \
unicode/uset.h unicode/localpointer.h unicode/chariter.h \
unicode/ures.h unicode/uloc.h unicode/uenum.h unicode/udata.h \
unicode/putil.h unicode/ustring.h unicode/uiter.h unicode/uscript.h \
unicode/ucharstrie.h unicode/ustringtrie.h unicode/bytestrie.h \
brkeng.h unicode/utext.h cmemory.h dictbe.h uvectr32.h uhash.h \
uelement.h uassert.h charstr.h dictionarydata.h udataswp.h mutex.h \
umutex.h unicode/uclean.h putilimp.h uvector.h uarrsort.h uresimp.h \
uresdata.h resource.h restrace.h ubrkimpl.h

16
common/brkiter.d Normal file
View File

@ -0,0 +1,16 @@
brkiter.o brkiter.d : brkiter.cpp unicode/utypes.h unicode/umachine.h \
unicode/ptypes.h unicode/platform.h unicode/uconfig.h \
unicode/uvernum.h unicode/urename.h unicode/uversion.h unicode/rbbi.h \
unicode/brkiter.h unicode/uobject.h unicode/unistr.h \
unicode/char16ptr.h unicode/rep.h unicode/std_string.h \
unicode/stringpiece.h unicode/bytestream.h unicode/chariter.h \
unicode/locid.h unicode/localpointer.h unicode/strenum.h \
unicode/putil.h unicode/uloc.h unicode/uenum.h unicode/ubrk.h \
unicode/utext.h unicode/uchar.h unicode/stringoptions.h \
unicode/ucpmap.h unicode/parseerr.h unicode/umisc.h unicode/udata.h \
unicode/schriter.h unicode/uchriter.h unicode/ures.h unicode/ustring.h \
unicode/uiter.h unicode/filteredbrk.h ucln_cmn.h ucln.h cstring.h \
cmemory.h umutex.h unicode/uclean.h putilimp.h servloc.h hash.h \
uhash.h uelement.h uvector.h uarrsort.h serv.h servnotf.h mutex.h \
locutil.h locbased.h uresimp.h uresdata.h udataswp.h resource.h \
restrace.h uassert.h ubrkimpl.h utracimp.h unicode/utrace.h charstr.h

8
common/bytesinkutil.d Normal file
View File

@ -0,0 +1,8 @@
bytesinkutil.o bytesinkutil.d : bytesinkutil.cpp unicode/utypes.h unicode/umachine.h \
unicode/ptypes.h unicode/platform.h unicode/uconfig.h \
unicode/uvernum.h unicode/urename.h unicode/uversion.h \
unicode/bytestream.h unicode/uobject.h unicode/std_string.h \
unicode/edits.h unicode/stringoptions.h unicode/utf8.h unicode/utf.h \
unicode/utf16.h bytesinkutil.h cmemory.h unicode/localpointer.h \
uassert.h charstr.h unicode/unistr.h unicode/char16ptr.h unicode/rep.h \
unicode/stringpiece.h

5
common/bytestream.d Normal file
View File

@ -0,0 +1,5 @@
bytestream.o bytestream.d : bytestream.cpp unicode/utypes.h unicode/umachine.h \
unicode/ptypes.h unicode/platform.h unicode/uconfig.h \
unicode/uvernum.h unicode/urename.h unicode/uversion.h \
unicode/bytestream.h unicode/uobject.h unicode/std_string.h cmemory.h \
unicode/localpointer.h

6
common/bytestrie.d Normal file
View File

@ -0,0 +1,6 @@
bytestrie.o bytestrie.d : bytestrie.cpp unicode/utypes.h unicode/umachine.h \
unicode/ptypes.h unicode/platform.h unicode/uconfig.h \
unicode/uvernum.h unicode/urename.h unicode/uversion.h \
unicode/bytestream.h unicode/uobject.h unicode/std_string.h \
unicode/bytestrie.h unicode/stringpiece.h unicode/ustringtrie.h \
cmemory.h unicode/localpointer.h uassert.h

10
common/bytestriebuilder.d Normal file
View File

@ -0,0 +1,10 @@
bytestriebuilder.o bytestriebuilder.d : bytestriebuilder.cpp unicode/utypes.h \
unicode/umachine.h unicode/ptypes.h unicode/platform.h \
unicode/uconfig.h unicode/uvernum.h unicode/urename.h \
unicode/uversion.h unicode/bytestrie.h unicode/stringpiece.h \
unicode/uobject.h unicode/std_string.h unicode/ustringtrie.h \
unicode/bytestriebuilder.h unicode/stringtriebuilder.h charstr.h \
unicode/unistr.h unicode/char16ptr.h unicode/rep.h \
unicode/bytestream.h cmemory.h unicode/localpointer.h uhash.h \
uelement.h uarrsort.h uassert.h ustr_imp.h unicode/utf8.h \
unicode/utf.h

View File

@ -0,0 +1,8 @@
bytestrieiterator.o bytestrieiterator.d : bytestrieiterator.cpp unicode/utypes.h \
unicode/umachine.h unicode/ptypes.h unicode/platform.h \
unicode/uconfig.h unicode/uvernum.h unicode/urename.h \
unicode/uversion.h unicode/bytestrie.h unicode/stringpiece.h \
unicode/uobject.h unicode/std_string.h unicode/ustringtrie.h charstr.h \
unicode/unistr.h unicode/char16ptr.h unicode/rep.h \
unicode/bytestream.h cmemory.h unicode/localpointer.h uvectr32.h \
uhash.h uelement.h uassert.h

13
common/caniter.d Normal file
View File

@ -0,0 +1,13 @@
caniter.o caniter.d : caniter.cpp unicode/utypes.h unicode/umachine.h \
unicode/ptypes.h unicode/platform.h unicode/uconfig.h \
unicode/uvernum.h unicode/urename.h unicode/uversion.h \
unicode/caniter.h unicode/uobject.h unicode/unistr.h \
unicode/char16ptr.h unicode/rep.h unicode/std_string.h \
unicode/stringpiece.h unicode/bytestream.h unicode/normalizer2.h \
unicode/uniset.h unicode/ucpmap.h unicode/unifilt.h unicode/unifunct.h \
unicode/unimatch.h unicode/uset.h unicode/uchar.h \
unicode/stringoptions.h unicode/localpointer.h unicode/unorm2.h \
unicode/usetiter.h unicode/ustring.h unicode/putil.h unicode/uiter.h \
unicode/utf16.h unicode/utf.h cmemory.h hash.h uhash.h uelement.h \
normalizer2impl.h unicode/ucptrie.h unicode/utf8.h unicode/unorm.h \
mutex.h umutex.h unicode/uclean.h putilimp.h udataswp.h uset_imp.h

View File

@ -0,0 +1,14 @@
characterproperties.o characterproperties.d : characterproperties.cpp unicode/utypes.h \
unicode/umachine.h unicode/ptypes.h unicode/platform.h \
unicode/uconfig.h unicode/uvernum.h unicode/urename.h \
unicode/uversion.h unicode/localpointer.h unicode/uchar.h \
unicode/stringoptions.h unicode/ucpmap.h unicode/ucptrie.h \
unicode/utf8.h unicode/utf.h unicode/umutablecptrie.h unicode/uniset.h \
unicode/unifilt.h unicode/unifunct.h unicode/uobject.h \
unicode/unimatch.h unicode/unistr.h unicode/char16ptr.h unicode/rep.h \
unicode/std_string.h unicode/stringpiece.h unicode/bytestream.h \
unicode/uset.h unicode/uscript.h cmemory.h mutex.h umutex.h \
unicode/uclean.h putilimp.h unicode/putil.h normalizer2impl.h \
unicode/normalizer2.h unicode/unorm2.h unicode/unorm.h unicode/uiter.h \
unicode/utf16.h udataswp.h uset_imp.h uassert.h ubidi_props.h ucase.h \
utrie2.h ucln_cmn.h ucln.h uprops.h

6
common/chariter.d Normal file
View File

@ -0,0 +1,6 @@
chariter.o chariter.d : chariter.cpp unicode/chariter.h unicode/utypes.h \
unicode/umachine.h unicode/ptypes.h unicode/platform.h \
unicode/uconfig.h unicode/uvernum.h unicode/urename.h \
unicode/uversion.h unicode/uobject.h unicode/unistr.h \
unicode/char16ptr.h unicode/rep.h unicode/std_string.h \
unicode/stringpiece.h unicode/bytestream.h

7
common/charstr.d Normal file
View File

@ -0,0 +1,7 @@
charstr.o charstr.d : charstr.cpp unicode/utypes.h unicode/umachine.h \
unicode/ptypes.h unicode/platform.h unicode/uconfig.h \
unicode/uvernum.h unicode/urename.h unicode/uversion.h unicode/putil.h \
charstr.h unicode/unistr.h unicode/char16ptr.h unicode/rep.h \
unicode/uobject.h unicode/std_string.h unicode/stringpiece.h \
unicode/bytestream.h cmemory.h unicode/localpointer.h cstring.h \
uinvchar.h ustr_imp.h unicode/utf8.h unicode/utf.h

5
common/cmemory.d Normal file
View File

@ -0,0 +1,5 @@
cmemory.o cmemory.d : cmemory.cpp unicode/uclean.h unicode/utypes.h \
unicode/umachine.h unicode/ptypes.h unicode/platform.h \
unicode/uconfig.h unicode/uvernum.h unicode/urename.h \
unicode/uversion.h cmemory.h unicode/localpointer.h unicode/uobject.h \
putilimp.h unicode/putil.h uassert.h

6
common/cstr.d Normal file
View File

@ -0,0 +1,6 @@
cstr.o cstr.d : cstr.cpp unicode/utypes.h unicode/umachine.h unicode/ptypes.h \
unicode/platform.h unicode/uconfig.h unicode/uvernum.h \
unicode/urename.h unicode/uversion.h unicode/putil.h unicode/unistr.h \
unicode/char16ptr.h unicode/rep.h unicode/uobject.h \
unicode/std_string.h unicode/stringpiece.h unicode/bytestream.h cstr.h \
charstr.h cmemory.h unicode/localpointer.h uinvchar.h

4
common/cstring.d Normal file
View File

@ -0,0 +1,4 @@
cstring.o cstring.d : cstring.cpp unicode/utypes.h unicode/umachine.h \
unicode/ptypes.h unicode/platform.h unicode/uconfig.h \
unicode/uvernum.h unicode/urename.h unicode/uversion.h cmemory.h \
unicode/localpointer.h unicode/uobject.h cstring.h uassert.h

3
common/cwchar.d Normal file
View File

@ -0,0 +1,3 @@
cwchar.o cwchar.d : cwchar.cpp unicode/utypes.h unicode/umachine.h unicode/ptypes.h \
unicode/platform.h unicode/uconfig.h unicode/uvernum.h \
unicode/urename.h unicode/uversion.h

14
common/dictbe.d Normal file
View File

@ -0,0 +1,14 @@
dictbe.o dictbe.d : dictbe.cpp unicode/utypes.h unicode/umachine.h unicode/ptypes.h \
unicode/platform.h unicode/uconfig.h unicode/uvernum.h \
unicode/urename.h unicode/uversion.h brkeng.h unicode/uobject.h \
unicode/utext.h unicode/uchar.h unicode/stringoptions.h \
unicode/ucpmap.h unicode/localpointer.h unicode/rep.h unicode/unistr.h \
unicode/char16ptr.h unicode/std_string.h unicode/stringpiece.h \
unicode/bytestream.h unicode/chariter.h unicode/uscript.h dictbe.h \
unicode/uniset.h unicode/unifilt.h unicode/unifunct.h \
unicode/unimatch.h unicode/uset.h uvectr32.h uhash.h cmemory.h \
uelement.h uassert.h unicode/ubrk.h unicode/uloc.h unicode/uenum.h \
unicode/parseerr.h utracimp.h unicode/utrace.h uvector.h uarrsort.h \
unicode/normlzr.h unicode/normalizer2.h unicode/unorm2.h \
unicode/unorm.h unicode/uiter.h dictionarydata.h unicode/udata.h \
udataswp.h unicode/ustringtrie.h

9
common/dictionarydata.d Normal file
View File

@ -0,0 +1,9 @@
dictionarydata.o dictionarydata.d : dictionarydata.cpp dictionarydata.h unicode/utypes.h \
unicode/umachine.h unicode/ptypes.h unicode/platform.h \
unicode/uconfig.h unicode/uvernum.h unicode/urename.h \
unicode/uversion.h unicode/utext.h unicode/uchar.h \
unicode/stringoptions.h unicode/ucpmap.h unicode/localpointer.h \
unicode/rep.h unicode/uobject.h unicode/unistr.h unicode/char16ptr.h \
unicode/std_string.h unicode/stringpiece.h unicode/bytestream.h \
unicode/chariter.h unicode/udata.h udataswp.h unicode/ustringtrie.h \
unicode/ucharstrie.h unicode/bytestrie.h cmemory.h

4
common/dtintrv.d Normal file
View File

@ -0,0 +1,4 @@
dtintrv.o dtintrv.d : dtintrv.cpp unicode/dtintrv.h unicode/utypes.h \
unicode/umachine.h unicode/ptypes.h unicode/platform.h \
unicode/uconfig.h unicode/uvernum.h unicode/urename.h \
unicode/uversion.h unicode/uobject.h

6
common/edits.d Normal file
View File

@ -0,0 +1,6 @@
edits.o edits.d : edits.cpp unicode/edits.h unicode/utypes.h unicode/umachine.h \
unicode/ptypes.h unicode/platform.h unicode/uconfig.h \
unicode/uvernum.h unicode/urename.h unicode/uversion.h \
unicode/uobject.h unicode/unistr.h unicode/char16ptr.h unicode/rep.h \
unicode/std_string.h unicode/stringpiece.h unicode/bytestream.h \
cmemory.h unicode/localpointer.h uassert.h util.h

4
common/errorcode.d Normal file
View File

@ -0,0 +1,4 @@
errorcode.o errorcode.d : errorcode.cpp unicode/utypes.h unicode/umachine.h \
unicode/ptypes.h unicode/platform.h unicode/uconfig.h \
unicode/uvernum.h unicode/urename.h unicode/uversion.h \
unicode/errorcode.h unicode/uobject.h

Some files were not shown because too many files have changed in this diff Show More